make the specimen slot work and some small improvements
This commit is contained in:
@@ -2,7 +2,7 @@ package storagecraft.container;
|
|||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import storagecraft.SCItems;
|
import storagecraft.SCItems;
|
||||||
import storagecraft.inventory.slot.SlotItemFilter;
|
import storagecraft.container.slot.SlotItemFilter;
|
||||||
import storagecraft.tile.TileDrive;
|
import storagecraft.tile.TileDrive;
|
||||||
|
|
||||||
public class ContainerDrive extends ContainerSC {
|
public class ContainerDrive extends ContainerSC {
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
package storagecraft.container;
|
package storagecraft.container;
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import storagecraft.inventory.slot.SlotSpecimen;
|
import storagecraft.container.slot.SlotSpecimen;
|
||||||
import storagecraft.tile.TileImporter;
|
import storagecraft.tile.TileImporter;
|
||||||
|
|
||||||
public class ContainerImporter extends ContainerSC {
|
public class ContainerImporter extends ContainerSC {
|
||||||
|
@@ -4,6 +4,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||||||
import net.minecraft.inventory.Container;
|
import net.minecraft.inventory.Container;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import storagecraft.container.slot.SlotSpecimen;
|
||||||
|
|
||||||
public class ContainerSC extends Container {
|
public class ContainerSC extends Container {
|
||||||
private EntityPlayer player;
|
private EntityPlayer player;
|
||||||
@@ -34,6 +35,23 @@ public class ContainerSC extends Container {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack slotClick(int id, int clickedButton, int mode, EntityPlayer player) {
|
||||||
|
Slot slot = id >= 0 ? getSlot(id) : null;
|
||||||
|
|
||||||
|
if (slot instanceof SlotSpecimen) {
|
||||||
|
if (clickedButton == 2) {
|
||||||
|
slot.putStack(null);
|
||||||
|
} else {
|
||||||
|
slot.putStack(player.inventory.getItemStack() == null ? null : player.inventory.getItemStack().copy());
|
||||||
|
}
|
||||||
|
|
||||||
|
return player.inventory.getItemStack();
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.slotClick(id, clickedButton, mode, player);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex) {
|
public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex) {
|
||||||
return null;
|
return null;
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
package storagecraft.inventory.slot;
|
package storagecraft.container.slot;
|
||||||
|
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
31
src/main/java/storagecraft/container/slot/SlotSpecimen.java
Normal file
31
src/main/java/storagecraft/container/slot/SlotSpecimen.java
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package storagecraft.container.slot;
|
||||||
|
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.inventory.IInventory;
|
||||||
|
import net.minecraft.inventory.Slot;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
public class SlotSpecimen extends Slot {
|
||||||
|
public SlotSpecimen(IInventory inventory, int id, int x, int y) {
|
||||||
|
super(inventory, id, x, y);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canTakeStack(EntityPlayer player) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isItemValid(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void putStack(ItemStack stack) {
|
||||||
|
if (stack != null) {
|
||||||
|
stack.stackSize = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
super.putStack(stack);
|
||||||
|
}
|
||||||
|
}
|
@@ -47,11 +47,23 @@ public class GuiImporter extends GuiContainer {
|
|||||||
|
|
||||||
compareFlags = importer.getCompareFlags();
|
compareFlags = importer.getCompareFlags();
|
||||||
|
|
||||||
compareNBT.displayString = StatCollector.translateToLocal("misc.storagecraft:compareNBT") + ": ";
|
compareNBT.displayString = getTextForCompareToggle("NBT", InventoryUtils.COMPARE_NBT);
|
||||||
compareNBT.displayString += ((compareFlags & InventoryUtils.COMPARE_NBT) == InventoryUtils.COMPARE_NBT) ? StatCollector.translateToLocal("misc.storagecraft:on") : StatCollector.translateToLocal("misc.storagecraft:off");
|
compareDamage.displayString = getTextForCompareToggle("Damage", InventoryUtils.COMPARE_DAMAGE);
|
||||||
|
}
|
||||||
|
|
||||||
compareDamage.displayString = StatCollector.translateToLocal("misc.storagecraft:compareDamage") + ": ";
|
private String getTextForCompareToggle(String which, int flag) {
|
||||||
compareDamage.displayString += ((compareFlags & InventoryUtils.COMPARE_DAMAGE) == InventoryUtils.COMPARE_DAMAGE) ? StatCollector.translateToLocal("misc.storagecraft:on") : StatCollector.translateToLocal("misc.storagecraft:off");
|
StringBuilder builder = new StringBuilder();
|
||||||
|
|
||||||
|
builder.append(StatCollector.translateToLocal("misc.storagecraft:compare" + which));
|
||||||
|
builder.append(": ");
|
||||||
|
|
||||||
|
if ((compareFlags & flag) == flag) {
|
||||||
|
builder.append(StatCollector.translateToLocal("misc.storagecraft:on"));
|
||||||
|
} else {
|
||||||
|
builder.append(StatCollector.translateToLocal("misc.storagecraft:off"));
|
||||||
|
}
|
||||||
|
|
||||||
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -66,20 +78,17 @@ public class GuiImporter extends GuiContainer {
|
|||||||
@Override
|
@Override
|
||||||
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
|
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
|
||||||
fontRendererObj.drawString(StatCollector.translateToLocal("gui.storagecraft:importer"), 7, 7, 4210752);
|
fontRendererObj.drawString(StatCollector.translateToLocal("gui.storagecraft:importer"), 7, 7, 4210752);
|
||||||
fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 7, 87, 4210752);
|
fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 7, 89, 4210752);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void actionPerformed(GuiButton button) {
|
protected void actionPerformed(GuiButton button) {
|
||||||
int flags = compareFlags;
|
int flags = compareFlags;
|
||||||
|
|
||||||
switch (button.id) {
|
if (button.id == compareNBT.id) {
|
||||||
case 0:
|
flags ^= InventoryUtils.COMPARE_NBT;
|
||||||
flags ^= InventoryUtils.COMPARE_NBT;
|
} else if (button.id == compareDamage.id) {
|
||||||
break;
|
flags ^= InventoryUtils.COMPARE_DAMAGE;
|
||||||
case 1:
|
|
||||||
flags ^= InventoryUtils.COMPARE_DAMAGE;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SC.NETWORK.sendToServer(new MessageImporterUpdate(importer.xCoord, importer.yCoord, importer.zCoord, flags));
|
SC.NETWORK.sendToServer(new MessageImporterUpdate(importer.xCoord, importer.yCoord, importer.zCoord, flags));
|
||||||
|
@@ -1,11 +0,0 @@
|
|||||||
package storagecraft.inventory.slot;
|
|
||||||
|
|
||||||
import net.minecraft.inventory.IInventory;
|
|
||||||
import net.minecraft.inventory.Slot;
|
|
||||||
|
|
||||||
// @TODO: Correct behaviour
|
|
||||||
public class SlotSpecimen extends Slot {
|
|
||||||
public SlotSpecimen(IInventory inventory, int id, int x, int y) {
|
|
||||||
super(inventory, id, x, y);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -40,6 +40,7 @@ public class TileImporter extends TileMachine implements IInventory {
|
|||||||
if (slot != null && canImport(slot)) {
|
if (slot != null && canImport(slot)) {
|
||||||
if (getController().push(slot.copy())) {
|
if (getController().push(slot.copy())) {
|
||||||
connectedInventory.setInventorySlotContents(currentSlot, null);
|
connectedInventory.setInventorySlotContents(currentSlot, null);
|
||||||
|
connectedInventory.markDirty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user