diff options
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/ob')
-rw-r--r-- | src/Java/gtPlusPlus/xmod/ob/CallbackObject.java | 20 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/xmod/ob/CustomSprinklerInventory.java | 35 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/xmod/ob/SprinklerHandler.java | 9 |
3 files changed, 63 insertions, 1 deletions
diff --git a/src/Java/gtPlusPlus/xmod/ob/CallbackObject.java b/src/Java/gtPlusPlus/xmod/ob/CallbackObject.java new file mode 100644 index 0000000000..89c2952a54 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/ob/CallbackObject.java @@ -0,0 +1,20 @@ +package gtPlusPlus.xmod.ob; + +import net.minecraft.inventory.IInventory; +import openblocks.common.tileentity.TileEntitySprinkler; +import openmods.api.IInventoryCallback; + +public class CallbackObject implements IInventoryCallback { + + private TileEntitySprinkler mTile; + + CallbackObject(TileEntitySprinkler aTile){ + mTile = aTile; + } + + @Override + public void onInventoryChanged(IInventory inventory, int slotNumber) { + mTile.updateEntity(); + } + +} diff --git a/src/Java/gtPlusPlus/xmod/ob/CustomSprinklerInventory.java b/src/Java/gtPlusPlus/xmod/ob/CustomSprinklerInventory.java new file mode 100644 index 0000000000..60c340592b --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/ob/CustomSprinklerInventory.java @@ -0,0 +1,35 @@ +package gtPlusPlus.xmod.ob; + +import java.util.HashMap; + +import gtPlusPlus.api.objects.Logger; +import net.minecraft.item.ItemStack; +import openblocks.common.tileentity.TileEntitySprinkler; +import openmods.inventory.TileEntityInventory; + +public class CustomSprinklerInventory extends TileEntityInventory { + private final TileEntitySprinkler owner; + + public CustomSprinklerInventory(TileEntitySprinkler owner, String name, boolean isInvNameLocalized, int size) { + super(owner, name, isInvNameLocalized, size); + this.owner = owner; + this.addCallback(new CallbackObject(this.owner)); + } + + ItemStack[] mFerts; + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemstack) { + Logger.INFO("Inserting: "+itemstack != null ? itemstack.getDisplayName() : "Nothing"); + HashMap<Integer, ItemStack> mFerts = SprinklerHandler.getValidFerts(); + if (itemstack != null && mFerts != null && mFerts.size() > 0) { + for (ItemStack u : mFerts.values()) { + if (itemstack.isItemEqual(u)) { + return true; + } + } + } + return false; + } + +}
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/xmod/ob/SprinklerHandler.java b/src/Java/gtPlusPlus/xmod/ob/SprinklerHandler.java index b6b9428005..85f8ded290 100644 --- a/src/Java/gtPlusPlus/xmod/ob/SprinklerHandler.java +++ b/src/Java/gtPlusPlus/xmod/ob/SprinklerHandler.java @@ -4,8 +4,10 @@ import java.util.HashMap; import com.google.common.base.Objects; +import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.util.minecraft.ItemUtils; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; /** @@ -31,12 +33,17 @@ public class SprinklerHandler { public static void registerSprinklerFertilizer(ItemStack aFert) { int aHash = Objects.hashCode(aFert.getItem(), aFert.getItemDamage()); if (!mValidFerts.containsKey(aHash)) { + Logger.INFO("Registering "+aFert.getDisplayName()+" as OB Sprinkler Fertilizer."); mValidFerts.put(aHash, aFert.copy()); } } public static void registerModFerts() { - ItemStack f; + ItemStack f; + + f = new ItemStack(Items.dye, 1, 15); + SprinklerHandler.registerSprinklerFertilizer(f); + if (LoadedMods.Forestry) { f = ItemUtils.getCorrectStacktype("Forestry:fertilizerBio", 1); if (f != null) { |