Merge fixes
This commit is contained in:
@@ -12,8 +12,6 @@ import net.minecraft.item.ItemStack;
|
|||||||
import net.minecraft.screen.slot.Slot;
|
import net.minecraft.screen.slot.Slot;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
import appeng.client.me.SlotME;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A proxy for a slot that will always return an itemstack with size 1, if there
|
* A proxy for a slot that will always return an itemstack with size 1, if there
|
||||||
* is an item in the slot. Used to prevent the default item count from
|
* is an item in the slot. Used to prevent the default item count from
|
||||||
@@ -24,7 +22,7 @@ class Size1Slot extends Slot {
|
|||||||
private final Slot delegate;
|
private final Slot delegate;
|
||||||
|
|
||||||
public Size1Slot(Slot delegate) {
|
public Size1Slot(Slot delegate) {
|
||||||
super(delegate.inventory, -1, delegate.xPos, delegate.yPos);
|
super(delegate.inventory, -1, delegate.x, delegate.y);
|
||||||
this.delegate = delegate;
|
this.delegate = delegate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,9 +21,8 @@ package appeng.client.me;
|
|||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.inventory.IInventory;
|
|
||||||
import net.minecraft.inventory.Inventory;
|
import net.minecraft.inventory.Inventory;
|
||||||
import net.minecraft.inventory.container.Slot;
|
import net.minecraft.inventory.SimpleInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.screen.slot.Slot;
|
import net.minecraft.screen.slot.Slot;
|
||||||
|
|
||||||
@@ -32,7 +31,7 @@ import appeng.fluids.container.slots.IMEFluidSlot;
|
|||||||
|
|
||||||
public class SlotFluidME extends Slot implements IMEFluidSlot {
|
public class SlotFluidME extends Slot implements IMEFluidSlot {
|
||||||
|
|
||||||
private static final IInventory EMPTY_INVENTORY = new Inventory(0);
|
private static final Inventory EMPTY_INVENTORY = new SimpleInventory(0);
|
||||||
|
|
||||||
private final InternalFluidSlotME slot;
|
private final InternalFluidSlotME slot;
|
||||||
|
|
||||||
|
|||||||
@@ -19,9 +19,8 @@
|
|||||||
package appeng.client.me;
|
package appeng.client.me;
|
||||||
|
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.inventory.IInventory;
|
|
||||||
import net.minecraft.inventory.Inventory;
|
import net.minecraft.inventory.Inventory;
|
||||||
import net.minecraft.inventory.container.Slot;
|
import net.minecraft.inventory.SimpleInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.screen.slot.Slot;
|
import net.minecraft.screen.slot.Slot;
|
||||||
|
|
||||||
@@ -29,7 +28,7 @@ import appeng.api.storage.data.IAEItemStack;
|
|||||||
|
|
||||||
public class SlotME extends Slot {
|
public class SlotME extends Slot {
|
||||||
|
|
||||||
private static final Inventory EMPTY_INVENTORY = new Inventory(0);
|
private static final Inventory EMPTY_INVENTORY = new SimpleInventory(0);
|
||||||
|
|
||||||
private final InternalSlotME slot;
|
private final InternalSlotME slot;
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,10 @@ import java.util.function.Supplier;
|
|||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import com.google.common.cache.CacheBuilder;
|
||||||
|
import com.google.common.cache.CacheLoader;
|
||||||
|
import com.google.common.cache.LoadingCache;
|
||||||
|
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.api.Environment;
|
import net.fabricmc.api.Environment;
|
||||||
import net.fabricmc.fabric.api.renderer.v1.Renderer;
|
import net.fabricmc.fabric.api.renderer.v1.Renderer;
|
||||||
@@ -39,11 +43,6 @@ import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter;
|
|||||||
import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel;
|
import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel;
|
||||||
import net.fabricmc.fabric.api.renderer.v1.render.RenderContext;
|
import net.fabricmc.fabric.api.renderer.v1.render.RenderContext;
|
||||||
import net.fabricmc.fabric.api.rendering.data.v1.RenderAttachedBlockView;
|
import net.fabricmc.fabric.api.rendering.data.v1.RenderAttachedBlockView;
|
||||||
import com.google.common.cache.CacheBuilder;
|
|
||||||
import com.google.common.cache.CacheLoader;
|
|
||||||
import com.google.common.cache.LoadingCache;
|
|
||||||
import com.google.common.cache.Weigher;
|
|
||||||
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.client.render.model.BakedModel;
|
import net.minecraft.client.render.model.BakedModel;
|
||||||
import net.minecraft.client.render.model.BakedQuad;
|
import net.minecraft.client.render.model.BakedQuad;
|
||||||
@@ -65,12 +64,15 @@ import appeng.api.util.AEColor;
|
|||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
public class CableBusBakedModel implements BakedModel, FabricBakedModel {
|
public class CableBusBakedModel implements BakedModel, FabricBakedModel {
|
||||||
|
|
||||||
|
private static final Mesh EMPTY_MESH = consumer -> {
|
||||||
|
};
|
||||||
|
|
||||||
private static final Renderer RENDERER = RendererAccess.INSTANCE.getRenderer();
|
private static final Renderer RENDERER = RendererAccess.INSTANCE.getRenderer();
|
||||||
|
|
||||||
// The number of quads overall that will be cached
|
// The number of meshes overall that will be cached
|
||||||
private static final int CACHE_QUAD_COUNT = 5000;
|
private static final int CACHE_MESH_COUNT = 100;
|
||||||
|
|
||||||
private static final LoadingCache<CableBusRenderState, Mesh> cableModelCache = new HashMap<>();
|
private final LoadingCache<CableBusRenderState, Mesh> cableModelCache;
|
||||||
|
|
||||||
private final CableBuilder cableBuilder;
|
private final CableBuilder cableBuilder;
|
||||||
|
|
||||||
@@ -87,14 +89,12 @@ public class CableBusBakedModel implements BakedModel, FabricBakedModel {
|
|||||||
this.partModels = partModels;
|
this.partModels = partModels;
|
||||||
this.particleTexture = particleTexture;
|
this.particleTexture = particleTexture;
|
||||||
this.cableModelCache = CacheBuilder.newBuilder()//
|
this.cableModelCache = CacheBuilder.newBuilder()//
|
||||||
.maximumWeight(CACHE_QUAD_COUNT)//
|
.maximumSize(CACHE_MESH_COUNT)//
|
||||||
.weigher((Weigher<CableBusRenderState, List<BakedQuad>>) (key, value) -> value.size())//
|
.build(new CacheLoader<CableBusRenderState, Mesh>() {
|
||||||
.build(new CacheLoader<CableBusRenderState, List<BakedQuad>>() {
|
|
||||||
@Override
|
@Override
|
||||||
public List<BakedQuad> load(CableBusRenderState renderState) {
|
public Mesh load(CableBusRenderState renderState) {
|
||||||
final List<BakedQuad> model = new ArrayList<>();
|
Mesh mesh = buildCableModel(renderState);
|
||||||
addCableQuads(renderState, model);
|
return mesh != null ? mesh : EMPTY_MESH;
|
||||||
return model;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -126,8 +126,8 @@ public class CableBusBakedModel implements BakedModel, FabricBakedModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// First, handle the cable at the center of the cable bus
|
// First, handle the cable at the center of the cable bus
|
||||||
final Mesh cableModel = CABLE_MODEL_CACHE.computeIfAbsent(renderState, this::buildCableModel);
|
final Mesh cableModel = cableModelCache.getUnchecked(renderState);
|
||||||
if (cableModel != null) {
|
if (cableModel != EMPTY_MESH) {
|
||||||
context.meshConsumer().accept(cableModel);
|
context.meshConsumer().accept(cableModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,12 +27,7 @@ import net.fabricmc.api.Environment;
|
|||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
|
||||||
import net.minecraft.network.PacketBuffer;
|
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.NbtIo;
|
|
||||||
import net.minecraft.network.PacketByteBuf;
|
import net.minecraft.network.PacketByteBuf;
|
||||||
|
|
||||||
import appeng.client.gui.implementations.InterfaceTerminalScreen;
|
import appeng.client.gui.implementations.InterfaceTerminalScreen;
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ public final class AEItemStack extends AEStack<IAEItemStack> implements IAEItemS
|
|||||||
buffer.writeBoolean(this.isCraftable());
|
buffer.writeBoolean(this.isCraftable());
|
||||||
buffer.writeVarLong(this.getStackSize());
|
buffer.writeVarLong(this.getStackSize());
|
||||||
buffer.writeVarLong(this.getCountRequestable());
|
buffer.writeVarLong(this.getCountRequestable());
|
||||||
buffer.writeItemStack(getDefinition(), false);
|
buffer.writeItemStack(getDefinition());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user