diff options
Diffstat (limited to 'src/Java/miscutil/core')
20 files changed, 1792 insertions, 0 deletions
diff --git a/src/Java/miscutil/core/handler/COMPAT_IntermodStaging.java b/src/Java/miscutil/core/handler/COMPAT_IntermodStaging.java index 668487c5b7..a1e12cea8b 100644 --- a/src/Java/miscutil/core/handler/COMPAT_IntermodStaging.java +++ b/src/Java/miscutil/core/handler/COMPAT_IntermodStaging.java @@ -1,5 +1,6 @@ package miscutil.core.handler; +import miscutil.core.intermod.forestry.HANDLER_Forestry; import miscutil.core.intermod.growthcraft.HANDLER_Growthcraft; import miscutil.core.intermod.thermalfoundation.HANDLER_ThermalFoundation; import miscutil.gregtech.HANDLER_Gregtech; @@ -10,17 +11,20 @@ public class COMPAT_IntermodStaging { HANDLER_Growthcraft.preInit(); HANDLER_ThermalFoundation.preInit(); HANDLER_Gregtech.preInit(); + HANDLER_Forestry.preInit(); } public static void init(){ HANDLER_ThermalFoundation.Init(); HANDLER_Gregtech.init(); + HANDLER_Forestry.Init(); } public static void postInit(){ HANDLER_ThermalFoundation.postInit(); HANDLER_Gregtech.postInit(); + HANDLER_Forestry.postInit(); } diff --git a/src/Java/miscutil/core/intermod/forestry/HANDLER_Forestry.java b/src/Java/miscutil/core/intermod/forestry/HANDLER_Forestry.java new file mode 100644 index 0000000000..f670477318 --- /dev/null +++ b/src/Java/miscutil/core/intermod/forestry/HANDLER_Forestry.java @@ -0,0 +1,25 @@ +package miscutil.core.intermod.forestry; + +import miscutil.core.intermod.forestry.apiculture.items.FR_ItemRegistryApiculture; +import miscutil.core.lib.LoadedMods; + +public class HANDLER_Forestry { + + public static void preInit(){ + if (LoadedMods.Forestry){ + FR_ItemRegistryApiculture.RegisterApiculture(); + } + } + + public static void Init(){ + if (LoadedMods.Forestry){ + + } + } + + public static void postInit(){ + if (LoadedMods.Forestry){ + + } + } +} diff --git a/src/Java/miscutil/core/intermod/forestry/apiculture/blocks/FR_BlockAlveary.java b/src/Java/miscutil/core/intermod/forestry/apiculture/blocks/FR_BlockAlveary.java new file mode 100644 index 0000000000..24f34e3829 --- /dev/null +++ b/src/Java/miscutil/core/intermod/forestry/apiculture/blocks/FR_BlockAlveary.java @@ -0,0 +1,240 @@ +/******************************************************************************* + * Copyright (c) 2011-2014 SirSengir. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser Public License v3 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-3.0.txt + * + * Various Contributors including, but not limited to: + * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges + ******************************************************************************/ +package miscutil.core.intermod.forestry.apiculture.blocks; + +import java.util.ArrayList; +import java.util.List; + +import miscutil.core.creative.AddToCreativeTab; +import miscutil.core.intermod.forestry.apiculture.multiblock.TileAlvearyMutatron; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import forestry.apiculture.MaterialBeehive; +import forestry.apiculture.multiblock.TileAlveary; +import forestry.apiculture.multiblock.TileAlvearyPlain; +import forestry.core.blocks.BlockStructure; +import forestry.core.render.TextureManager; + +public class FR_BlockAlveary extends BlockStructure { + public enum Type { + PLAIN, + MUTATRON; + public static final Type[] VALUES = values(); + } + + public FR_BlockAlveary() { + super(new MaterialBeehive(false)); + setHardness(1.0f); + setCreativeTab(AddToCreativeTab.tabMisc); + setHarvestLevel("axe", 0); + } + + @SuppressWarnings({"rawtypes", "unchecked"}) + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for (int i = 0; i < 8; i++) { + if (i == 1) { + continue; + } + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public int getRenderType() { + return 0; + } + + @Override + public boolean renderAsNormalBlock() { + return true; + } + + @Override + public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) { + ArrayList<ItemStack> drop = new ArrayList<>(); + drop.add(new ItemStack(this, 1, metadata != 1 ? metadata : 0)); + return drop; + } + + @Override + public int getDamageValue(World world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + return meta != 1 ? meta : 0; + } + + /* TILE ENTITY CREATION */ + @Override + public TileEntity createTileEntity(World world, int metadata) { + if (metadata < 0 || metadata > Type.VALUES.length) { + return null; + } + + Type type = Type.VALUES[metadata]; + switch (type) { + case MUTATRON: + return new TileAlvearyMutatron(); + case PLAIN: + default: + return new TileAlvearyPlain(); + } + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return createTileEntity(world, meta); + } + + /* ICONS */ + public static final int PLAIN = 0; + public static final int ENTRANCE = 1; + public static final int BOTTOM = 2; + public static final int LEFT = 3; + public static final int RIGHT = 4; + public static final int MUTATRON_OFF = 5; + public static final int MUTATRON_ON = 6; + + @SideOnly(Side.CLIENT) + private IIcon[] icons; + + @SideOnly(Side.CLIENT) + @Override + public void registerBlockIcons(IIconRegister register) { + icons = new IIcon[14]; + icons[0] = TextureManager.registerTex(register, "apiculture/alveary.plain"); + icons[1] = TextureManager.registerTex(register, "apiculture/alveary.entrance"); + icons[2] = TextureManager.registerTex(register, "apiculture/alveary.bottom"); + icons[3] = TextureManager.registerTex(register, "apiculture/alveary.left"); + icons[4] = TextureManager.registerTex(register, "apiculture/alveary.right"); + icons[5] = TextureManager.registerTex(register, "apiculture/alveary.mutatron.off"); + icons[6] = TextureManager.registerTex(register, "apiculture/alveary.mutatron.on"); + } + + @SideOnly(Side.CLIENT) + @Override + public IIcon getIcon(int side, int metadata) { + if ((metadata <= 1 || metadata == Type.MUTATRON.ordinal()) + && (side == 1 || side == 0)) { + return icons[BOTTOM]; + } + + Type type = Type.VALUES[metadata]; + + switch (type) { + case PLAIN: + return icons[PLAIN]; + case MUTATRON: + return icons[MUTATRON_OFF]; + default: + return null; + } + + } + + @SideOnly(Side.CLIENT) + @Override + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + int meta = world.getBlockMetadata(x, y, z); + + if (meta == 1) { + return this.getIcon(side, meta); + } else if (meta > 1) { + return getBlockTextureFromSideAndTile(world, x, y, z, side); + } + + Block blockXP = world.getBlock(x + 1, y, z); + Block blockXM = world.getBlock(x - 1, y, z); + + if (blockXP == this && blockXM != this) { + + if (world.getBlockMetadata(x + 1, y, z) == 1) { + + if (world.getBlock(x, y, z + 1) != this) { + return switchForSide(42, side); + } else { + return switchForSide(41, side); + } + + } else { + return this.getIcon(side, meta); + } + + } else if (blockXP != this && blockXM == this) { + if (world.getBlockMetadata(x - 1, y, z) == 1) { + + if (world.getBlock(x, y, z + 1) != this) { + return switchForSide(41, side); + } else { + return switchForSide(42, side); + } + + } else { + return this.getIcon(side, meta); + } + } + + return this.getIcon(side, meta); + } + + @SideOnly(Side.CLIENT) + private IIcon getBlockTextureFromSideAndTile(IBlockAccess world, int x, int y, int z, int side) { + TileEntity tile = world.getTileEntity(x, y, z); + if (!(tile instanceof TileAlveary)) { + return getIcon(side, 0); + } + + return icons[((TileAlveary) tile).getIcon(side)]; + } + + @SideOnly(Side.CLIENT) + private IIcon switchForSide(int textureId, int side) { + + if (side == 4 || side == 5) { + if (textureId == 41) { + return icons[LEFT]; + } else { + return icons[RIGHT]; + } + } else if (textureId == 41) { + return icons[RIGHT]; + } else { + return icons[LEFT]; + } + + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + super.onNeighborBlockChange(world, x, y, z, block); + + TileEntity tileEntity = world.getTileEntity(x, y, z); + if (tileEntity instanceof TileAlveary) { + TileAlveary tileAlveary = (TileAlveary) tileEntity; + + // We must check that the slabs on top were not removed + tileAlveary.getMultiblockLogic().getController().reassemble(); + } + } + + public ItemStack get(Type type) { + return new ItemStack(this, 1, type.ordinal()); + } +} diff --git a/src/Java/miscutil/core/intermod/forestry/apiculture/items/FR_ItemHiveFrame.java b/src/Java/miscutil/core/intermod/forestry/apiculture/items/FR_ItemHiveFrame.java new file mode 100644 index 0000000000..de8de491af --- /dev/null +++ b/src/Java/miscutil/core/intermod/forestry/apiculture/items/FR_ItemHiveFrame.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * Copyright (c) 2011-2014 SirSengir. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser Public License v3 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-3.0.txt + * + * Various Contributors including, but not limited to: + * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges + ******************************************************************************/ +package miscutil.core.intermod.forestry.apiculture.items; + +import miscutil.core.creative.AddToCreativeTab; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import forestry.api.apiculture.DefaultBeeModifier; +import forestry.api.apiculture.IBee; +import forestry.api.apiculture.IBeeGenome; +import forestry.api.apiculture.IBeeHousing; +import forestry.api.apiculture.IBeeModifier; +import forestry.api.apiculture.IHiveFrame; + +public class FR_ItemHiveFrame extends Item implements IHiveFrame { + + private final IBeeModifier beeModifier; + + public FR_ItemHiveFrame(int maxDamage, float geneticDecay) { + setMaxStackSize(1); + setMaxDamage(maxDamage); + setCreativeTab(AddToCreativeTab.tabMisc); + + this.beeModifier = new HiveFrameBeeModifier(geneticDecay); + } + + @Override + public ItemStack frameUsed(IBeeHousing housing, ItemStack frame, IBee queen, int wear) { + frame.setItemDamage(frame.getItemDamage() + wear); + if (frame.getItemDamage() >= frame.getMaxDamage()) { + return null; + } else { + return frame; + } + } + + @Override + public IBeeModifier getBeeModifier() { + return beeModifier; + } + + private static class HiveFrameBeeModifier extends DefaultBeeModifier { + private final float geneticDecay; + + public HiveFrameBeeModifier(float geneticDecay) { + this.geneticDecay = geneticDecay; + } + + @Override + public float getProductionModifier(IBeeGenome genome, float currentModifier) { + return (currentModifier < 10f) ? 2f : 1f; + } + + @Override + public float getGeneticDecay(IBeeGenome genome, float currentModifier) { + return this.geneticDecay; + } + } +} diff --git a/src/Java/miscutil/core/intermod/forestry/apiculture/items/FR_ItemRegistryApiculture.java b/src/Java/miscutil/core/intermod/forestry/apiculture/items/FR_ItemRegistryApiculture.java new file mode 100644 index 0000000000..f648077f4e --- /dev/null +++ b/src/Java/miscutil/core/intermod/forestry/apiculture/items/FR_ItemRegistryApiculture.java @@ -0,0 +1,58 @@ +/******************************************************************************* + * Copyright (c) 2011-2014 SirSengir. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser Public License v3 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-3.0.txt + * + * Various Contributors including, but not limited to: + * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges + ******************************************************************************/ +package miscutil.core.intermod.forestry.apiculture.items; +import miscutil.core.intermod.forestry.apiculture.items.magicbees.MB_HiveFrameType; +import miscutil.core.intermod.forestry.apiculture.items.magicbees.MB_ItemMagicHiveFrame; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.WeightedRandomChestContent; +import net.minecraftforge.common.ChestGenHooks; +import cpw.mods.fml.common.registry.GameRegistry; +import forestry.core.items.ItemRegistry; +import forestry.core.utils.StringUtil; + +public class FR_ItemRegistryApiculture extends ItemRegistry { + + + //----- Apiary Frames ---------------------- + public static FR_ItemHiveFrame frameUntreated; + public static FR_ItemHiveFrame frameImpregnated; + public static FR_ItemHiveFrame frameProven; + //Magic Bee Frame Items + public static MB_ItemMagicHiveFrame hiveFrameMetabolic; + public static MB_ItemMagicHiveFrame hiveFrameOblivion; + + public static void RegisterApiculture() { + + //Forestry Frames + //frameUntreated = registerItem(new FR_ItemHiveFrame(80, 0.9f), "frameUntreated"); + //frameImpregnated = registerItem(new FR_ItemHiveFrame(240, 0.4f), "frameImpregnated"); + //frameProven = registerItem(new FR_ItemHiveFrame(720, 0.3f), "frameProven"); + + //Magic Bee like Frames + hiveFrameMetabolic = new MB_ItemMagicHiveFrame(MB_HiveFrameType.ACCELERATED); + hiveFrameOblivion = new MB_ItemMagicHiveFrame(MB_HiveFrameType.VOID); + ChestGenHooks.addItem(ChestGenHooks.STRONGHOLD_CORRIDOR, new WeightedRandomChestContent(new ItemStack(hiveFrameOblivion), 1, 1, 18)); + ChestGenHooks.addItem(ChestGenHooks.STRONGHOLD_LIBRARY, new WeightedRandomChestContent(new ItemStack(hiveFrameOblivion), 1, 3, 23)); + + + + + } + + protected static <T extends Item> T registerItem(T item, String name) { + item.setUnlocalizedName(name); + GameRegistry.registerItem(item, StringUtil.cleanItemName(item)); + return item; + } +} + + diff --git a/src/Java/miscutil/core/intermod/forestry/apiculture/items/magicbees/FR_StringManager.java b/src/Java/miscutil/core/intermod/forestry/apiculture/items/magicbees/FR_StringManager.java new file mode 100644 index 0000000000..991b961ba9 --- /dev/null +++ b/src/Java/miscutil/core/intermod/forestry/apiculture/items/magicbees/FR_StringManager.java @@ -0,0 +1,30 @@ +package miscutil.core.intermod.forestry.apiculture.items.magicbees; + +import net.minecraft.util.StatCollector; + +public class FR_StringManager +{ + public static String getLocalizedString(String key) + { + if(StatCollector.canTranslate(key)) + { + return StatCollector.translateToLocal(key); + } + else + { + return StatCollector.translateToFallback(key); + } + } + + public static String getLocalizedString(String key, Object... objects) + { + if(StatCollector.canTranslate(key)) + { + return String.format(StatCollector.translateToLocal(key), objects); + } + else + { + return String.format(StatCollector.translateToFallback(key), objects); + } + } +} diff --git a/src/Java/miscutil/core/intermod/forestry/apiculture/items/magicbees/MB_HiveFrameType.java b/src/Java/miscutil/core/intermod/forestry/apiculture/items/magicbees/MB_HiveFrameType.java new file mode 100644 index 0000000000..a168c8157b --- /dev/null +++ b/src/Java/miscutil/core/intermod/forestry/apiculture/items/magicbees/MB_HiveFrameType.java @@ -0,0 +1,107 @@ +package miscutil.core.intermod.forestry.apiculture.items.magicbees; + +import forestry.api.apiculture.IBeeGenome; +import forestry.api.apiculture.IBeeModifier; + +public enum MB_HiveFrameType implements IBeeModifier +{ + ACCELERATED("Accelerated", 175, 1f, 2.5f, 0.9f, 1.8f, 1f), + VOID("Void", 20, 1f, 1f, 0.0001f, 10f, 1f); + + private final String frameName; + public final int maxDamage; + + private final float territoryMod; + private final float mutationMod; + private final float lifespanMod; + private final float productionMod; + private final float floweringMod; + private final float geneticDecayMod; + private final boolean isSealed; + private final boolean isLit; + private final boolean isSunlit; + private final boolean isHellish; + + MB_HiveFrameType(String name, int damage, float territory, float mutation, float lifespan, float production, float geneticDecay) { + this(name, damage, territory, mutation, lifespan, production, 1f, geneticDecay, false, false, false, false); + } + + MB_HiveFrameType(String name, int damage, + float territory, float mutation, float lifespan, float production, float flowering, float geneticDecay, + boolean sealed, boolean lit, boolean sunlit, boolean hellish) + { + this.frameName = name; + this.maxDamage = damage; + + this.territoryMod = territory; + this.mutationMod = mutation; + this.lifespanMod = lifespan; + this.productionMod = production; + this.floweringMod = flowering; + this.geneticDecayMod = geneticDecay; + this.isSealed = sealed; + this.isLit = lit; + this.isSunlit = sunlit; + this.isHellish = hellish; + } + + public String getName() + { + return this.frameName; + } + + public String getLocalizedName() + { + return FR_StringManager.getLocalizedString("frame." + this.frameName); + } + + @Override + public float getTerritoryModifier(IBeeGenome genome, float currentModifier) { + return territoryMod; + } + + @Override + public float getMutationModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier) { + return mutationMod; + } + + @Override + public float getLifespanModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier) { + return lifespanMod; + } + + @Override + public float getProductionModifier(IBeeGenome genome, float currentModifier) { + return productionMod; + } + + @Override + public float getFloweringModifier(IBeeGenome genome, float currentModifier) { + return floweringMod; + } + + @Override + public float getGeneticDecay(IBeeGenome genome, float currentModifier) { + return geneticDecayMod; + } + + @Override + public boolean isSealed() { + return isSealed; + } + + @Override + public boolean isSelfLighted() { + return isLit; + } + + @Override + public boolean isSunlightSimulated() { + return isSunlit; + } + + @Override + public boolean isHellish() { + return isHellish; + } +} diff --git a/src/Java/miscutil/core/intermod/forestry/apiculture/items/magicbees/MB_ItemMagicHiveFrame.java b/src/Java/miscutil/core/intermod/forestry/apiculture/items/magicbees/MB_ItemMagicHiveFrame.java new file mode 100644 index 0000000000..14234e7aae --- /dev/null +++ b/src/Java/miscutil/core/intermod/forestry/apiculture/items/magicbees/MB_ItemMagicHiveFrame.java @@ -0,0 +1,62 @@ +package miscutil.core.intermod.forestry.apiculture.items.magicbees; + +import miscutil.core.creative.AddToCreativeTab; +import miscutil.core.lib.CORE; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import forestry.api.apiculture.IBee; +import forestry.api.apiculture.IBeeHousing; +import forestry.api.apiculture.IBeeModifier; +import forestry.api.apiculture.IHiveFrame; + +public class MB_ItemMagicHiveFrame extends Item implements IHiveFrame +{ + private MB_HiveFrameType type; + + public MB_ItemMagicHiveFrame(MB_HiveFrameType frameType) + { + super(); + this.type = frameType; + this.setMaxDamage(this.type.maxDamage); + this.setMaxStackSize(1); + this.setCreativeTab(AddToCreativeTab.tabMisc); + this.setUnlocalizedName("frame" + frameType.getName()); + GameRegistry.registerItem(this, "frame" + frameType.getName()); + } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister par1IconRegister) + { + this.itemIcon = par1IconRegister.registerIcon(CORE.MODID + ":frame" + type.getName()); + } + + // --------- IHiveFrame functions ----------------------------------------- + + @Override + public ItemStack frameUsed(IBeeHousing housing, ItemStack frame, IBee queen, int wear) { + frame.setItemDamage(frame.getItemDamage() + wear); + + if (frame.getItemDamage() >= frame.getMaxDamage()) { + // Break the frame. + frame = null; + } + + return frame; + } + + @Override + public IBeeModifier getBeeModifier() { + return type; + } + + @Override + public boolean isBookEnchantable(ItemStack itemstack1, ItemStack itemstack2) + { + return false; + } + +} diff --git a/src/Java/miscutil/core/intermod/forestry/apiculture/multiblock/FR_TileAlveary.java b/src/Java/miscutil/core/intermod/forestry/apiculture/multiblock/FR_TileAlveary.java new file mode 100644 index 0000000000..29c4a7f445 --- /dev/null +++ b/src/Java/miscutil/core/intermod/forestry/apiculture/multiblock/FR_TileAlveary.java @@ -0,0 +1,199 @@ +/******************************************************************************* + * Copyright (c) 2011-2014 SirSengir. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser Public License v3 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-3.0.txt + * + * Various Contributors including, but not limited to: + * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges + ******************************************************************************/ +package miscutil.core.intermod.forestry.apiculture.multiblock; + +import java.io.IOException; +import java.util.List; + +import miscutil.core.intermod.forestry.apiculture.blocks.FR_BlockAlveary; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.Vec3; +import net.minecraft.world.biome.BiomeGenBase; +import forestry.api.apiculture.IBeeHousing; +import forestry.api.apiculture.IBeeHousingInventory; +import forestry.api.apiculture.IBeeListener; +import forestry.api.apiculture.IBeeModifier; +import forestry.api.apiculture.IBeekeepingLogic; +import forestry.api.core.EnumHumidity; +import forestry.api.core.EnumTemperature; +import forestry.api.core.IErrorLogic; +import forestry.api.multiblock.IAlvearyComponent; +import forestry.api.multiblock.IMultiblockController; +import forestry.apiculture.multiblock.MultiblockLogicAlveary; +import forestry.core.access.EnumAccess; +import forestry.core.access.IAccessHandler; +import forestry.core.access.IRestrictedAccess; +import forestry.core.config.Config; +import forestry.core.gui.IHintSource; +import forestry.core.inventory.IInventoryAdapter; +import forestry.core.multiblock.MultiblockTileEntityForestry; +import forestry.core.network.DataInputStreamForestry; +import forestry.core.network.DataOutputStreamForestry; +import forestry.core.network.IStreamableGui; +import forestry.core.tiles.IClimatised; +import forestry.core.tiles.ITitled; + +public abstract class FR_TileAlveary extends MultiblockTileEntityForestry<MultiblockLogicAlveary> implements IBeeHousing, IAlvearyComponent, IRestrictedAccess, IStreamableGui, ITitled, IClimatised, IHintSource { + private final String unlocalizedTitle; + + protected FR_TileAlveary() { + this(FR_BlockAlveary.Type.PLAIN); + } + + protected FR_TileAlveary(FR_BlockAlveary.Type type) { + super(new MultiblockLogicAlveary()); + this.unlocalizedTitle = "tile.alveary." + type.ordinal() + ".name"; + } + + /* TEXTURES */ + public int getIcon(int side) { + return FR_BlockAlveary.PLAIN; + } + + @Override + public void onMachineAssembled(IMultiblockController multiblockController, ChunkCoordinates minCoord, ChunkCoordinates maxCoord) { + // Re-render this block on the client + if (worldObj.isRemote) { + this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType()); + markDirty(); + } + + @Override + public void onMachineBroken() { + // Re-render this block on the client + if (worldObj.isRemote) { + this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType()); + markDirty(); + } + + /* IHousing */ + @Override + public BiomeGenBase getBiome() { + return getMultiblockLogic().getController().getBiome(); + } + + /* IBeeHousing */ + @Override + public Iterable<IBeeModifier> getBeeModifiers() { + return getMultiblockLogic().getController().getBeeModifiers(); + } + + @Override + public Iterable<IBeeListener> getBeeListeners() { + return getMultiblockLogic().getController().getBeeListeners(); + } + + @Override + public IBeeHousingInventory getBeeInventory() { + return getMultiblockLogic().getController().getBeeInventory(); + } + + @Override + public IBeekeepingLogic getBeekeepingLogic() { + return getMultiblockLogic().getController().getBeekeepingLogic(); + } + + @Override + public Vec3 getBeeFXCoordinates() { + return getMultiblockLogic().getController().getBeeFXCoordinates(); + } + + /* IClimatised */ + @Override + public EnumTemperature getTemperature() { + return getMultiblockLogic().getController().getTemperature(); + } + + @Override + public EnumHumidity getHumidity() { + return getMultiblockLogic().getController().getHumidity(); + } + + @Override + public int getBlockLightValue() { + return getMultiblockLogic().getController().getBlockLightValue(); + } + + @Override + public boolean canBlockSeeTheSky() { + return getMultiblockLogic().getController().canBlockSeeTheSky(); + } + + @Override + public IErrorLogic getErrorLogic() { + return getMultiblockLogic().getController().getErrorLogic(); + } + + @Override + public IAccessHandler getAccessHandler() { + return getMultiblockLogic().getController().getAccessHandler(); + } + + @Override + public void onSwitchAccess(EnumAccess oldAccess, EnumAccess newAccess) { + getMultiblockLogic().getController().onSwitchAccess(oldAccess, newAccess); + } + + @Override + public IInventoryAdapter getInternalInventory() { + return getMultiblockLogic().getController().getInternalInventory(); + } + + @Override + public String getUnlocalizedTitle() { + return unlocalizedTitle; + } + + /* IHintSource */ + @Override + public List<String> getHints() { + return Config.hints.get("apiary"); + } + + /* IClimatised */ + @Override + public float getExactTemperature() { + return getMultiblockLogic().getController().getExactTemperature(); + } + + @Override + public float getExactHumidity() { + return getMultiblockLogic().getController().getExactHumidity(); + } + + /* IStreamableGui */ + @Override + public void writeGuiData(DataOutputStreamForestry data) throws IOException { + getMultiblockLogic().getController().writeGuiData(data); + } + + @Override + public void readGuiData(DataInputStreamForestry data) throws IOException { + getMultiblockLogic().getController().readGuiData(data); + } + + @Override + public Object getGui(EntityPlayer player, int data) { + //return new GuiAlveary(player.inventory, this); + return null; //TODO + } + + @Override + public Object getContainer(EntityPlayer player, int data) { + //return new ContainerAlveary(player.inventory, this); + return null; //TODO + } +} diff --git a/src/Java/miscutil/core/intermod/forestry/apiculture/multiblock/TileAlvearyMutatron.java b/src/Java/miscutil/core/intermod/forestry/apiculture/multiblock/TileAlvearyMutatron.java new file mode 100644 index 0000000000..c396acf325 --- /dev/null +++ b/src/Java/miscutil/core/intermod/forestry/apiculture/multiblock/TileAlvearyMutatron.java @@ -0,0 +1,232 @@ +/******************************************************************************* + * Copyright (c) 2011-2014 SirSengir. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser Public License v3 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-3.0.txt + * + * Various Contributors including, but not limited to: + * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges + ******************************************************************************/ +package miscutil.core.intermod.forestry.apiculture.multiblock; + +import java.util.Map.Entry; +import java.util.Stack; + +import miscutil.core.intermod.forestry.apiculture.blocks.FR_BlockAlveary; +import miscutil.core.intermod.forestry.apiculture.multiblock.inventory.FR_C |
