Skip to content
This repository was archived by the owner on Aug 26, 2021. It is now read-only.

Commit ca6575f

Browse files
committed
Use TinySlot instead of IInventory everywhere
1 parent 64cd26f commit ca6575f

6 files changed

Lines changed: 35 additions & 25 deletions

File tree

src/main/java/org/squiddev/plethora/gameplay/keyboard/ItemKeyboard.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ private boolean onItemUse(ItemStack stack, World world, EntityPlayer player) {
153153
TinySlot slot = NeuralHelpers.getSlot(player);
154154
if (slot == null) return false;
155155

156-
computer = ItemComputerHandler.getServer(slot.getStack(), player, slot.getInventory());
156+
computer = ItemComputerHandler.getServer(slot.getStack(), player, slot);
157157
}
158158

159159
if (computer == null) return false;

src/main/java/org/squiddev/plethora/gameplay/neural/ItemComputerHandler.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import net.minecraft.item.ItemStack;
1010
import net.minecraft.nbt.NBTTagCompound;
1111
import org.squiddev.plethora.utils.DebugLogger;
12+
import org.squiddev.plethora.utils.TinySlot;
1213

1314
import static org.squiddev.plethora.gameplay.ItemBase.getTag;
1415

@@ -26,7 +27,7 @@ public final class ItemComputerHandler {
2627
public static final String DIRTY = "dirty";
2728
public static final String MODULE_DATA = "module_data";
2829

29-
public static NeuralComputer getServer(ItemStack stack, EntityLivingBase owner, IInventory inventory) {
30+
public static NeuralComputer getServer(ItemStack stack, EntityLivingBase owner, TinySlot inventory) {
3031
NBTTagCompound tag = getTag(stack);
3132

3233
final ServerComputerRegistry manager = ComputerCraft.serverComputerRegistry;

src/main/java/org/squiddev/plethora/gameplay/neural/ItemNeuralConnector.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer pla
3131
if (!world.isRemote) {
3232
TinySlot neuralStack = NeuralHelpers.getSlot(player);
3333
if (neuralStack != null) {
34-
ServerComputer computer = ItemComputerHandler.getServer(neuralStack.getStack(), player, neuralStack.getInventory());
34+
ServerComputer computer = ItemComputerHandler.getServer(neuralStack.getStack(), player, neuralStack);
3535
if (computer != null) {
3636
computer.turnOn();
3737
GuiHandler.openNeuralPlayer(player, world);

src/main/java/org/squiddev/plethora/gameplay/neural/ItemNeuralInterface.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public boolean itemInteractionForEntity(ItemStack stack, EntityPlayer player, En
9191
}
9292
}
9393

94-
private void onUpdate(ItemStack stack, IInventory inventory, EntityLivingBase player, boolean forceActive) {
94+
private void onUpdate(ItemStack stack, TinySlot inventory, EntityLivingBase player, boolean forceActive) {
9595
if (player.worldObj.isRemote) {
9696
if (forceActive && player instanceof EntityPlayer) ItemComputerHandler.getClient(stack);
9797
} else {
@@ -231,7 +231,7 @@ public BaubleType getBaubleType(ItemStack stack) {
231231
@Optional.Method(modid = Baubles.MODID)
232232
public void onWornTick(ItemStack stack, EntityLivingBase player) {
233233
if (!(player instanceof EntityPlayer)) return;
234-
onUpdate(stack, BaublesApi.getBaubles((EntityPlayer) player), player, true);
234+
onUpdate(stack, new TinySlot.InventorySlot(stack, BaublesApi.getBaubles((EntityPlayer) player)), player, true);
235235
}
236236

237237
@Override
@@ -309,15 +309,20 @@ public void addInformation(ItemStack stack, EntityPlayer player, List<String> ou
309309
@Override
310310
public void onArmorTick(World world, EntityPlayer player, ItemStack stack) {
311311
super.onArmorTick(world, player, stack);
312-
onUpdate(stack, player.inventory, player, true);
312+
onUpdate(stack, new TinySlot.InventorySlot(stack, player.inventory), player, true);
313313
}
314314

315315
@Override
316316
public void onUpdate(ItemStack stack, World world, Entity entity, int um1, boolean um2) {
317317
super.onUpdate(stack, world, entity, um1, um2);
318318
if (entity instanceof EntityLivingBase) {
319-
IInventory inventory = entity instanceof EntityPlayer ? ((EntityPlayer) entity).inventory : null;
320-
onUpdate(stack, inventory, (EntityLivingBase) entity, false);
319+
TinySlot slot;
320+
if (entity instanceof EntityPlayer) {
321+
slot = new TinySlot.InventorySlot(stack, ((EntityPlayer) entity).inventory);
322+
} else {
323+
slot = new TinySlot(stack);
324+
}
325+
onUpdate(stack, slot, (EntityLivingBase) entity, false);
321326
}
322327
}
323328

@@ -345,7 +350,7 @@ public void onEntityLivingUpdate(LivingEvent.LivingUpdateEvent event) {
345350

346351
TinySlot slot = NeuralHelpers.getSlot(event.entityLiving);
347352
if (slot != null) {
348-
onUpdate(slot.getStack(), slot.getInventory(), event.entityLiving, true);
353+
onUpdate(slot.getStack(), slot, event.entityLiving, true);
349354
}
350355
}
351356

src/main/java/org/squiddev/plethora/gameplay/neural/NeuralHelpers.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,18 @@ public static TinySlot getSlot(EntityLivingBase entity) {
6161
ItemStack stack = entity.getEquipmentInSlot(ARMOR_SLOT);
6262

6363
if (stack != null && stack.getItem() == Registry.itemNeuralInterface) {
64-
return new TinySlot(stack, entity instanceof EntityPlayer ? ((EntityPlayer) entity).inventory : null);
64+
if (entity instanceof EntityPlayer) {
65+
return new TinySlot.InventorySlot(stack, ((EntityPlayer) entity).inventory);
66+
} else {
67+
return new TinySlot(stack);
68+
}
6569
}
6670

6771
if (Loader.isModLoaded(Baubles.MODID) && entity instanceof EntityPlayer) {
6872
IInventory inventory = BaublesApi.getBaubles((EntityPlayer) entity);
6973
stack = inventory.getStackInSlot(BAUBLES_SLOT);
7074
if (stack != null && stack.getItem() == Registry.itemNeuralInterface) {
71-
return new TinySlot(stack, inventory);
75+
return new TinySlot.InventorySlot(stack, inventory);
7276
}
7377
}
7478

src/main/java/org/squiddev/plethora/utils/TinySlot.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,34 @@
55
import net.minecraft.item.ItemStack;
66

77
import javax.annotation.Nonnull;
8-
import javax.annotation.Nullable;
98

10-
public final class TinySlot {
11-
private final IInventory inventory;
9+
public class TinySlot {
1210
private final ItemStack stack;
1311

14-
public TinySlot(ItemStack stack, IInventory inventory) {
12+
public TinySlot(@Nonnull ItemStack stack) {
1513
Preconditions.checkNotNull(stack, "stack cannot be null");
16-
17-
this.inventory = inventory;
1814
this.stack = stack;
1915
}
2016

21-
public TinySlot(ItemStack stack) {
22-
this(stack, null);
23-
}
24-
2517
@Nonnull
2618
public ItemStack getStack() {
2719
return stack;
2820
}
2921

3022
public void markDirty() {
31-
if (inventory != null) inventory.markDirty();
3223
}
3324

34-
@Nullable
35-
public IInventory getInventory() {
36-
return inventory;
25+
public static class InventorySlot extends TinySlot {
26+
private final IInventory inventory;
27+
28+
public InventorySlot(@Nonnull ItemStack stack, @Nonnull IInventory inventory) {
29+
super(stack);
30+
this.inventory = inventory;
31+
}
32+
33+
@Override
34+
public void markDirty() {
35+
inventory.markDirty();
36+
}
3737
}
3838
}

0 commit comments

Comments
 (0)