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.util.Identifier;
|
||||
|
||||
import appeng.client.me.SlotME;
|
||||
|
||||
/**
|
||||
* 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
|
||||
@@ -24,7 +22,7 @@ class Size1Slot extends Slot {
|
||||
private final 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;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,9 +21,8 @@ package appeng.client.me;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.inventory.Inventory;
|
||||
import net.minecraft.inventory.container.Slot;
|
||||
import net.minecraft.inventory.SimpleInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.screen.slot.Slot;
|
||||
|
||||
@@ -32,7 +31,7 @@ import appeng.fluids.container.slots.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;
|
||||
|
||||
|
||||
@@ -19,9 +19,8 @@
|
||||
package appeng.client.me;
|
||||
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.inventory.Inventory;
|
||||
import net.minecraft.inventory.container.Slot;
|
||||
import net.minecraft.inventory.SimpleInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.screen.slot.Slot;
|
||||
|
||||
@@ -29,7 +28,7 @@ import appeng.api.storage.data.IAEItemStack;
|
||||
|
||||
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;
|
||||
|
||||
|
||||
@@ -29,6 +29,10 @@ import java.util.function.Supplier;
|
||||
|
||||
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.Environment;
|
||||
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.render.RenderContext;
|
||||
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.client.render.model.BakedModel;
|
||||
import net.minecraft.client.render.model.BakedQuad;
|
||||
@@ -65,12 +64,15 @@ import appeng.api.util.AEColor;
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class CableBusBakedModel implements BakedModel, FabricBakedModel {
|
||||
|
||||
private static final Mesh EMPTY_MESH = consumer -> {
|
||||
};
|
||||
|
||||
private static final Renderer RENDERER = RendererAccess.INSTANCE.getRenderer();
|
||||
|
||||
// The number of quads overall that will be cached
|
||||
private static final int CACHE_QUAD_COUNT = 5000;
|
||||
// The number of meshes overall that will be cached
|
||||
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;
|
||||
|
||||
@@ -87,14 +89,12 @@ public class CableBusBakedModel implements BakedModel, FabricBakedModel {
|
||||
this.partModels = partModels;
|
||||
this.particleTexture = particleTexture;
|
||||
this.cableModelCache = CacheBuilder.newBuilder()//
|
||||
.maximumWeight(CACHE_QUAD_COUNT)//
|
||||
.weigher((Weigher<CableBusRenderState, List<BakedQuad>>) (key, value) -> value.size())//
|
||||
.build(new CacheLoader<CableBusRenderState, List<BakedQuad>>() {
|
||||
.maximumSize(CACHE_MESH_COUNT)//
|
||||
.build(new CacheLoader<CableBusRenderState, Mesh>() {
|
||||
@Override
|
||||
public List<BakedQuad> load(CableBusRenderState renderState) {
|
||||
final List<BakedQuad> model = new ArrayList<>();
|
||||
addCableQuads(renderState, model);
|
||||
return model;
|
||||
public Mesh load(CableBusRenderState renderState) {
|
||||
Mesh mesh = buildCableModel(renderState);
|
||||
return mesh != null ? mesh : EMPTY_MESH;
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -126,8 +126,8 @@ public class CableBusBakedModel implements BakedModel, FabricBakedModel {
|
||||
}
|
||||
|
||||
// First, handle the cable at the center of the cable bus
|
||||
final Mesh cableModel = CABLE_MODEL_CACHE.computeIfAbsent(renderState, this::buildCableModel);
|
||||
if (cableModel != null) {
|
||||
final Mesh cableModel = cableModelCache.getUnchecked(renderState);
|
||||
if (cableModel != EMPTY_MESH) {
|
||||
context.meshConsumer().accept(cableModel);
|
||||
}
|
||||
|
||||
|
||||
@@ -27,12 +27,7 @@ import net.fabricmc.api.Environment;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
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.NbtIo;
|
||||
import net.minecraft.network.PacketByteBuf;
|
||||
|
||||
import appeng.client.gui.implementations.InterfaceTerminalScreen;
|
||||
|
||||
@@ -125,7 +125,7 @@ public final class AEItemStack extends AEStack<IAEItemStack> implements IAEItemS
|
||||
buffer.writeBoolean(this.isCraftable());
|
||||
buffer.writeVarLong(this.getStackSize());
|
||||
buffer.writeVarLong(this.getCountRequestable());
|
||||
buffer.writeItemStack(getDefinition(), false);
|
||||
buffer.writeItemStack(getDefinition());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user