From 869c206c4fcc8001bd2e1d66f704290331813835 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Wed, 20 Jan 2016 14:24:34 +1000 Subject: Initial Commit --- src/Java/binnie/core/AbstractMod.java | 158 ++++++ src/Java/binnie/core/BinnieCore.java | 259 +++++++++ src/Java/binnie/core/IInitializable.java | 10 + src/Java/binnie/core/ManagerBase.java | 19 + src/Java/binnie/core/Mods.java | 1 + src/Java/binnie/core/block/BlockMetadata.java | 138 +++++ src/Java/binnie/core/block/IBlockMetadata.java | 21 + src/Java/binnie/core/block/IMultipassBlock.java | 8 + src/Java/binnie/core/block/ItemMetadata.java | 67 +++ .../binnie/core/block/ItemMetadataRenderer.java | 64 +++ .../binnie/core/block/MultipassBlockRenderer.java | 106 ++++ .../binnie/core/block/MultipassItemRenderer.java | 78 +++ src/Java/binnie/core/block/TileEntityMetadata.java | 116 ++++ src/Java/binnie/core/circuits/BinnieCircuit.java | 80 +++ .../binnie/core/circuits/BinnieCircuitLayout.java | 37 ++ .../binnie/core/genetics/BeeBreedingSystem.java | 125 +++++ .../binnie/core/genetics/BeeModifierLogic.java | 47 ++ src/Java/binnie/core/genetics/BreedingSystem.java | 558 +++++++++++++++++++ .../core/genetics/EnumBeeBooleanModifier.java | 8 + src/Java/binnie/core/genetics/EnumBeeModifier.java | 17 + .../binnie/core/genetics/FlowerBreedingSystem.java | 129 +++++ src/Java/binnie/core/genetics/ForestryAllele.java | 211 ++++++++ src/Java/binnie/core/genetics/Gene.java | 128 +++++ src/Java/binnie/core/genetics/IAlleleProvider.java | 8 + .../binnie/core/genetics/IBreedingMessage.java | 124 +++++ .../core/genetics/IItemStackRepresentitive.java | 8 + src/Java/binnie/core/genetics/ManagerGenetics.java | 298 +++++++++++ .../binnie/core/genetics/MothBreedingSystem.java | 138 +++++ src/Java/binnie/core/genetics/Tolerance.java | 48 ++ .../binnie/core/genetics/TreeBreedingSystem.java | 303 +++++++++++ .../binnie/core/genetics/VirtualBeeHousing.java | 111 ++++ src/Java/binnie/core/genetics/VirtualHousing.java | 98 ++++ .../binnie/core/genetics/VirtualMothHousing.java | 33 ++ src/Java/binnie/core/gui/BinnieCoreGUI.java | 54 ++ src/Java/binnie/core/gui/BinnieGUIHandler.java | 54 ++ src/Java/binnie/core/gui/IBinnieGUID.java | 13 + src/Java/binnie/core/item/IItemEnum.java | 14 + src/Java/binnie/core/item/IItemMisc.java | 19 + src/Java/binnie/core/item/ItemFieldKit.java | 82 +++ src/Java/binnie/core/item/ItemGenesis.java | 42 ++ src/Java/binnie/core/item/ItemMisc.java | 81 +++ src/Java/binnie/core/item/ManagerItem.java | 11 + src/Java/binnie/core/item/ModuleItems.java | 75 +++ src/Java/binnie/core/language/ManagerLanguage.java | 59 ++ src/Java/binnie/core/liquid/BinnieFluid.java | 32 ++ src/Java/binnie/core/liquid/FluidContainer.java | 95 ++++ src/Java/binnie/core/liquid/IFluidType.java | 28 + src/Java/binnie/core/liquid/ILiquidType.java | 7 + .../binnie/core/liquid/ItemFluidContainer.java | 179 +++++++ src/Java/binnie/core/liquid/ManagerLiquid.java | 80 +++ src/Java/binnie/core/machines/BlockMachine.java | 181 +++++++ src/Java/binnie/core/machines/IBlockMachine.java | 8 + src/Java/binnie/core/machines/IMachine.java | 25 + src/Java/binnie/core/machines/IMachineType.java | 11 + src/Java/binnie/core/machines/IOwnable.java | 10 + src/Java/binnie/core/machines/ItemMachine.java | 29 + src/Java/binnie/core/machines/Machine.java | 320 +++++++++++ .../binnie/core/machines/MachineComponent.java | 61 +++ src/Java/binnie/core/machines/MachineGroup.java | 113 ++++ src/Java/binnie/core/machines/MachinePackage.java | 74 +++ .../binnie/core/machines/MachineRendererBlock.java | 41 ++ src/Java/binnie/core/machines/MachineUtil.java | 216 ++++++++ src/Java/binnie/core/machines/ManagerMachine.java | 108 ++++ src/Java/binnie/core/machines/ModelBlock.java | 42 ++ src/Java/binnie/core/machines/RendererMachine.java | 68 +++ .../binnie/core/machines/TileEntityMachine.java | 112 ++++ .../core/machines/base/DefaultInventory.java | 82 +++ .../binnie/core/machines/base/DefaultPower.java | 71 +++ .../core/machines/base/DefaultTankContainer.java | 79 +++ .../core/machines/base/TileEntityMachineBase.java | 262 +++++++++ .../core/machines/component/ComponentRecipe.java | 14 + .../core/machines/component/IBuildcraft.java | 20 + .../core/machines/component/IComponentRecipe.java | 12 + .../core/machines/component/IInteraction.java | 22 + .../binnie/core/machines/component/IRender.java | 28 + .../core/machines/inventory/AccessDirection.java | 97 ++++ .../binnie/core/machines/inventory/BaseSlot.java | 148 +++++ .../machines/inventory/ComponentChargedSlots.java | 117 ++++ .../machines/inventory/ComponentInventory.java | 22 + .../inventory/ComponentInventorySlots.java | 247 +++++++++ .../inventory/ComponentInventoryTransfer.java | 161 ++++++ .../machines/inventory/ComponentTankContainer.java | 207 +++++++ .../core/machines/inventory/IChargedSlots.java | 10 + .../core/machines/inventory/IInventoryMachine.java | 8 + .../core/machines/inventory/IInventorySlots.java | 14 + .../machines/inventory/IValidatedInventory.java | 9 + .../inventory/IValidatedTankContainer.java | 10 + .../core/machines/inventory/InventorySlot.java | 115 ++++ .../core/machines/inventory/MachineSide.java | 79 +++ .../binnie/core/machines/inventory/SetList.java | 36 ++ .../core/machines/inventory/SidedAccess.java | 106 ++++ .../core/machines/inventory/SlotValidator.java | 68 +++ .../binnie/core/machines/inventory/TankSlot.java | 58 ++ .../core/machines/inventory/TankValidator.java | 33 ++ .../core/machines/inventory/TransferHandler.java | 227 ++++++++ .../binnie/core/machines/inventory/Validator.java | 9 + .../core/machines/inventory/ValidatorIcon.java | 25 + .../binnie/core/machines/network/INetwork.java | 30 ++ .../machines/power/ComponentPowerReceptor.java | 191 +++++++ .../core/machines/power/ComponentProcess.java | 90 ++++ .../machines/power/ComponentProcessIndefinate.java | 120 +++++ .../machines/power/ComponentProcessSetCost.java | 27 + .../binnie/core/machines/power/ErrorState.java | 187 +++++++ .../core/machines/power/IErrorStateSource.java | 8 + .../core/machines/power/IPoweredMachine.java | 14 + src/Java/binnie/core/machines/power/IProcess.java | 13 + .../binnie/core/machines/power/IProcessTimed.java | 13 + .../binnie/core/machines/power/ITankMachine.java | 20 + src/Java/binnie/core/machines/power/PowerInfo.java | 41 ++ .../binnie/core/machines/power/PowerInterface.java | 90 ++++ .../binnie/core/machines/power/PowerSystem.java | 44 ++ .../binnie/core/machines/power/ProcessInfo.java | 67 +++ src/Java/binnie/core/machines/power/TankInfo.java | 76 +++ .../binnie/core/machines/storage/Compartment.java | 65 +++ .../core/machines/storage/CompartmentTab.java | 77 +++ .../machines/storage/ComponentBinnieCoreGUI.java | 28 + .../storage/ComponentCompartmentInventory.java | 128 +++++ .../machines/storage/ControlColourSelector.java | 47 ++ .../storage/MachineRendererCompartment.java | 50 ++ .../core/machines/storage/ModelCompartment.java | 171 ++++++ .../core/machines/storage/ModuleStorage.java | 39 ++ .../core/machines/storage/StandardCompartment.java | 142 +++++ .../core/machines/storage/WindowCompartment.java | 594 +++++++++++++++++++++ .../binnie/core/machines/storage/WindowTest.java | 40 ++ .../core/machines/transfer/TransferHandler.java | 3 + .../core/machines/transfer/TransferRequest.java | 419 +++++++++++++++ .../core/mod/config/BinnieConfiguration.java | 21 + .../binnie/core/mod/config/BinnieItemData.java | 15 + src/Java/binnie/core/mod/config/ConfigFile.java | 11 + .../binnie/core/mod/config/ConfigProperty.java | 26 + .../binnie/core/mod/config/ConfigurationMain.java | 4 + .../binnie/core/mod/config/ConfigurationMods.java | 18 + src/Java/binnie/core/mod/config/ManagerConfig.java | 71 +++ src/Java/binnie/core/mod/config/PropBoolean.java | 38 ++ src/Java/binnie/core/mod/config/PropDouble.java | 38 ++ src/Java/binnie/core/mod/config/PropInteger.java | 38 ++ .../binnie/core/mod/config/PropPercentage.java | 43 ++ src/Java/binnie/core/mod/config/PropertyBase.java | 72 +++ src/Java/binnie/core/mod/parser/FieldParser.java | 55 ++ src/Java/binnie/core/mod/parser/ItemParser.java | 24 + .../core/multiblock/BlockMultiblockMachine.java | 27 + .../multiblock/TileEntityMultiblockMachine.java | 37 ++ .../binnie/core/network/BinnieCorePacketID.java | 77 +++ .../binnie/core/network/BinniePacketHandler.java | 43 ++ src/Java/binnie/core/network/INetworkedEntity.java | 10 + src/Java/binnie/core/network/IOrdinaled.java | 6 + src/Java/binnie/core/network/IPacketID.java | 10 + src/Java/binnie/core/network/IPacketProvider.java | 8 + src/Java/binnie/core/network/packet/IPacket.java | 8 + .../core/network/packet/IPacketLocation.java | 15 + .../binnie/core/network/packet/IndexInPayload.java | 15 + .../binnie/core/network/packet/MachinePayload.java | 77 +++ .../binnie/core/network/packet/MessageBase.java | 69 +++ .../binnie/core/network/packet/MessageBinnie.java | 40 ++ .../network/packet/MessageContainerUpdate.java | 17 + .../core/network/packet/MessageCoordinates.java | 59 ++ .../core/network/packet/MessageCraftGUI.java | 18 + .../core/network/packet/MessageMetadata.java | 36 ++ .../binnie/core/network/packet/MessageNBT.java | 49 ++ .../binnie/core/network/packet/MessageTileNBT.java | 82 +++ .../binnie/core/network/packet/MessageUpdate.java | 92 ++++ .../binnie/core/network/packet/PacketPayload.java | 70 +++ src/Java/binnie/core/proxy/BinnieModProxy.java | 67 +++ src/Java/binnie/core/proxy/BinnieProxy.java | 156 ++++++ src/Java/binnie/core/proxy/BinnieProxyClient.java | 158 ++++++ src/Java/binnie/core/proxy/BinnieProxyServer.java | 6 + src/Java/binnie/core/proxy/IBinnieModProxy.java | 21 + src/Java/binnie/core/proxy/IBinnieProxy.java | 54 ++ src/Java/binnie/core/proxy/IProxyCore.java | 7 + src/Java/binnie/core/resource/BinnieIcon.java | 47 ++ src/Java/binnie/core/resource/BinnieResource.java | 38 ++ src/Java/binnie/core/resource/IBinnieTexture.java | 6 + src/Java/binnie/core/resource/ManagerResource.java | 48 ++ src/Java/binnie/core/resource/ResourceType.java | 18 + .../binnie/core/texture/BinnieCoreTexture.java | 28 + src/Java/binnie/core/texture/TextureManager.java | 15 + src/Java/binnie/core/triggers/ActionProvider.java | 38 ++ src/Java/binnie/core/triggers/BinnieAction.java | 88 +++ src/Java/binnie/core/triggers/BinnieTrigger.java | 116 ++++ src/Java/binnie/core/triggers/ModuleTrigger.java | 45 ++ src/Java/binnie/core/triggers/TriggerData.java | 37 ++ .../binnie/core/triggers/TriggerInventory.java | 11 + src/Java/binnie/core/triggers/TriggerPower.java | 48 ++ src/Java/binnie/core/triggers/TriggerProvider.java | 57 ++ src/Java/binnie/core/triggers/TriggerWorking.java | 47 ++ src/Java/binnie/core/util/FluidStackSet.java | 128 +++++ src/Java/binnie/core/util/IValidator.java | 6 + src/Java/binnie/core/util/ItemStackSet.java | 128 +++++ src/Java/binnie/core/util/UniqueFluidStackSet.java | 28 + src/Java/binnie/core/util/UniqueItemStackSet.java | 28 + 190 files changed, 13941 insertions(+) create mode 100644 src/Java/binnie/core/AbstractMod.java create mode 100644 src/Java/binnie/core/BinnieCore.java create mode 100644 src/Java/binnie/core/IInitializable.java create mode 100644 src/Java/binnie/core/ManagerBase.java create mode 100644 src/Java/binnie/core/Mods.java create mode 100644 src/Java/binnie/core/block/BlockMetadata.java create mode 100644 src/Java/binnie/core/block/IBlockMetadata.java create mode 100644 src/Java/binnie/core/block/IMultipassBlock.java create mode 100644 src/Java/binnie/core/block/ItemMetadata.java create mode 100644 src/Java/binnie/core/block/ItemMetadataRenderer.java create mode 100644 src/Java/binnie/core/block/MultipassBlockRenderer.java create mode 100644 src/Java/binnie/core/block/MultipassItemRenderer.java create mode 100644 src/Java/binnie/core/block/TileEntityMetadata.java create mode 100644 src/Java/binnie/core/circuits/BinnieCircuit.java create mode 100644 src/Java/binnie/core/circuits/BinnieCircuitLayout.java create mode 100644 src/Java/binnie/core/genetics/BeeBreedingSystem.java create mode 100644 src/Java/binnie/core/genetics/BeeModifierLogic.java create mode 100644 src/Java/binnie/core/genetics/BreedingSystem.java create mode 100644 src/Java/binnie/core/genetics/EnumBeeBooleanModifier.java create mode 100644 src/Java/binnie/core/genetics/EnumBeeModifier.java create mode 100644 src/Java/binnie/core/genetics/FlowerBreedingSystem.java create mode 100644 src/Java/binnie/core/genetics/ForestryAllele.java create mode 100644 src/Java/binnie/core/genetics/Gene.java create mode 100644 src/Java/binnie/core/genetics/IAlleleProvider.java create mode 100644 src/Java/binnie/core/genetics/IBreedingMessage.java create mode 100644 src/Java/binnie/core/genetics/IItemStackRepresentitive.java create mode 100644 src/Java/binnie/core/genetics/ManagerGenetics.java create mode 100644 src/Java/binnie/core/genetics/MothBreedingSystem.java create mode 100644 src/Java/binnie/core/genetics/Tolerance.java create mode 100644 src/Java/binnie/core/genetics/TreeBreedingSystem.java create mode 100644 src/Java/binnie/core/genetics/VirtualBeeHousing.java create mode 100644 src/Java/binnie/core/genetics/VirtualHousing.java create mode 100644 src/Java/binnie/core/genetics/VirtualMothHousing.java create mode 100644 src/Java/binnie/core/gui/BinnieCoreGUI.java create mode 100644 src/Java/binnie/core/gui/BinnieGUIHandler.java create mode 100644 src/Java/binnie/core/gui/IBinnieGUID.java create mode 100644 src/Java/binnie/core/item/IItemEnum.java create mode 100644 src/Java/binnie/core/item/IItemMisc.java create mode 100644 src/Java/binnie/core/item/ItemFieldKit.java create mode 100644 src/Java/binnie/core/item/ItemGenesis.java create mode 100644 src/Java/binnie/core/item/ItemMisc.java create mode 100644 src/Java/binnie/core/item/ManagerItem.java create mode 100644 src/Java/binnie/core/item/ModuleItems.java create mode 100644 src/Java/binnie/core/language/ManagerLanguage.java create mode 100644 src/Java/binnie/core/liquid/BinnieFluid.java create mode 100644 src/Java/binnie/core/liquid/FluidContainer.java create mode 100644 src/Java/binnie/core/liquid/IFluidType.java create mode 100644 src/Java/binnie/core/liquid/ILiquidType.java create mode 100644 src/Java/binnie/core/liquid/ItemFluidContainer.java create mode 100644 src/Java/binnie/core/liquid/ManagerLiquid.java create mode 100644 src/Java/binnie/core/machines/BlockMachine.java create mode 100644 src/Java/binnie/core/machines/IBlockMachine.java create mode 100644 src/Java/binnie/core/machines/IMachine.java create mode 100644 src/Java/binnie/core/machines/IMachineType.java create mode 100644 src/Java/binnie/core/machines/IOwnable.java create mode 100644 src/Java/binnie/core/machines/ItemMachine.java create mode 100644 src/Java/binnie/core/machines/Machine.java create mode 100644 src/Java/binnie/core/machines/MachineComponent.java create mode 100644 src/Java/binnie/core/machines/MachineGroup.java create mode 100644 src/Java/binnie/core/machines/MachinePackage.java create mode 100644 src/Java/binnie/core/machines/MachineRendererBlock.java create mode 100644 src/Java/binnie/core/machines/MachineUtil.java create mode 100644 src/Java/binnie/core/machines/ManagerMachine.java create mode 100644 src/Java/binnie/core/machines/ModelBlock.java create mode 100644 src/Java/binnie/core/machines/RendererMachine.java create mode 100644 src/Java/binnie/core/machines/TileEntityMachine.java create mode 100644 src/Java/binnie/core/machines/base/DefaultInventory.java create mode 100644 src/Java/binnie/core/machines/base/DefaultPower.java create mode 100644 src/Java/binnie/core/machines/base/DefaultTankContainer.java create mode 100644 src/Java/binnie/core/machines/base/TileEntityMachineBase.java create mode 100644 src/Java/binnie/core/machines/component/ComponentRecipe.java create mode 100644 src/Java/binnie/core/machines/component/IBuildcraft.java create mode 100644 src/Java/binnie/core/machines/component/IComponentRecipe.java create mode 100644 src/Java/binnie/core/machines/component/IInteraction.java create mode 100644 src/Java/binnie/core/machines/component/IRender.java create mode 100644 src/Java/binnie/core/machines/inventory/AccessDirection.java create mode 100644 src/Java/binnie/core/machines/inventory/BaseSlot.java create mode 100644 src/Java/binnie/core/machines/inventory/ComponentChargedSlots.java create mode 100644 src/Java/binnie/core/machines/inventory/ComponentInventory.java create mode 100644 src/Java/binnie/core/machines/inventory/ComponentInventorySlots.java create mode 100644 src/Java/binnie/core/machines/inventory/ComponentInventoryTransfer.java create mode 100644 src/Java/binnie/core/machines/inventory/ComponentTankContainer.java create mode 100644 src/Java/binnie/core/machines/inventory/IChargedSlots.java create mode 100644 src/Java/binnie/core/machines/inventory/IInventoryMachine.java create mode 100644 src/Java/binnie/core/machines/inventory/IInventorySlots.java create mode 100644 src/Java/binnie/core/machines/inventory/IValidatedInventory.java create mode 100644 src/Java/binnie/core/machines/inventory/IValidatedTankContainer.java create mode 100644 src/Java/binnie/core/machines/inventory/InventorySlot.java create mode 100644 src/Java/binnie/core/machines/inventory/MachineSide.java create mode 100644 src/Java/binnie/core/machines/inventory/SetList.java create mode 100644 src/Java/binnie/core/machines/inventory/SidedAccess.java create mode 100644 src/Java/binnie/core/machines/inventory/SlotValidator.java create mode 100644 src/Java/binnie/core/machines/inventory/TankSlot.java create mode 100644 src/Java/binnie/core/machines/inventory/TankValidator.java create mode 100644 src/Java/binnie/core/machines/inventory/TransferHandler.java create mode 100644 src/Java/binnie/core/machines/inventory/Validator.java create mode 100644 src/Java/binnie/core/machines/inventory/ValidatorIcon.java create mode 100644 src/Java/binnie/core/machines/network/INetwork.java create mode 100644 src/Java/binnie/core/machines/power/ComponentPowerReceptor.java create mode 100644 src/Java/binnie/core/machines/power/ComponentProcess.java create mode 100644 src/Java/binnie/core/machines/power/ComponentProcessIndefinate.java create mode 100644 src/Java/binnie/core/machines/power/ComponentProcessSetCost.java create mode 100644 src/Java/binnie/core/machines/power/ErrorState.java create mode 100644 src/Java/binnie/core/machines/power/IErrorStateSource.java create mode 100644 src/Java/binnie/core/machines/power/IPoweredMachine.java create mode 100644 src/Java/binnie/core/machines/power/IProcess.java create mode 100644 src/Java/binnie/core/machines/power/IProcessTimed.java create mode 100644 src/Java/binnie/core/machines/power/ITankMachine.java create mode 100644 src/Java/binnie/core/machines/power/PowerInfo.java create mode 100644 src/Java/binnie/core/machines/power/PowerInterface.java create mode 100644 src/Java/binnie/core/machines/power/PowerSystem.java create mode 100644 src/Java/binnie/core/machines/power/ProcessInfo.java create mode 100644 src/Java/binnie/core/machines/power/TankInfo.java create mode 100644 src/Java/binnie/core/machines/storage/Compartment.java create mode 100644 src/Java/binnie/core/machines/storage/CompartmentTab.java create mode 100644 src/Java/binnie/core/machines/storage/ComponentBinnieCoreGUI.java create mode 100644 src/Java/binnie/core/machines/storage/ComponentCompartmentInventory.java create mode 100644 src/Java/binnie/core/machines/storage/ControlColourSelector.java create mode 100644 src/Java/binnie/core/machines/storage/MachineRendererCompartment.java create mode 100644 src/Java/binnie/core/machines/storage/ModelCompartment.java create mode 100644 src/Java/binnie/core/machines/storage/ModuleStorage.java create mode 100644 src/Java/binnie/core/machines/storage/StandardCompartment.java create mode 100644 src/Java/binnie/core/machines/storage/WindowCompartment.java create mode 100644 src/Java/binnie/core/machines/storage/WindowTest.java create mode 100644 src/Java/binnie/core/machines/transfer/TransferHandler.java create mode 100644 src/Java/binnie/core/machines/transfer/TransferRequest.java create mode 100644 src/Java/binnie/core/mod/config/BinnieConfiguration.java create mode 100644 src/Java/binnie/core/mod/config/BinnieItemData.java create mode 100644 src/Java/binnie/core/mod/config/ConfigFile.java create mode 100644 src/Java/binnie/core/mod/config/ConfigProperty.java create mode 100644 src/Java/binnie/core/mod/config/ConfigurationMain.java create mode 100644 src/Java/binnie/core/mod/config/ConfigurationMods.java create mode 100644 src/Java/binnie/core/mod/config/ManagerConfig.java create mode 100644 src/Java/binnie/core/mod/config/PropBoolean.java create mode 100644 src/Java/binnie/core/mod/config/PropDouble.java create mode 100644 src/Java/binnie/core/mod/config/PropInteger.java create mode 100644 src/Java/binnie/core/mod/config/PropPercentage.java create mode 100644 src/Java/binnie/core/mod/config/PropertyBase.java create mode 100644 src/Java/binnie/core/mod/parser/FieldParser.java create mode 100644 src/Java/binnie/core/mod/parser/ItemParser.java create mode 100644 src/Java/binnie/core/multiblock/BlockMultiblockMachine.java create mode 100644 src/Java/binnie/core/multiblock/TileEntityMultiblockMachine.java create mode 100644 src/Java/binnie/core/network/BinnieCorePacketID.java create mode 100644 src/Java/binnie/core/network/BinniePacketHandler.java create mode 100644 src/Java/binnie/core/network/INetworkedEntity.java create mode 100644 src/Java/binnie/core/network/IOrdinaled.java create mode 100644 src/Java/binnie/core/network/IPacketID.java create mode 100644 src/Java/binnie/core/network/IPacketProvider.java create mode 100644 src/Java/binnie/core/network/packet/IPacket.java create mode 100644 src/Java/binnie/core/network/packet/IPacketLocation.java create mode 100644 src/Java/binnie/core/network/packet/IndexInPayload.java create mode 100644 src/Java/binnie/core/network/packet/MachinePayload.java create mode 100644 src/Java/binnie/core/network/packet/MessageBase.java create mode 100644 src/Java/binnie/core/network/packet/MessageBinnie.java create mode 100644 src/Java/binnie/core/network/packet/MessageContainerUpdate.java create mode 100644 src/Java/binnie/core/network/packet/MessageCoordinates.java create mode 100644 src/Java/binnie/core/network/packet/MessageCraftGUI.java create mode 100644 src/Java/binnie/core/network/packet/MessageMetadata.java create mode 100644 src/Java/binnie/core/network/packet/MessageNBT.java create mode 100644 src/Java/binnie/core/network/packet/MessageTileNBT.java create mode 100644 src/Java/binnie/core/network/packet/MessageUpdate.java create mode 100644 src/Java/binnie/core/network/packet/PacketPayload.java create mode 100644 src/Java/binnie/core/proxy/BinnieModProxy.java create mode 100644 src/Java/binnie/core/proxy/BinnieProxy.java create mode 100644 src/Java/binnie/core/proxy/BinnieProxyClient.java create mode 100644 src/Java/binnie/core/proxy/BinnieProxyServer.java create mode 100644 src/Java/binnie/core/proxy/IBinnieModProxy.java create mode 100644 src/Java/binnie/core/proxy/IBinnieProxy.java create mode 100644 src/Java/binnie/core/proxy/IProxyCore.java create mode 100644 src/Java/binnie/core/resource/BinnieIcon.java create mode 100644 src/Java/binnie/core/resource/BinnieResource.java create mode 100644 src/Java/binnie/core/resource/IBinnieTexture.java create mode 100644 src/Java/binnie/core/resource/ManagerResource.java create mode 100644 src/Java/binnie/core/resource/ResourceType.java create mode 100644 src/Java/binnie/core/texture/BinnieCoreTexture.java create mode 100644 src/Java/binnie/core/texture/TextureManager.java create mode 100644 src/Java/binnie/core/triggers/ActionProvider.java create mode 100644 src/Java/binnie/core/triggers/BinnieAction.java create mode 100644 src/Java/binnie/core/triggers/BinnieTrigger.java create mode 100644 src/Java/binnie/core/triggers/ModuleTrigger.java create mode 100644 src/Java/binnie/core/triggers/TriggerData.java create mode 100644 src/Java/binnie/core/triggers/TriggerInventory.java create mode 100644 src/Java/binnie/core/triggers/TriggerPower.java create mode 100644 src/Java/binnie/core/triggers/TriggerProvider.java create mode 100644 src/Java/binnie/core/triggers/TriggerWorking.java create mode 100644 src/Java/binnie/core/util/FluidStackSet.java create mode 100644 src/Java/binnie/core/util/IValidator.java create mode 100644 src/Java/binnie/core/util/ItemStackSet.java create mode 100644 src/Java/binnie/core/util/UniqueFluidStackSet.java create mode 100644 src/Java/binnie/core/util/UniqueItemStackSet.java (limited to 'src/Java/binnie/core') diff --git a/src/Java/binnie/core/AbstractMod.java b/src/Java/binnie/core/AbstractMod.java new file mode 100644 index 0000000000..74f274cdb7 --- /dev/null +++ b/src/Java/binnie/core/AbstractMod.java @@ -0,0 +1,158 @@ +package binnie.core; + +import binnie.Binnie; +import binnie.core.gui.IBinnieGUID; +import binnie.core.mod.config.ManagerConfig; +import binnie.core.mod.parser.FieldParser; +import binnie.core.network.BinniePacketHandler; +import binnie.core.network.IPacketID; +import binnie.core.network.IPacketProvider; +import binnie.core.network.packet.MessageBinnie; +import binnie.core.proxy.IProxyCore; +import cpw.mods.fml.common.eventhandler.EventBus; +import cpw.mods.fml.common.network.NetworkRegistry; +import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; +import cpw.mods.fml.relauncher.Side; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.LinkedHashSet; +import java.util.List; +import net.minecraftforge.common.MinecraftForge; + +public abstract class AbstractMod + implements IPacketProvider, IInitializable +{ + private SimpleNetworkWrapper wrapper; + + public AbstractMod() + { + BinnieCore.registerMod(this); + MinecraftForge.EVENT_BUS.register(this); + } + + public abstract boolean isActive(); + + public abstract String getChannel(); + + public IPacketID[] getPacketIDs() + { + return new IPacketID[0]; + } + + public IBinnieGUID[] getGUIDs() + { + return new IBinnieGUID[0]; + } + + public Class[] getConfigs() + { + return new Class[0]; + } + + public abstract IProxyCore getProxy(); + + public abstract String getModID(); + + public SimpleNetworkWrapper getNetworkWrapper() + { + return this.wrapper; + } + + protected abstract Class getPacketHandler(); + + public void preInit() + { + if (!isActive()) { + return; + } + if (getConfigs() != null) { + for (Class cls : getConfigs()) { + Binnie.Configuration.registerConfiguration(cls, this); + } + } + getProxy().preInit(); + for (IInitializable module : this.modules) { + module.preInit(); + } + for (Field field : getClass().getFields()) { + this.fields.add(field); + } + for (Class cls : getClass().getClasses()) { + for (Field field : getClass().getFields()) { + this.fields.add(field); + } + } + for (IInitializable module : this.modules) { + for (Field field : module.getClass().getFields()) { + this.fields.add(field); + } + } + for (Field field : this.fields) { + try + { + FieldParser.preInitParse(field, this); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + } + + public void init() + { + if (!isActive()) { + return; + } + getProxy().init(); + + this.wrapper = NetworkRegistry.INSTANCE.newSimpleChannel(getChannel()); + + this.wrapper.registerMessage(getPacketHandler(), MessageBinnie.class, 1, Side.CLIENT); + this.wrapper.registerMessage(getPacketHandler(), MessageBinnie.class, 1, Side.SERVER); + for (IInitializable module : this.modules) { + module.init(); + } + for (Field field : this.fields) { + try + { + FieldParser.initParse(field, this); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + } + + private LinkedHashSet fields = new LinkedHashSet(); + + public void postInit() + { + if (!isActive()) { + return; + } + getProxy().postInit(); + for (IInitializable module : this.modules) { + module.postInit(); + } + for (Field field : this.fields) { + try + { + FieldParser.postInitParse(field, this); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + } + + protected final void addModule(IInitializable init) + { + this.modules.add(init); + MinecraftForge.EVENT_BUS.register(init); + } + + protected List modules = new ArrayList(); +} diff --git a/src/Java/binnie/core/BinnieCore.java b/src/Java/binnie/core/BinnieCore.java new file mode 100644 index 0000000000..6f1ce219ef --- /dev/null +++ b/src/Java/binnie/core/BinnieCore.java @@ -0,0 +1,259 @@ +package binnie.core; + +import binnie.Binnie; +import binnie.core.block.MultipassBlockRenderer; +import binnie.core.block.TileEntityMetadata; +import binnie.core.gui.BinnieCoreGUI; +import binnie.core.gui.BinnieGUIHandler; +import binnie.core.gui.IBinnieGUID; +import binnie.core.item.ItemFieldKit; +import binnie.core.item.ItemGenesis; +import binnie.core.item.ModuleItems; +import binnie.core.liquid.FluidContainer; +import binnie.core.liquid.ItemFluidContainer; +import binnie.core.liquid.ManagerLiquid; +import binnie.core.machines.MachineGroup; +import binnie.core.machines.storage.ModuleStorage; +import binnie.core.mod.config.ConfigurationMain; +import binnie.core.mod.config.ConfigurationMods; +import binnie.core.mod.config.ManagerConfig; +import binnie.core.mod.parser.FieldParser; +import binnie.core.mod.parser.ItemParser; +import binnie.core.network.BinnieCorePacketID; +import binnie.core.network.BinniePacketHandler; +import binnie.core.network.IPacketID; +import binnie.core.proxy.BinnieProxy; +import binnie.core.proxy.IBinnieProxy; +import binnie.core.resource.ManagerResource; +import binnie.core.triggers.ModuleTrigger; +import binnie.craftgui.minecraft.ModuleCraftGUI; +import com.mojang.authlib.GameProfile; +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.Mod.EventHandler; +import cpw.mods.fml.common.Mod.Instance; +import cpw.mods.fml.common.SidedProxy; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.network.NetworkRegistry; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import forestry.api.core.ForestryEvent.SpeciesDiscovered; +import forestry.api.genetics.IAlleleSpecies; +import forestry.api.genetics.IBreedingTracker; +import forestry.plugins.PluginManager.Module; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.management.ServerConfigurationManager; +import net.minecraftforge.client.event.TextureStitchEvent.Pre; + +@Mod(modid="BinnieCore", name="Binnie Core", useMetadata=true) +public final class BinnieCore + extends AbstractMod +{ + @Mod.Instance("BinnieCore") + public static BinnieCore instance; + @SidedProxy(clientSide="binnie.core.proxy.BinnieProxyClient", serverSide="binnie.core.proxy.BinnieProxyServer") + public static BinnieProxy proxy; + public static int multipassRenderID; + + @Mod.EventHandler + public void preInit(FMLPreInitializationEvent evt) + { + Binnie.Configuration.registerConfiguration(ConfigurationMods.class, this); + for (ManagerBase baseManager : Binnie.Managers) { + addModule(baseManager); + } + addModule(new ModuleCraftGUI()); + addModule(new ModuleStorage()); + addModule(new ModuleItems()); + if (Loader.isModLoaded("BuildCraft|Silicon")) { + addModule(new ModuleTrigger()); + } + preInit(); + } + + @Mod.EventHandler + public void init(FMLInitializationEvent evt) + { + init(); + } + + @Mod.EventHandler + public void postInit(FMLPostInitializationEvent evt) + { + postInit(); + } + + public IBinnieGUID[] getGUIDs() + { + return BinnieCoreGUI.values(); + } + + public void preInit() + { + instance = this; + for (FluidContainer container : FluidContainer.values()) + { + Item item = new ItemFluidContainer(container); + GameRegistry.registerItem(item, item.getUnlocalizedName().substring(5)); + } + FieldParser.parsers.add(new ItemParser()); + + super.preInit(); + } + + public void init() + { + super.init(); + for (AbstractMod mod : getActiveMods()) { + NetworkRegistry.INSTANCE.registerGuiHandler(mod, new BinnieGUIHandler(mod)); + } + multipassRenderID = RenderingRegistry.getNextAvailableRenderId(); + RenderingRegistry.registerBlockHandler(new MultipassBlockRenderer()); + + GameRegistry.registerTileEntity(TileEntityMetadata.class, "binnie.tile.metadata"); + } + + public static boolean isLepidopteryActive() + { + return PluginManager.Module.LEPIDOPTEROLOGY.isEnabled(); + } + + public static boolean isApicultureActive() + { + return PluginManager.Module.APICULTURE.isEnabled(); + } + + public static boolean isArboricultureActive() + { + return PluginManager.Module.ARBORICULTURE.isEnabled(); + } + + public static boolean isBotanyActive() + { + return ConfigurationMods.botany; + } + + public static boolean isGeneticsActive() + { + return ConfigurationMods.genetics; + } + + public static boolean isExtraBeesActive() + { + return (ConfigurationMods.extraBees) && (isApicultureActive()); + } + + public static boolean isExtraTreesActive() + { + return (ConfigurationMods.extraTrees) && (isArboricultureActive()); + } + + public void postInit() + { + super.postInit(); + } + + private static List modList = new ArrayList(); + public static MachineGroup packageCompartment; + public static ItemGenesis genesis; + public static ItemFieldKit fieldKit; + + static void registerMod(AbstractMod mod) + { + modList.add(mod); + } + + private static List getActiveMods() + { + List list = new ArrayList(); + for (AbstractMod mod : modList) { + if (mod.isActive()) { + list.add(mod); + } + } + return list; + } + + @SubscribeEvent + @SideOnly(Side.CLIENT) + public void handleSpeciesDiscovered(ForestryEvent.SpeciesDiscovered event) + { + try + { + EntityPlayerMP player = MinecraftServer.getServer().getConfigurationManager().func_152612_a(event.username.getName()); + if (player == null) { + return; + } + event.tracker.synchToPlayer(player); + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setString("species", event.species.getUID()); + } + catch (Exception e) {} + } + + public String getChannel() + { + return "BIN"; + } + + public IBinnieProxy getProxy() + { + return proxy; + } + + public String getModID() + { + return "binniecore"; + } + + public IPacketID[] getPacketIDs() + { + return BinnieCorePacketID.values(); + } + + @SubscribeEvent + @SideOnly(Side.CLIENT) + public void handleTextureRemap(TextureStitchEvent.Pre event) + { + if (event.map.getTextureType() == 0) { + Binnie.Liquid.reloadIcons(event.map); + } + Binnie.Resource.registerIcons(event.map, event.map.getTextureType()); + } + + public Class[] getConfigs() + { + return new Class[] { ConfigurationMain.class }; + } + + protected Class getPacketHandler() + { + return PacketHandler.class; + } + + public static class PacketHandler + extends BinniePacketHandler + { + public PacketHandler() + { + super(); + } + } + + public boolean isActive() + { + return true; + } +} diff --git a/src/Java/binnie/core/IInitializable.java b/src/Java/binnie/core/IInitializable.java new file mode 100644 index 0000000000..7a357faa12 --- /dev/null +++ b/src/Java/binnie/core/IInitializable.java @@ -0,0 +1,10 @@ +package binnie.core; + +public abstract interface IInitializable +{ + public abstract void preInit(); + + public abstract void init(); + + public abstract void postInit(); +} diff --git a/src/Java/binnie/core/ManagerBase.java b/src/Java/binnie/core/ManagerBase.java new file mode 100644 index 0000000000..9627ed20bd --- /dev/null +++ b/src/Java/binnie/core/ManagerBase.java @@ -0,0 +1,19 @@ +package binnie.core; + +import binnie.Binnie; +import java.util.List; + +public abstract class ManagerBase + implements IInitializable +{ + public ManagerBase() + { + Binnie.Managers.add(this); + } + + public void preInit() {} + + public void init() {} + + public void postInit() {} +} diff --git a/src/Java/binnie/core/Mods.java b/src/Java/binnie/core/Mods.java new file mode 100644 index 0000000000..9c242aa712 --- /dev/null +++ b/src/Java/binnie/core/Mods.java @@ -0,0 +1 @@ +// INTERNAL ERROR // \ No newline at end of file diff --git a/src/Java/binnie/core/block/BlockMetadata.java b/src/Java/binnie/core/block/BlockMetadata.java new file mode 100644 index 0000000000..39b461d01d --- /dev/null +++ b/src/Java/binnie/core/block/BlockMetadata.java @@ -0,0 +1,138 @@ +package binnie.core.block; + +import binnie.core.BinnieCore; +import binnie.core.proxy.BinnieProxy; +import java.util.ArrayList; +import java.util.List; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.PlayerCapabilities; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockMetadata + extends BlockContainer + implements IBlockMetadata +{ + public BlockMetadata(Material material) + { + super(material); + } + + public ArrayList getDrops(World world, int x, int y, int z, int blockMeta, int fortune) + { + return getBlockDropped(this, world, x, y, z, blockMeta); + } + + public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z) + { + return breakBlock(this, player, world, x, y, z); + } + + public TileEntity createNewTileEntity(World var1, int i) + { + return new TileEntityMetadata(); + } + + public boolean hasTileEntity(int meta) + { + return true; + } + + public boolean onBlockEventReceived(World par1World, int par2, int par3, int par4, int par5, int par6) + { + super.onBlockEventReceived(par1World, par2, par3, par4, par5, par6); + TileEntity tileentity = par1World.getTileEntity(par2, par3, par4); + return tileentity != null ? tileentity.receiveClientEvent(par5, par6) : false; + } + + public IIcon getIcon(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + int metadata = TileEntityMetadata.getTileMetadata(par1IBlockAccess, par2, par3, par4); + return getIcon(par5, metadata); + } + + public String getBlockName(ItemStack par1ItemStack) + { + return getLocalizedName(); + } + + public void getBlockTooltip(ItemStack par1ItemStack, List par3List) {} + + public int getPlacedMeta(ItemStack item, World world, int x, int y, int z, ForgeDirection clickedBlock) + { + int damage = TileEntityMetadata.getItemDamage(item); + return damage; + } + + public int getDroppedMeta(int tileMeta, int blockMeta) + { + return tileMeta; + } + + public static ArrayList getBlockDropped(IBlockMetadata block, World world, int x, int y, int z, int blockMeta) + { + ArrayList array = new ArrayList(); + TileEntityMetadata tile = TileEntityMetadata.getTile(world, x, y, z); + if ((tile != null) && (!tile.hasDroppedBlock())) + { + int meta = block.getDroppedMeta(world.getBlockMetadata(x, y, z), tile.getTileMetadata()); + array.add(TileEntityMetadata.getItemStack((Block)block, meta)); + } + return array; + } + + static int temporyMeta = -1; + + public static boolean breakBlock(IBlockMetadata block, EntityPlayer player, World world, int i, int j, int k) + { + List drops = new ArrayList(); + + Block block2 = (Block)block; + + TileEntityMetadata tile = TileEntityMetadata.getTile(world, i, j, k); + if ((tile != null) && (!tile.hasDroppedBlock())) + { + int tileMeta = TileEntityMetadata.getTileMetadata(world, i, j, k); + drops = block2.getDrops(world, i, j, k, world.getBlockMetadata(i, j, k), 0); + } + boolean hasBeenBroken = world.setBlockToAir(i, j, k); + if ((hasBeenBroken) && (BinnieCore.proxy.isSimulating(world)) && (drops.size() > 0) && ((player == null) || (!player.capabilities.isCreativeMode))) + { + for (ItemStack drop : drops) { + block.dropAsStack(world, i, j, k, drop); + } + tile.dropBlock(); + } + return hasBeenBroken; + } + + public void dropAsStack(World world, int x, int y, int z, ItemStack drop) + { + dropBlockAsItem(world, x, y, z, drop); + } + + public void breakBlock(World par1World, int par2, int par3, int par4, Block par5, int par6) + { + super.breakBlock(par1World, par2, par3, par4, par5, par6); + par1World.removeTileEntity(par2, par3, par4); + } + + public static ItemStack getPickBlock(World world, int x, int y, int z) + { + List list = getBlockDropped((IBlockMetadata)world.getBlock(x, y, z), world, x, y, z, world.getBlockMetadata(x, y, z)); + return list.isEmpty() ? null : (ItemStack)list.get(0); + } + + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) + { + return getPickBlock(world, x, y, z); + } +} diff --git a/src/Java/binnie/core/block/IBlockMetadata.java b/src/Java/binnie/core/block/IBlockMetadata.java new file mode 100644 index 0000000000..b182139de7 --- /dev/null +++ b/src/Java/binnie/core/block/IBlockMetadata.java @@ -0,0 +1,21 @@ +package binnie.core.block; + +import java.util.List; +import net.minecraft.block.ITileEntityProvider; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public abstract interface IBlockMetadata + extends ITileEntityProvider +{ + public abstract int getPlacedMeta(ItemStack paramItemStack, World paramWorld, int paramInt1, int paramInt2, int paramInt3, ForgeDirection paramForgeDirection); + + public abstract int getDroppedMeta(int paramInt1, int paramInt2); + + public abstract String getBlockName(ItemStack paramItemStack); + + public abstract void getBlockTooltip(ItemStack paramItemStack, List paramList); + + public abstract void dropAsStack(World paramWorld, int paramInt1, int paramInt2, int paramInt3, ItemStack paramItemStack); +} diff --git a/src/Java/binnie/core/block/IMultipassBlock.java b/src/Java/binnie/core/block/IMultipassBlock.java new file mode 100644 index 0000000000..fd578c0ee5 --- /dev/null +++ b/src/Java/binnie/core/block/IMultipassBlock.java @@ -0,0 +1,8 @@ +package binnie.core.block; + +public abstract interface IMultipassBlock +{ + public abstract int getNumberOfPasses(); + + public abstract int colorMultiplier(int paramInt); +} diff --git a/src/Java/binnie/core/block/ItemMetadata.java b/src/Java/binnie/core/block/ItemMetadata.java new file mode 100644 index 0000000000..a3cd5173a9 --- /dev/null +++ b/src/Java/binnie/core/block/ItemMetadata.java @@ -0,0 +1,67 @@ +package binnie.core.block; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import java.util.List; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class ItemMetadata + extends ItemBlock +{ + public ItemMetadata(Block block) + { + super(block); + } + + public int getMetadata(int par1) + { + return 0; + } + + public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int metadata) + { + Block block = this.field_150939_a; + if (!(block instanceof IBlockMetadata)) { + return false; + } + int placedMeta = ((IBlockMetadata)block).getPlacedMeta(stack, world, x, y, z, net.minecraftforge.common.util.ForgeDirection.values()[side]); + if (placedMeta < 0) { + return false; + } + if (!world.setBlock(x, y, z, block, metadata, 3)) { + return false; + } + if (world.getBlock(x, y, z) == block) + { + TileEntityMetadata tile = TileEntityMetadata.getTile(world, x, y, z); + if (tile != null) { + tile.setTileMetadata(placedMeta, false); + } + block.onBlockPlacedBy(world, x, y, z, player, stack); + block.onPostBlockPlaced(world, x, y, z, metadata); + } + return true; + } + + @SideOnly(Side.CLIENT) + public String getItemStackDisplayName(ItemStack par1ItemStack) + { + return ((IBlockMetadata)this.field_150939_a).getBlockName(par1ItemStack); + } + + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) + { + ((IBlockMetadata)this.field_150939_a).getBlockTooltip(par1ItemStack, par3List); + } + + public IIcon getIconFromDamage(int par1) + { + return this.field_150939_a.getIcon(1, par1); + } +} diff --git a/src/Java/binnie/core/block/ItemMetadataRenderer.java b/src/Java/binnie/core/block/ItemMetadataRenderer.java new file mode 100644 index 0000000000..e96dd068c1 --- /dev/null +++ b/src/Java/binnie/core/block/ItemMetadataRenderer.java @@ -0,0 +1,64 @@ +package binnie.core.block; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import org.lwjgl.opengl.GL11; + +public class ItemMetadataRenderer + implements IItemRenderer +{ + public boolean handleRenderType(ItemStack item, IItemRenderer.ItemRenderType type) + { + return (type == IItemRenderer.ItemRenderType.INVENTORY) || (type == IItemRenderer.ItemRenderType.ENTITY) || (type == IItemRenderer.ItemRenderType.EQUIPPED) || (type == IItemRenderer.ItemRenderType.EQUIPPED_FIRST_PERSON); + } + + public boolean shouldUseRenderHelper(IItemRenderer.ItemRenderType type, ItemStack item, IItemRenderer.ItemRendererHelper helper) + { + if (type == IItemRenderer.ItemRenderType.INVENTORY) { + return helper == IItemRenderer.ItemRendererHelper.INVENTORY_BLOCK; + } + if (type == IItemRenderer.ItemRenderType.ENTITY) { + return (helper == IItemRenderer.ItemRendererHelper.ENTITY_BOBBING) || (helper == IItemRenderer.ItemRendererHelper.ENTITY_ROTATION); + } + if ((type == IItemRenderer.ItemRenderType.EQUIPPED) || (type == IItemRenderer.ItemRenderType.EQUIPPED_FIRST_PERSON)) { + return helper == IItemRenderer.ItemRendererHelper.EQUIPPED_BLOCK; + } + return false; + } + + public void renderItem(IItemRenderer.ItemRenderType type, ItemStack item, Object... data) + { + GL11.glPushMatrix(); + + + + + + + + + + + Block block = Block.getBlockFromItem(item.getItem()); + if (type == IItemRenderer.ItemRenderType.EQUIPPED_FIRST_PERSON) { + GL11.glTranslated(0.5D, 0.5D, 0.5D); + } + if ((type == IItemRenderer.ItemRenderType.INVENTORY) && + (block.getRenderBlockPass() != 0)) + { + GL11.glAlphaFunc(516, 0.1F); + GL11.glEnable(3042); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + } + GL11.glPushMatrix(); + ((RenderBlocks)data[0]).renderBlockAsItem(block, TileEntityMetadata.getItemDamage(item), 1.0F); + + GL11.glPopMatrix(); + GL11.glPopMatrix(); + } +} diff --git a/src/Java/binnie/core/block/MultipassBlockRenderer.java b/src/Java/binnie/core/block/MultipassBlockRenderer.java new file mode 100644 index 0000000000..cc809fb8e5 --- /dev/null +++ b/src/Java/binnie/core/block/MultipassBlockRenderer.java @@ -0,0 +1,106 @@ +package binnie.core.block; + +import binnie.core.BinnieCore; +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import org.lwjgl.opengl.GL11; + +public class MultipassBlockRenderer + implements ISimpleBlockRenderingHandler +{ + public static MultipassBlockRenderer instance; + + public MultipassBlockRenderer() + { + instance = this; + } + + private void setColour(Tessellator tess, int colour) + { + float var6 = (colour >> 16 & 0xFF) / 255.0F; + float var7 = (colour >> 8 & 0xFF) / 255.0F; + float var8 = (colour & 0xFF) / 255.0F; + GL11.glColor3f(var6, var7, var8); + } + + private static int layer = 0; + + public static int getLayer() + { + return layer; + } + + public void renderInventoryBlock(Block block, int meta, int modelID, RenderBlocks renderer) + { + block.setBlockBoundsForItemRender(); + renderer.setRenderBoundsFromBlock(block); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + for (layer = 0; layer < ((IMultipassBlock)block).getNumberOfPasses(); layer += 1) { + renderItem(block, renderer, meta); + } + layer = 0; + } + + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) + { + boolean r = true; + for (layer = 0; layer < ((IMultipassBlock)block).getNumberOfPasses(); layer += 1) { + r = renderer.renderStandardBlock(block, x, y, z); + } + layer = 0; + return r; + } + + public boolean shouldRender3DInInventory(int i) + { + return true; + } + + public int getRenderId() + { + return BinnieCore.multipassRenderID; + } + + public void renderItem(Block block, RenderBlocks renderer, int meta) + { + setColor(((IMultipassBlock)block).colorMultiplier(meta)); + + Tessellator tessellator = Tessellator.instance; + + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, meta)); + tessellator.draw(); + } + + public void setColor(int l) + { + float f = (l >> 16 & 0xFF) / 255.0F; + float f1 = (l >> 8 & 0xFF) / 255.0F; + float f2 = (l & 0xFF) / 255.0F; + GL11.glColor3f(f, f1, f2); + } +} diff --git a/src/Java/binnie/core/block/MultipassItemRenderer.java b/src/Java/binnie/core/block/MultipassItemRenderer.java new file mode 100644 index 0000000000..6e53642b2f --- /dev/null +++ b/src/Java/binnie/core/block/MultipassItemRenderer.java @@ -0,0 +1,78 @@ +package binnie.core.block; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import org.lwjgl.opengl.GL11; + +public class MultipassItemRenderer + implements IItemRenderer +{ + private void render(RenderBlocks renderer, ItemStack item, float f, float g, float h) + { + GL11.glTranslatef(f, g, h); + + Block block = ((ItemBlock)item.getItem()).field_150939_a; + + GL11.glEnable(3008); + if (block.getRenderBlockPass() != 0) + { + GL11.glAlphaFunc(516, 0.1F); + GL11.glEnable(3042); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + } + else + { + GL11.glAlphaFunc(516, 0.5F); + GL11.glDisable(3042); + } + MultipassBlockRenderer.instance.renderInventoryBlock(block, TileEntityMetadata.getItemDamage(item), 0, renderer); + if (block.getRenderBlockPass() == 0) { + GL11.glAlphaFunc(516, 0.1F); + } + GL11.glTranslatef(-f, -g, -h); + } + + public boolean handleRenderType(ItemStack item, IItemRenderer.ItemRenderType type) + { + switch (1.$SwitchMap$net$minecraftforge$client$IItemRenderer$ItemRenderType[type.ordinal()]) + { + case 1: + return true; + case 2: + return true; + case 3: + return true; + case 4: + return true; + } + return false; + } + + public boolean shouldUseRenderHelper(IItemRenderer.ItemRenderType type, ItemStack item, IItemRenderer.ItemRendererHelper helper) + { + return true; + } + + public void renderItem(IItemRenderer.ItemRenderType type, ItemStack item, Object... data) + { + switch (1.$SwitchMap$net$minecraftforge$client$IItemRenderer$ItemRenderType[type.ordinal()]) + { + case 1: + render((RenderBlocks)data[0], item, 0.0F, 0.0F, 0.0F); + break; + case 2: + case 4: + render((RenderBlocks)data[0], item, 0.5F, 0.5F, 0.5F); + break; + case 3: + render((RenderBlocks)data[0], item, 0.0F, 0.0F, 0.0F); + break; + } + } +} diff --git a/src/Java/binnie/core/block/TileEntityMetadata.java b/src/Java/binnie/core/block/TileEntityMetadata.java new file mode 100644 index 0000000000..28563e66e7 --- /dev/null +++ b/src/Java/binnie/core/block/TileEntityMetadata.java @@ -0,0 +1,116 @@ +package binnie.core.block; + +import binnie.core.BinnieCore; +import binnie.core.network.packet.MessageMetadata; +import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.Packet; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class TileEntityMetadata + extends TileEntity +{ + private int meta; + + public boolean receiveClientEvent(int par1, int par2) + { + if (par1 == 42) + { + this.meta = par2; + this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + } + return true; + } + + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + this.meta = nbt.getInteger("meta"); + } + + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("meta", this.meta); + } + + public boolean canUpdate() + { + return false; + } + + public int getTileMetadata() + { + return this.meta; + } + + public void setTileMetadata(int meta, boolean notify) + { + if (this.meta != meta) + { + this.meta = meta; + if (notify) { + this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + } + } + } + + public Packet getDescriptionPacket() + { + return BinnieCore.instance.getNetworkWrapper().getPacketFrom(new MessageMetadata(this.xCoord, this.yCoord, this.zCoord, this.meta).GetMessage()); + } + + public static TileEntityMetadata getTile(IBlockAccess world, int x, int y, int z) + { + TileEntity tile = world.getTileEntity(x, y, z); + if (!(tile instanceof TileEntityMetadata)) { + return null; + } + return (TileEntityMetadata)tile; + } + + public static ItemStack getItemStack(Block block, int damage) + { + ItemStack item = new ItemStack(block, 1, 0); + setItemDamage(item, damage); + return item; + } + + public static void setItemDamage(ItemStack item, int i) + { + item.setItemDamage(i < 16387 ? i : 16387); + NBTTagCompound tag = new NBTTagCompound(); + tag.setInteger("meta", i); + item.setTagCompound(tag); + } + + public static int getItemDamage(ItemStack item) + { + if ((item.hasTagCompound()) && (item.getTagCompound().hasKey("meta"))) { + return item.getTagCompound().getInteger("meta"); + } + return item.getItemDamage(); + } + + public static int getTileMetadata(IBlockAccess world, int x, int y, int z) + { + TileEntityMetadata tile = getTile(world, x, y, z); + return tile == null ? 0 : tile.getTileMetadata(); + } + + private boolean droppedBlock = false; + + public boolean hasDroppedBlock() + { + return this.droppedBlock; + } + + public void dropBlock() + { + this.droppedBlock = true; + } +} diff --git a/src/Java/binnie/core/circuits/BinnieCircuit.java b/src/Java/binnie/core/circuits/BinnieCircuit.java new file mode 100644 index 0000000000..e7e2db0203 --- /dev/null +++ b/src/Java/binnie/core/circuits/BinnieCircuit.java @@ -0,0 +1,80 @@ +package binnie.core.circuits; + +import forestry.api.circuits.ChipsetManager; +import forestry.api.circuits.ICircuit; +import forestry.api.circuits.ICircuitLayout; +import forestry.api.circuits.ICircuitRegistry; +import forestry.api.circuits.ISolderManager; +import java.util.ArrayList; +import java.util.List; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; + +public class BinnieCircuit + implements ICircuit +{ + private String uid; + private int limit; + private List tooltips = new ArrayList(); + + public BinnieCircuit(String uid, int limit, ICircuitLayout layout, ItemStack itemStack) + { + this.uid = ("binnie.circuit." + uid); + this.limit = limit; + ChipsetManager.circuitRegistry.registerCircuit(this); + if (itemStack != null) { + ChipsetManager.solderManager.addRecipe(layout, itemStack, this); + } + } + + public BinnieCircuit(String uid, int limit, ICircuitLayout layout, Item item, int itemMeta) + { + this(uid, limit, layout, new ItemStack(item, 1, itemMeta)); + } + + public void addTooltipString(String string) + { + this.tooltips.add(string); + } + + public String getUID() + { + return this.uid; + } + + public boolean requiresDiscovery() + { + return false; + } + + public int getLimit() + { + return this.limit; + } + + public String getName() + { + return this.uid; + } + + public boolean isCircuitable(TileEntity tile) + { + return false; + } + + public void onInsertion(int slot, TileEntity tile) {} + + public void onLoad(int slot, TileEntity tile) {} + + public void onRemoval(int slot, TileEntity tile) {} + + public void onTick(int slot, TileEntity tile) {} + + public void addTooltip(List list) + { + for (String string : this.tooltips) { + list.add(" - " + string); + } + } +} diff --git a/src/Java/binnie/core/circuits/BinnieCircuitLayout.java b/src/Java/binnie/core/circuits/BinnieCircuitLayout.java new file mode 100644 index 0000000000..0f160054ce --- /dev/null +++ b/src/Java/binnie/core/circuits/BinnieCircuitLayout.java @@ -0,0 +1,37 @@ +package binnie.core.circuits; + +import binnie.Binnie; +import binnie.core.AbstractMod; +import binnie.core.language.ManagerLanguage; +import forestry.api.circuits.ChipsetManager; +import forestry.api.circuits.ICircuitLayout; +import forestry.api.circuits.ICircuitRegistry; + +public class BinnieCircuitLayout + implements ICircuitLayout +{ + private String uid; + private AbstractMod mod; + + public BinnieCircuitLayout(AbstractMod mod, String uid) + { + this.uid = uid; + this.mod = mod; + ChipsetManager.circuitRegistry.registerLayout(this); + } + + public String getUID() + { + return "binnie.circuitLayout" + this.uid; + } + + public String getName() + { + return Binnie.Language.localise(this.mod, "circuit.layout." + this.uid.toLowerCase()); + } + + public String getUsage() + { + return Binnie.Language.localise(this.mod, "circuit.layout." + this.uid.toLowerCase() + ".usage"); + } +} diff --git a/src/Java/binnie/core/genetics/BeeBreedingSystem.java b/src/Java/binnie/core/genetics/BeeBreedingSystem.java new file mode 100644 index 0000000000..2c3947b5a0 --- /dev/null +++ b/src/Java/binnie/core/genetics/BeeBreedingSystem.java @@ -0,0 +1,125 @@ +package binnie.core.genetics; + +import binnie.Binnie; +import binnie.core.BinnieCore; +import binnie.core.language.ManagerLanguage; +import binnie.core.resource.ManagerResource; +import binnie.extrabees.ExtraBees; +import forestry.api.apiculture.EnumBeeChromosome; +import forestry.api.apiculture.EnumBeeType; +import forestry.api.apiculture.IApiaristTracker; +import forestry.api.apiculture.IBeeMutation; +import forestry.api.apiculture.IBeeRoot; +import forestry.api.genetics.IAllele; +import forestry.api.genetics.IBreedingTracker; +import forestry.api.genetics.IChromosomeType; +import forestry.api.genetics.IMutation; +import forestry.api.genetics.ISpeciesRoot; +import java.util.TreeSet; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +class BeeBreedingSystem + extends BreedingSystem +{ + public BeeBreedingSystem() + { + this.iconUndiscovered = Binnie.Resource.getItemIcon(ExtraBees.instance, "icon/undiscoveredBee"); + this.iconDiscovered = Binnie.Resource.getItemIcon(ExtraBees.instance, "icon/discoveredBee"); + } + + public float getChance(IMutation mutation, EntityPlayer player, IAllele species1, IAllele species2) + { + return ((IBeeMutation)mutation).getChance(new VirtualBeeHousing(player), species1, species2, getSpeciesRoot().templateAsGenome(getSpeciesRoot().getTemplate(species1.getUID())), getSpeciesRoot().templateAsGenome(getSpeciesRoot().getTemplate(species2.getUID()))); + } + + public ISpeciesRoot getSpeciesRoot() + { + return Binnie.Genetics.getBeeRoot(); + } + + public int getColour() + { + return 16767232; + } + + public Class getTrackerClass() + { + return IApiaristTracker.class; + } + + public String getAlleleName(IChromosomeType chromosome, IAllele allele) + { + if (chromosome == EnumBeeChromosome.FERTILITY) + { + if (allele.getUID().contains("Low")) { + return Binnie.Language.localise(BinnieCore.instance, "allele.fertility.low"); + } + if (