aeff644cc3
# Conflicts: # src/generated/resources/assets/create/lang/en_us.json # src/generated/resources/assets/create/lang/unfinished/de_de.json # src/generated/resources/assets/create/lang/unfinished/es_es.json # src/generated/resources/assets/create/lang/unfinished/es_mx.json # src/generated/resources/assets/create/lang/unfinished/fr_fr.json # src/generated/resources/assets/create/lang/unfinished/it_it.json # src/generated/resources/assets/create/lang/unfinished/ja_jp.json # src/generated/resources/assets/create/lang/unfinished/ko_kr.json # src/generated/resources/assets/create/lang/unfinished/nl_nl.json # src/generated/resources/assets/create/lang/unfinished/pl_pl.json # src/generated/resources/assets/create/lang/unfinished/pt_br.json # src/generated/resources/assets/create/lang/unfinished/ru_ru.json # src/generated/resources/assets/create/lang/unfinished/zh_cn.json # src/generated/resources/assets/create/lang/unfinished/zh_tw.json # src/main/java/com/simibubi/create/AllContainerTypes.java # src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java # src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java # src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssemblerTileEntity.java # src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintEntity.java # src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintOverlayRenderer.java # src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintRenderer.java # src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintScreen.java # src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmRenderer.java # src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerScreen.java # src/main/java/com/simibubi/create/content/logistics/item/filter/AttributeFilterScreen.java # src/main/java/com/simibubi/create/content/logistics/item/filter/FilterContainer.java # src/main/java/com/simibubi/create/content/schematics/block/SchematicTableScreen.java # src/main/java/com/simibubi/create/content/schematics/block/SchematicannonTileEntity.java # src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java # src/main/java/com/simibubi/create/foundation/gui/mainMenu/CreateMainMenuScreen.java # src/main/java/com/simibubi/create/foundation/ponder/content/ChainDriveScenes.java # src/main/java/com/simibubi/create/foundation/render/SuperByteBuffer.java # src/main/resources/META-INF/mods.toml # src/main/resources/assets/create/lang/default/messages.json # src/main/resources/assets/create/lang/default/tooltips.json
110 lines
3.1 KiB
Java
110 lines
3.1 KiB
Java
package com.simibubi.create.content.schematics.block;
|
|
|
|
import com.simibubi.create.AllContainerTypes;
|
|
import com.simibubi.create.AllItems;
|
|
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.world.ClientWorld;
|
|
import net.minecraft.entity.player.PlayerEntity;
|
|
import net.minecraft.entity.player.PlayerInventory;
|
|
import net.minecraft.inventory.container.Container;
|
|
import net.minecraft.inventory.container.ContainerType;
|
|
import net.minecraft.inventory.container.Slot;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.network.PacketBuffer;
|
|
import net.minecraft.tileentity.TileEntity;
|
|
import net.minecraftforge.items.SlotItemHandler;
|
|
|
|
public class SchematicTableContainer extends Container {
|
|
|
|
private SchematicTableTileEntity te;
|
|
private Slot inputSlot;
|
|
private Slot outputSlot;
|
|
private PlayerEntity player;
|
|
|
|
public SchematicTableContainer(ContainerType<?> type, int id, PlayerInventory inv, PacketBuffer extraData) {
|
|
super(type, id);
|
|
player = inv.player;
|
|
ClientWorld world = Minecraft.getInstance().world;
|
|
TileEntity tileEntity = world.getTileEntity(extraData.readBlockPos());
|
|
if (tileEntity instanceof SchematicTableTileEntity) {
|
|
this.te = (SchematicTableTileEntity) tileEntity;
|
|
this.te.handleUpdateTag(te.getBlockState(), extraData.readCompoundTag());
|
|
init();
|
|
}
|
|
}
|
|
|
|
public SchematicTableContainer(ContainerType<?> type, int id, PlayerInventory inv, SchematicTableTileEntity te) {
|
|
super(type, id);
|
|
this.player = inv.player;
|
|
this.te = te;
|
|
init();
|
|
}
|
|
|
|
public static SchematicTableContainer create(int id, PlayerInventory inv, SchematicTableTileEntity te) {
|
|
return new SchematicTableContainer(AllContainerTypes.SCHEMATIC_TABLE.get(), id, inv, te);
|
|
}
|
|
|
|
protected void init() {
|
|
inputSlot = new SlotItemHandler(te.inventory, 0, 21, 57) {
|
|
@Override
|
|
public boolean isItemValid(ItemStack stack) {
|
|
return AllItems.EMPTY_SCHEMATIC.isIn(stack) || AllItems.SCHEMATIC_AND_QUILL.isIn(stack)
|
|
|| AllItems.SCHEMATIC.isIn(stack);
|
|
}
|
|
};
|
|
|
|
outputSlot = new SlotItemHandler(te.inventory, 1, 166, 57) {
|
|
@Override
|
|
public boolean isItemValid(ItemStack stack) {
|
|
return false;
|
|
}
|
|
};
|
|
|
|
addSlot(inputSlot);
|
|
addSlot(outputSlot);
|
|
|
|
// player Slots
|
|
for (int row = 0; row < 3; ++row) {
|
|
for (int col = 0; col < 9; ++col) {
|
|
this.addSlot(new Slot(player.inventory, col + row * 9 + 9, 38 + col * 18, 105 + row * 18));
|
|
}
|
|
}
|
|
|
|
for (int hotbarSlot = 0; hotbarSlot < 9; ++hotbarSlot) {
|
|
this.addSlot(new Slot(player.inventory, hotbarSlot, 38 + hotbarSlot * 18, 163));
|
|
}
|
|
|
|
detectAndSendChanges();
|
|
}
|
|
|
|
public boolean canWrite() {
|
|
return inputSlot.getHasStack() && !outputSlot.getHasStack();
|
|
}
|
|
|
|
@Override
|
|
public boolean canInteractWith(PlayerEntity playerIn) {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public ItemStack transferStackInSlot(PlayerEntity playerIn, int index) {
|
|
Slot clickedSlot = getSlot(index);
|
|
if (!clickedSlot.getHasStack())
|
|
return ItemStack.EMPTY;
|
|
|
|
ItemStack stack = clickedSlot.getStack();
|
|
if (index < 2)
|
|
mergeItemStack(stack, 2, inventorySlots.size(), false);
|
|
else
|
|
mergeItemStack(stack, 0, 1, false);
|
|
|
|
return ItemStack.EMPTY;
|
|
}
|
|
|
|
public SchematicTableTileEntity getTileEntity() {
|
|
return te;
|
|
}
|
|
|
|
}
|