Compare commits

...
64 Commits
Author SHA1 Message Date
mezz f0099b728f Merge branch 'dev' into 4.2 2015-12-12 22:52:38 -08:00
mezz 1ceccddbd0 Fix sync issues with researched mutations, use smaller packets 2015-12-12 22:51:59 -08:00
mezz c875e8ed5d Merge branch 'dev' into 4.2 2015-12-12 18:10:38 -08:00
mezz f3ee4f8694 Bump version to 4.2.2 2015-12-12 18:09:51 -08:00
mezz c2437a8a13 Fix #1009 Minor fluid dupe on right-clicking nearly-full machine 2015-12-12 18:08:40 -08:00
mezz e2f32ab767 Sync mail to client on login, do not display mail indicator on logout 2015-12-12 17:45:12 -08:00
mezz d0c8c92863 Fix #1010 Automatically sync breeding trackers to client 2015-12-12 17:27:18 -08:00
Nirek-K a8c84cfcf9 Possibly fix IE plugin loading too early, add small RotaryCraft plugin. 2015-12-11 12:06:28 -06:00
mezz 8f8f6a05f7 Fix #1006 Farm Block Recipes broken 2015-12-09 14:43:58 -08:00
mezz 721c8fd0ad Make AlleleEffectFertile only tick IGrowable and IPlantable 2015-12-08 18:22:16 -08:00
mezz 01e43d8a18 #987 Use fluid names instead of IDs 2015-12-03 12:19:04 -08:00
mezz 4228ef73d7 Merge branch 'dev' into 4.2 2015-12-03 11:29:37 -08:00
mezz 6b9614bccd Fix #994 Peat-fired Engine no longer accepts Bituminous Peat 2015-12-03 10:07:51 -08:00
mezz 179311a390 Use 2 render passes for saplings (for addon saplings via tree api) 2015-12-03 10:02:08 -08:00
mezz d8bcab07ba Use 2 render passes for saplings (for addon saplings via tree api) 2015-12-03 10:01:27 -08:00
mezz 2368f05778 Merge branch 'dev' into 4.2 2015-12-03 10:00:08 -08:00
mezz 347e0a61e1 Fix #986 Forestry version of acacia sapling cannot be obtained 2015-11-26 20:15:12 -08:00
mezz 23792a84c1 Fix #983 farm block recipes are missing for most materials 2015-11-25 12:11:15 -08:00
mezz b4c0777f1c minor cleanup 2015-11-22 10:10:09 -08:00
mezz db5daf9e3d Tidy species code 2015-11-21 21:50:38 -08:00
mezz a574eac903 Add custom colour provider for bee species colours 2015-11-21 21:27:21 -08:00
mezz b3799c22e6 Fix #975 Crash with Storage Module disabled and Growthcraft 2015-11-21 20:46:17 -08:00
mezz 97d10fdba3 Fix MutationConditionRequiresResource 2015-11-21 16:04:18 -08:00
mezz e03400fc6a Update lang 2015-11-21 16:04:09 -08:00
mezz 2a35c1072b bump version for dev 2015-11-21 14:05:41 -08:00
mezz a4dd450ff8 Add mutation condition requireResource(String oreDictName) 2015-11-21 14:04:53 -08:00
mezz 8df8404a84 #976 Disable inventory tweaks shortcut buttons on Forestry inventories 2015-11-21 12:34:21 -08:00
mezz 54e73da1d5 Fix #979 Bio Generator crashing the game 2015-11-21 11:53:06 -08:00
mezz 7d83e28a03 Fix #977 add additional defensive checks to BeekeepingLogic 2015-11-21 11:24:35 -08:00
mezz db7736f7d2 Add missing GUI classes to GuiIdRegistry 2015-11-21 11:24:00 -08:00
mezz eff9dfcca7 Fix #978 missing localization keys for mail trades and escritoire 2015-11-21 11:06:12 -08:00
mezz 2b874fb42f Use Multimaps.asMap to hide weird casting 2015-11-20 18:34:07 -08:00
mezz 27daa8e1ac Add support for InventoryTweaks 2015-11-20 18:28:25 -08:00
mezz a49eb1c5f9 Fix #524 Add config for Received letters HUD Placement 2015-11-20 15:31:21 -08:00
mezz 7e3b7acdef Allow hotkeys to send items to hotbar, except locked slots 2015-11-20 12:05:10 -08:00
mezz 9c532dd076 Allow hotkeys to send items to hotbar, except locked slots 2015-11-20 12:04:49 -08:00
mezz 3c7856f264 Add checking to make sure client and server can't open different GUIs 2015-11-20 09:49:55 -08:00
mezz 408a66bb40 Refactor GUI handling code 2015-11-19 20:37:33 -08:00
mezz 31231db459 minor cleanup 2015-11-19 16:42:30 -08:00
mezz 67a7185261 Fix #972 tree growing logs with default properties instead using genome 2015-11-19 01:37:29 -08:00
mezz aeaf113b11 Fix git capitalization derp 2015-11-19 01:24:57 -08:00
mezz 084a84903f Update lang 2015-11-19 01:04:39 -08:00
mezz 167e493160 Move butterfly blocks to PluginLepidopterology.blocks
remove custom shaped and shapeless recipes
2015-11-19 01:04:39 -08:00
mezz ce2a2ec8ed Move engine blocks to PluginEnergy.blocks 2015-11-19 01:04:38 -08:00
mezz 10e5391f48 Move factory blocks to PluginFactory.blocks 2015-11-19 01:04:38 -08:00
mezz ffe19807db Move mail blocks to PluginMail.blocks 2015-11-19 01:04:37 -08:00
mezz 6cfae1462f Move farm blocks to PluginFarming.blocks 2015-11-19 01:04:37 -08:00
mezz 18a0ae3643 Move apiculture blocks to PluginApiculture.blocks 2015-11-19 01:04:37 -08:00
mezz 358522b2af Move tree blocks to PluginArboriculture.blocks 2015-11-19 01:04:36 -08:00
mezz ade9bb6940 Move core blocks to PluginCore.blocks 2015-11-19 01:04:36 -08:00
mezz 23fd664e34 remove last bits of ForestryItem 2015-11-19 01:04:36 -08:00
mezz 60d5728ccb Move core items to PluginCore.items (first... 2015-11-19 01:04:35 -08:00
mezz 55118e399f Move butterfly items to PluginLepidopterology.items 2015-11-19 01:04:35 -08:00
mezz 7e50c57ba9 Move mail items to PluginMail.items 2015-11-19 01:04:35 -08:00
mezz 317dd0dbf9 Move storage items to PluginStorage.items 2015-11-19 01:04:34 -08:00
mezz e9af62e772 Move liquid container items to PluginFluids.items 2015-11-19 01:04:34 -08:00
mezz daa5e3bc75 Move food items into PluginFood.items 2015-11-19 01:04:33 -08:00
mezz e248f40f58 Move mod compatibility plugins into plugins/compat folder 2015-11-19 01:04:33 -08:00
mezz 0e53fccfdb Move food items into PluginFood.items 2015-11-19 01:04:33 -08:00
mezz fc289c16d4 Move arboriculture items into PluginApiculture.items 2015-11-19 01:04:32 -08:00
mezz fe69452464 Move apiculture items to PluginApiculture.items 2015-11-19 01:04:32 -08:00
mezz 4c41d0bb6e Update minimum required Forge version to 10.13.4.1448 2015-11-19 01:04:31 -08:00
mezz 0fe87253d1 Move core items to PluginCore.items (first of item/block refactor) 2015-11-19 01:04:31 -08:00
mezz 4f19f95b71 Clean up packet registration code 2015-11-19 01:04:31 -08:00
427 changed files with 7635 additions and 5715 deletions

No files matched your search

+3
View File
@@ -154,6 +154,9 @@ jar {
into ('cofh/api') {
from project.apiRedstoneFlux + "/LICENSE - LGPLv3.txt"
}
into ('invtweaks/api') {
from "./src/main/java/invtweaks/LICENSE.txt"
}
configurations.shade.each{ dep ->
from(project.zipTree(dep)){
+1 -1
View File
@@ -2,4 +2,4 @@ mcversion=1.7.10
forgeversion=10.13.4.1541-1.7.10
version_major=4
version_minor=2
version_patch=0
version_patch=2
+1 -1
Submodule lang updated: f7b40946a9...cb5900228e.
+9 -31
View File
@@ -11,14 +11,13 @@
package forestry;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
@@ -35,14 +34,13 @@ import cpw.mods.fml.common.registry.GameRegistry.Type;
import forestry.api.core.ForestryAPI;
import forestry.core.EventHandlerCore;
import forestry.core.GuiHandler;
import forestry.core.config.Config;
import forestry.core.config.Constants;
import forestry.core.config.ForestryItem;
import forestry.core.config.GameMode;
import forestry.core.config.Version;
import forestry.core.errors.EnumErrorCode;
import forestry.core.errors.ErrorStateRegistry;
import forestry.core.gui.GuiHandler;
import forestry.core.multiblock.MultiblockEventHandler;
import forestry.core.network.PacketHandler;
import forestry.core.proxy.Proxies;
@@ -74,22 +72,6 @@ public class Forestry {
public static Forestry instance;
private File configFolder;
private static final Map<String, ForestryItem> mappedItems = new HashMap<>();
static {
mappedItems.put("Forestry:builderBackpack", ForestryItem.builderBackpack);
mappedItems.put("Forestry:builderBackpackT2", ForestryItem.builderBackpackT2);
mappedItems.put("Forestry:adventurerBackpack", ForestryItem.adventurerBackpack);
mappedItems.put("Forestry:adventurerBackpackT2", ForestryItem.adventurerBackpackT2);
mappedItems.put("Forestry:shortMead", ForestryItem.beverage);
mappedItems.put("Forestry:waterCan", ForestryItem.canWater);
mappedItems.put("Forestry:biofuelCan", ForestryItem.canEthanol);
mappedItems.put("Forestry:biomassCan", ForestryItem.canBiomass);
mappedItems.put("Forestry:bucketBiofuel", ForestryItem.bucketEthanol);
mappedItems.put("Forestry:refractoryBiofuel", ForestryItem.refractoryEthanol);
mappedItems.put("Forestry:waxCapsuleBiofuel", ForestryItem.waxCapsuleEthanol);
}
public Forestry() {
ForestryAPI.instance = this;
ForestryAPI.forestryConstants = new Constants();
@@ -104,7 +86,9 @@ public class Forestry {
packetHandler = new PacketHandler();
// Register event handler
MinecraftForge.EVENT_BUS.register(new EventHandlerCore());
EventHandlerCore eventHandlerCore = new EventHandlerCore();
MinecraftForge.EVENT_BUS.register(eventHandlerCore);
FMLCommonHandler.instance().bus().register(eventHandlerCore);
MinecraftForge.EVENT_BUS.register(new MultiblockEventHandler());
configFolder = new File(event.getModConfigurationDirectory(), "forestry");
@@ -164,16 +148,10 @@ public class Forestry {
Log.warning("Remapping block " + mapping.name + " to " + StringUtil.cleanBlockName(block));
}
} else {
Block block = GameRegistry.findBlock(Constants.MOD, StringUtil.cleanTags(mapping.name));
if (block != null) {
mapping.remap(Item.getItemFromBlock(block));
Log.warning("Remapping item " + mapping.name + " to " + StringUtil.cleanBlockName(block));
} else {
ForestryItem mappedItem = mappedItems.get(mapping.name);
if (mappedItem != null) {
mapping.remap(mappedItem.item());
Log.warning("Remapping item " + mapping.name + " to " + mappedItem.name());
}
Item item = GameRegistry.findItem(Constants.MOD, StringUtil.cleanTags(mapping.name));
if (item != null) {
mapping.remap(item);
Log.warning("Remapping item " + mapping.name + " to " + StringUtil.cleanItemName(item));
}
}
}
@@ -38,10 +38,9 @@ import forestry.api.core.IErrorLogic;
import forestry.api.core.IErrorState;
import forestry.api.genetics.IEffectData;
import forestry.api.genetics.IIndividual;
import forestry.apiculture.network.PacketBeeLogicActive;
import forestry.apiculture.network.PacketBeeLogicActiveEntity;
import forestry.apiculture.network.packets.PacketBeeLogicActive;
import forestry.apiculture.network.packets.PacketBeeLogicActiveEntity;
import forestry.core.config.Constants;
import forestry.core.config.ForestryItem;
import forestry.core.errors.EnumErrorCode;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
@@ -169,9 +168,9 @@ public class BeekeepingLogic implements IBeekeepingLogic, IStreamable {
errorLogic.setCondition(!hasSpace, EnumErrorCode.NO_SPACE_INVENTORY);
ItemStack queenStack = beeInventory.getQueen();
EnumBeeType beeType = BeeManager.beeRoot.getType(queenStack);
// check if we're breeding
if (ForestryItem.beePrincessGE.isItemEqual(queenStack)) {
if (beeType == EnumBeeType.PRINCESS) {
boolean hasDrone = BeeManager.beeRoot.isDrone(beeInventory.getDrone());
errorLogic.setCondition(!hasDrone, EnumErrorCode.NO_DRONE);
@@ -179,7 +178,7 @@ public class BeekeepingLogic implements IBeekeepingLogic, IStreamable {
return !errorLogic.hasErrors();
}
if (ForestryItem.beeQueenGE.isItemEqual(queenStack)) {
if (beeType == EnumBeeType.QUEEN) {
if (!isQueenAlive(queenStack)) {
IBee dyingQueen = BeeManager.beeRoot.getMember(queenStack);
Collection<ItemStack> spawned = killQueen(dyingQueen, housing, beeListener);
@@ -218,7 +217,8 @@ public class BeekeepingLogic implements IBeekeepingLogic, IStreamable {
public void doWork() {
IBeeHousingInventory beeInventory = housing.getBeeInventory();
ItemStack queenStack = beeInventory.getQueen();
if (ForestryItem.beePrincessGE.isItemEqual(queenStack)) {
EnumBeeType beeType = BeeManager.beeRoot.getType(queenStack);
if (beeType == EnumBeeType.PRINCESS) {
tickBreed();
} else {
queenWorkTick(queen);
@@ -289,7 +289,13 @@ public class BeekeepingLogic implements IBeekeepingLogic, IStreamable {
/** Checks if a queen is alive. Much faster than reading the whole bee nbt */
private static boolean isQueenAlive(ItemStack queenStack) {
if (queenStack == null) {
return false;
}
NBTTagCompound nbtTagCompound = queenStack.getTagCompound();
if (nbtTagCompound == null) {
return false;
}
int health = nbtTagCompound.getInteger("Health");
return health > 0;
}
@@ -303,7 +309,9 @@ public class BeekeepingLogic implements IBeekeepingLogic, IStreamable {
ItemStack droneStack = beeInventory.getDrone();
ItemStack princessStack = beeInventory.getQueen();
if (!ForestryItem.beeDroneGE.isItemEqual(droneStack) || !ForestryItem.beePrincessGE.isItemEqual(princessStack)) {
EnumBeeType droneType = BeeManager.beeRoot.getType(droneStack);
EnumBeeType princessType = BeeManager.beeRoot.getType(princessStack);
if (droneType != EnumBeeType.DRONE || princessType != EnumBeeType.PRINCESS) {
beeProgress = 0;
return;
}
@@ -322,7 +330,7 @@ public class BeekeepingLogic implements IBeekeepingLogic, IStreamable {
NBTTagCompound nbttagcompound = new NBTTagCompound();
princess.writeToNBT(nbttagcompound);
queenStack = ForestryItem.beeQueenGE.getItemStack();
queenStack = new ItemStack(PluginApiculture.items.beeQueenGE);
queenStack.setTagCompound(nbttagcompound);
beeInventory.setQueen(queenStack);
@@ -359,7 +367,7 @@ public class BeekeepingLogic implements IBeekeepingLogic, IStreamable {
} else {
Log.warning("Tried to spawn offspring off an unmated queen. Devolving her to a princess.");
ItemStack convert = ForestryItem.beePrincessGE.getItemStack();
ItemStack convert = new ItemStack(PluginApiculture.items.beePrincessGE);
NBTTagCompound nbttagcompound = new NBTTagCompound();
queen.writeToNBT(nbttagcompound);
convert.setTagCompound(nbttagcompound);
@@ -1,239 +0,0 @@
/*******************************************************************************
* 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 forestry.apiculture;
import net.minecraft.client.gui.Gui;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.apiculture.BeeManager;
import forestry.apiculture.entities.EntityMinecartApiary;
import forestry.apiculture.entities.EntityMinecartBeehouse;
import forestry.apiculture.gui.ContainerAlveary;
import forestry.apiculture.gui.ContainerAlvearyHygroregulator;
import forestry.apiculture.gui.ContainerAlvearySieve;
import forestry.apiculture.gui.ContainerAlvearySwarmer;
import forestry.apiculture.gui.ContainerBeeHousing;
import forestry.apiculture.gui.ContainerHabitatLocator;
import forestry.apiculture.gui.ContainerImprinter;
import forestry.apiculture.gui.ContainerMinecartBeehouse;
import forestry.apiculture.gui.GuiAlveary;
import forestry.apiculture.gui.GuiAlvearyHygroregulator;
import forestry.apiculture.gui.GuiAlvearySieve;
import forestry.apiculture.gui.GuiAlvearySwarmer;
import forestry.apiculture.gui.GuiBeeHousing;
import forestry.apiculture.gui.GuiBeealyzer;
import forestry.apiculture.gui.GuiHabitatLocator;
import forestry.apiculture.gui.GuiImprinter;
import forestry.apiculture.inventory.ItemInventoryBeealyzer;
import forestry.apiculture.inventory.ItemInventoryHabitatLocator;
import forestry.apiculture.inventory.ItemInventoryImprinter;
import forestry.apiculture.multiblock.TileAlvearyHygroregulator;
import forestry.apiculture.multiblock.TileAlvearyPlain;
import forestry.apiculture.multiblock.TileAlvearySieve;
import forestry.apiculture.multiblock.TileAlvearySwarmer;
import forestry.apiculture.tiles.TileApiary;
import forestry.apiculture.tiles.TileBeehouse;
import forestry.core.GuiHandlerBase;
import forestry.core.gui.ContainerAlyzer;
import forestry.core.network.GuiId;
import forestry.core.tiles.TileUtil;
public class GuiHandlerApiculture extends GuiHandlerBase {
@SideOnly(Side.CLIENT)
@Override
public Gui getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) {
int cleanId = decodeGuiID(id);
int guiData = decodeGuiData(id);
if (cleanId >= GuiId.values().length) {
return null;
}
ItemStack equipped;
switch (GuiId.values()[cleanId]) {
case AlvearyGUI:
return new GuiAlveary(player.inventory, TileUtil.getTile(world, x, y, z, TileAlvearyPlain.class));
case AlvearySieveGUI:
return new GuiAlvearySieve(player.inventory, TileUtil.getTile(world, x, y, z, TileAlvearySieve.class));
case AlvearySwarmerGUI:
return new GuiAlvearySwarmer(player.inventory, TileUtil.getTile(world, x, y, z, TileAlvearySwarmer.class));
case ApiaristChestGUI:
return getNaturalistChestGui(BeeManager.beeRoot, player, world, x, y, z, guiData);
case ApiaryGUI: {
TileApiary tileApiary = TileUtil.getTile(world, x, y, z, TileApiary.class);
ContainerBeeHousing container = new ContainerBeeHousing(player.inventory, tileApiary, true);
return new GuiBeeHousing<>(tileApiary, container, GuiBeeHousing.Icon.APIARY);
}
case BeealyzerGUI:
equipped = player.getCurrentEquippedItem();
if (equipped == null) {
return null;
}
return new GuiBeealyzer(player, new ItemInventoryBeealyzer(player, equipped));
case BeehouseGUI: {
TileBeehouse tileBeehouse = TileUtil.getTile(world, x, y, z, TileBeehouse.class);
ContainerBeeHousing container = new ContainerBeeHousing(player.inventory, tileBeehouse, false);
return new GuiBeeHousing<>(tileBeehouse, container, GuiBeeHousing.Icon.BEE_HOUSE);
}
case MinecartBeehouseGUI: {
Entity entity = world.getEntityByID(x);
if (!(entity instanceof EntityMinecartBeehouse)) {
return null;
}
EntityMinecartBeehouse beeCart = (EntityMinecartBeehouse) entity;
ContainerMinecartBeehouse container = new ContainerMinecartBeehouse(player.inventory, beeCart, false);
return new GuiBeeHousing<>(beeCart, container, GuiBeeHousing.Icon.BEE_HOUSE);
}
case MinecartApiaryGUI: {
Entity entity = world.getEntityByID(x);
if (!(entity instanceof EntityMinecartApiary)) {
return null;
}
EntityMinecartApiary beeCart = (EntityMinecartApiary) entity;
ContainerMinecartBeehouse container = new ContainerMinecartBeehouse(player.inventory, beeCart, true);
return new GuiBeeHousing<>(beeCart, container, GuiBeeHousing.Icon.APIARY);
}
case HabitatLocatorGUI:
equipped = player.getCurrentEquippedItem();
if (equipped == null) {
return null;
}
return new GuiHabitatLocator(player, new ItemInventoryHabitatLocator(player, equipped));
case HygroregulatorGUI:
return new GuiAlvearyHygroregulator(player.inventory, TileUtil.getTile(world, x, y, z, TileAlvearyHygroregulator.class));
case ImprinterGUI:
equipped = player.getCurrentEquippedItem();
if (equipped == null) {
return null;
}
return new GuiImprinter(player.inventory, new ItemInventoryImprinter(player, equipped));
default:
return null;
}
}
@Override
public Container getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) {
int cleanId = decodeGuiID(id);
int guiData = decodeGuiData(id);
if (cleanId >= GuiId.values().length) {
return null;
}
ItemStack equipped;
switch (GuiId.values()[cleanId]) {
case AlvearyGUI:
synchApiaristTracker(world, player);
return new ContainerAlveary(player.inventory, TileUtil.getTile(world, x, y, z, TileAlvearyPlain.class));
case AlvearySieveGUI:
return new ContainerAlvearySieve(player.inventory, TileUtil.getTile(world, x, y, z, TileAlvearySieve.class));
case AlvearySwarmerGUI:
return new ContainerAlvearySwarmer(player.inventory, TileUtil.getTile(world, x, y, z, TileAlvearySwarmer.class));
case ApiaristChestGUI:
return getNaturalistChestContainer(BeeManager.beeRoot, player, world, x, y, z, guiData);
case ApiaryGUI:
synchApiaristTracker(world, player);
return new ContainerBeeHousing(player.inventory, TileUtil.getTile(world, x, y, z, TileApiary.class), true);
case BeealyzerGUI:
equipped = player.getCurrentEquippedItem();
if (equipped == null) {
return null;
}
synchApiaristTracker(world, player);
return new ContainerAlyzer(new ItemInventoryBeealyzer(player, equipped), player);
case BeehouseGUI:
synchApiaristTracker(world, player);
return new ContainerBeeHousing(player.inventory, TileUtil.getTile(world, x, y, z, TileBeehouse.class), false);
case MinecartBeehouseGUI: {
Entity entity = world.getEntityByID(x);
if (!(entity instanceof EntityMinecartBeehouse)) {
return null;
}
synchApiaristTracker(world, player);
return new ContainerMinecartBeehouse(player.inventory, (EntityMinecartBeehouse) entity, false);
}
case MinecartApiaryGUI: {
Entity entity = world.getEntityByID(x);
if (!(entity instanceof EntityMinecartApiary)) {
return null;
}
synchApiaristTracker(world, player);
return new ContainerMinecartBeehouse(player.inventory, (EntityMinecartApiary) entity, true);
}
case HabitatLocatorGUI:
equipped = player.getCurrentEquippedItem();
if (equipped == null) {
return null;
}
return new ContainerHabitatLocator(player, new ItemInventoryHabitatLocator(player, equipped));
case HygroregulatorGUI:
return new ContainerAlvearyHygroregulator(player.inventory, TileUtil.getTile(world, x, y, z, TileAlvearyHygroregulator.class));
case ImprinterGUI:
synchApiaristTracker(world, player);
equipped = player.getCurrentEquippedItem();
if (equipped == null) {
return null;
}
return new ContainerImprinter(player.inventory, new ItemInventoryImprinter(player, equipped));
default:
return null;
}
}
private static void synchApiaristTracker(World world, EntityPlayer player) {
BeeManager.beeRoot.getBreedingTracker(world, player.getGameProfile()).synchToPlayer(player);
}
}
@@ -26,8 +26,8 @@ public class InventoryBeeHousing extends InventoryAdapterRestricted implements I
public static final int SLOT_PRODUCT_1 = 2;
public static final int SLOT_PRODUCT_COUNT = 7;
public InventoryBeeHousing(int size, String name, IAccessHandler accessHandler) {
super(size, name, accessHandler);
public InventoryBeeHousing(int size, IAccessHandler accessHandler) {
super(size, "Items", accessHandler);
}
@Override
@@ -29,13 +29,11 @@ import cpw.mods.fml.common.registry.VillagerRegistry.IVillageCreationHandler;
import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler;
import forestry.api.apiculture.EnumBeeType;
import forestry.apiculture.blocks.BlockApicultureType;
import forestry.apiculture.genetics.BeeDefinition;
import forestry.apiculture.items.ItemHoneycomb;
import forestry.apiculture.worldgen.ComponentVillageBeeHouse;
import forestry.core.config.Constants;
import forestry.core.config.ForestryBlock;
import forestry.core.config.ForestryItem;
import forestry.core.utils.Log;
import forestry.plugins.PluginApiculture;
public class VillageHandlerApiculture implements IVillageCreationHandler, IVillageTradeHandler {
@@ -50,11 +48,20 @@ public class VillageHandlerApiculture implements IVillageCreationHandler, IVilla
@SuppressWarnings("unchecked")
@Override
public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) {
recipeList.add(new MerchantRecipe(ForestryItem.beePrincessGE.getItemStack(1, OreDictionary.WILDCARD_VALUE), new ItemStack(Items.emerald, 1)));
recipeList.add(new MerchantRecipe(new ItemStack(Items.wheat, 2), ItemHoneycomb.getRandomComb(1, random, false)));
recipeList.add(new MerchantRecipe(new ItemStack(Blocks.log, 24, OreDictionary.WILDCARD_VALUE), ForestryBlock.apiculture.getItemStack(1, Constants.DEFINITION_APIARY_META)));
recipeList.add(new MerchantRecipe(new ItemStack(Items.emerald, 1), ForestryItem.frameProven.getItemStack(6)));
recipeList.add(new MerchantRecipe(new ItemStack(Items.emerald, 12), ForestryItem.beePrincessGE.getItemStack(1, OreDictionary.WILDCARD_VALUE), BeeDefinition.MONASTIC.getMemberStack(EnumBeeType.DRONE)));
ItemStack wildcardPrincess = new ItemStack(PluginApiculture.items.beePrincessGE, 1, OreDictionary.WILDCARD_VALUE);
recipeList.add(new MerchantRecipe(wildcardPrincess, new ItemStack(Items.emerald, 1)));
ItemStack randomComb = PluginApiculture.items.beeComb.getRandomComb(1, random, false);
recipeList.add(new MerchantRecipe(new ItemStack(Items.wheat, 2), randomComb));
ItemStack apiary = PluginApiculture.blocks.apiculture.get(BlockApicultureType.APIARY);
recipeList.add(new MerchantRecipe(new ItemStack(Blocks.log, 24, OreDictionary.WILDCARD_VALUE), apiary));
ItemStack provenFrames = PluginApiculture.items.frameProven.getItemStack(6);
recipeList.add(new MerchantRecipe(new ItemStack(Items.emerald, 1), provenFrames));
ItemStack monasticDrone = BeeDefinition.MONASTIC.getMemberStack(EnumBeeType.DRONE);
recipeList.add(new MerchantRecipe(new ItemStack(Items.emerald, 12), wildcardPrincess, monasticDrone));
}
@Override
@@ -40,11 +40,24 @@ import forestry.core.blocks.BlockStructure;
import forestry.core.render.TextureManager;
public class BlockAlveary extends BlockStructure {
public enum Type {
PLAIN,
ENTRANCE,
SWARMER,
FAN,
HEATER,
HYGRO,
STABILIZER,
SIEVE;
public static final Type[] VALUES = values();
}
public BlockAlveary() {
super(new MaterialBeehive(false));
setHardness(1.0f);
setCreativeTab(Tabs.tabApiculture);
setHarvestLevel("axe", 0);
}
@SuppressWarnings({"rawtypes", "unchecked"})
@@ -85,19 +98,25 @@ public class BlockAlveary extends BlockStructure {
/* TILE ENTITY CREATION */
@Override
public TileEntity createTileEntity(World world, int metadata) {
switch (metadata) {
case TileAlveary.SWARMER_META:
if (metadata < 0 || metadata > Type.VALUES.length) {
return null;
}
Type type = Type.VALUES[metadata];
switch (type) {
case SWARMER:
return new TileAlvearySwarmer();
case TileAlveary.FAN_META:
case FAN:
return new TileAlvearyFan();
case TileAlveary.HEATER_META:
case HEATER:
return new TileAlvearyHeater();
case TileAlveary.HYGRO_META:
case HYGRO:
return new TileAlvearyHygroregulator();
case TileAlveary.STABILIZER_META:
case STABILIZER:
return new TileAlvearyStabiliser();
case TileAlveary.SIEVE_META:
case SIEVE:
return new TileAlvearySieve();
case PLAIN:
default:
return new TileAlvearyPlain();
}
@@ -151,27 +170,29 @@ public class BlockAlveary extends BlockStructure {
@Override
public IIcon getIcon(int side, int metadata) {
if ((metadata <= 1
|| metadata == TileAlveary.SIEVE_META || metadata == TileAlveary.SWARMER_META || metadata == TileAlveary.STABILIZER_META)
|| metadata == Type.SIEVE.ordinal() || metadata == Type.SWARMER.ordinal() || metadata == Type.STABILIZER.ordinal())
&& (side == 1 || side == 0)) {
return icons[BOTTOM];
}
switch (metadata) {
case TileAlveary.PLAIN_META:
Type type = Type.VALUES[metadata];
switch (type) {
case PLAIN:
return icons[PLAIN];
case TileAlveary.ENTRANCE_META:
case ENTRANCE:
return icons[ENTRANCE];
case TileAlveary.SWARMER_META:
case SWARMER:
return icons[ALVEARY_SWARMER_OFF];
case TileAlveary.FAN_META:
case FAN:
return icons[ALVEARY_FAN_OFF];
case TileAlveary.HEATER_META:
case HEATER:
return icons[ALVEARY_HEATER_OFF];
case TileAlveary.HYGRO_META:
case HYGRO:
return icons[ALVEARY_HYGRO];
case TileAlveary.STABILIZER_META:
case STABILIZER:
return icons[STABILISER];
case TileAlveary.SIEVE_META:
case SIEVE:
return icons[SIEVE];
default:
return null;
@@ -263,4 +284,8 @@ public class BlockAlveary extends BlockStructure {
tileAlveary.getMultiblockLogic().getController().reassemble();
}
}
public ItemStack get(Type type) {
return new ItemStack(this, 1, type.ordinal());
}
}
@@ -0,0 +1,22 @@
/*******************************************************************************
* 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 forestry.apiculture.blocks;
import forestry.api.core.Tabs;
import forestry.core.blocks.BlockBase;
public class BlockApiculture extends BlockBase<BlockApicultureType> {
public BlockApiculture() {
super();
setCreativeTab(Tabs.tabApiculture);
setHarvestLevel("axe", 0);
}
}
@@ -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 forestry.apiculture.blocks;
import java.util.Locale;
import org.apache.commons.lang3.text.WordUtils;
import forestry.apiculture.tiles.TileApiaristChest;
import forestry.apiculture.tiles.TileApiary;
import forestry.apiculture.tiles.TileBeehouse;
import forestry.core.blocks.IMachineProperties;
import forestry.core.tiles.TileForestry;
public enum BlockApicultureType implements IMachineProperties {
APIARY(TileApiary.class),
APIARIST_CHEST_LEGACY(TileApiaristChest.class, "ApiaristChest"),
BEEHOUSE(TileBeehouse.class);
public static final BlockApicultureType[] VALUES = values();
private final String teIdent;
private final Class<? extends TileForestry> teClass;
BlockApicultureType(Class<? extends TileForestry> teClass) {
String name = toString().toLowerCase(Locale.ENGLISH);
this.teIdent = "forestry." + WordUtils.capitalize(name);
this.teClass = teClass;
}
BlockApicultureType(Class<? extends TileForestry> teClass, String name) {
this.teIdent = "forestry." + name;
this.teClass = teClass;
}
@Override
public int getMeta() {
return ordinal();
}
@Override
public String getTeIdent() {
return teIdent;
}
@Override
public Class<? extends TileForestry> getTeClass() {
return teClass;
}
}
@@ -41,6 +41,11 @@ import forestry.core.utils.ItemStackUtil;
import forestry.plugins.PluginApiculture;
public class BlockBeehives extends BlockContainer {
public enum Type {
LEGACY,
FOREST,
MEADOWS;
}
public BlockBeehives() {
super(new MaterialBeehive(true));
@@ -326,4 +326,11 @@ public class BlockCandle extends BlockTorch {
}
}
public ItemStack getUnlitCandle(int amount) {
return new ItemStack(this, amount, 0);
}
public ItemStack getLitCandle(int amount) {
return new ItemStack(this, amount, 1);
}
}
@@ -0,0 +1,41 @@
/*******************************************************************************
* 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 forestry.apiculture.blocks;
import forestry.api.core.Tabs;
import forestry.apiculture.items.ItemBlockCandle;
import forestry.core.blocks.BlockBase;
import forestry.core.blocks.BlockRegistry;
import forestry.core.items.ItemBlockForestry;
public class BlockRegistryApiculture extends BlockRegistry {
public final BlockApiculture apiculture;
public final BlockBase apicultureChest;
public final BlockBeehives beehives;
public final BlockCandle candle;
public final BlockStump stump;
public final BlockAlveary alveary;
public BlockRegistryApiculture() {
apiculture = registerBlock(new BlockApiculture(), ItemBlockForestry.class, "apiculture");
apicultureChest = registerBlock(new BlockBase(true), ItemBlockForestry.class, "apicultureChest");
apicultureChest.setCreativeTab(Tabs.tabApiculture);
apicultureChest.setHarvestLevel("axe", 0);
beehives = registerBlock(new BlockBeehives(), ItemBlockForestry.class, "beehives");
candle = registerBlock(new BlockCandle(), ItemBlockCandle.class, "candle");
stump = registerBlock(new BlockStump(), ItemBlockForestry.class, "stump");
alveary = registerBlock(new BlockAlveary(), ItemBlockForestry.class, "alveary");
}
}
@@ -29,10 +29,10 @@ import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.core.Tabs;
import forestry.apiculture.tiles.TileCandle;
import forestry.core.config.Constants;
import forestry.core.config.ForestryBlock;
import forestry.core.render.TextureManager;
import forestry.core.utils.ItemStackUtil;
import forestry.core.utils.StringUtil;
import forestry.plugins.PluginApiculture;
public class BlockStump extends BlockTorch {
@@ -63,7 +63,7 @@ public class BlockStump extends BlockTorch {
(held.getItem() == Items.flint_and_steel ||
held.getItem() == Items.flint ||
ItemStackUtil.equals(Blocks.torch, held))) {
world.setBlock(x, y, z, ForestryBlock.candle.block(), world.getBlockMetadata(x, y, z) | 0x08, Constants.FLAG_BLOCK_SYNCH);
world.setBlock(x, y, z, PluginApiculture.blocks.candle, world.getBlockMetadata(x, y, z) | 0x08, Constants.FLAG_BLOCK_SYNCH);
TileCandle tc = new TileCandle();
tc.setColour(0); // default to white
world.setTileEntity(x, y, z, tc);
@@ -16,6 +16,7 @@ import java.util.Collections;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
@@ -26,14 +27,14 @@ import forestry.api.apiculture.IHiveFrame;
import forestry.apiculture.ApiaryBeeListener;
import forestry.apiculture.ApiaryBeeModifier;
import forestry.apiculture.IApiary;
import forestry.apiculture.blocks.BlockApicultureType;
import forestry.apiculture.gui.ContainerMinecartBeehouse;
import forestry.apiculture.gui.GuiBeeHousing;
import forestry.apiculture.inventory.IApiaryInventory;
import forestry.apiculture.inventory.InventoryApiary;
import forestry.core.config.Config;
import forestry.core.config.Constants;
import forestry.core.config.ForestryBlock;
import forestry.core.config.ForestryItem;
import forestry.core.inventory.IInventoryAdapter;
import forestry.core.network.GuiId;
import forestry.plugins.PluginApiculture;
public class EntityMinecartApiary extends EntityMinecartBeeHousingBase implements IApiary {
private static final IBeeModifier beeModifier = new ApiaryBeeModifier();
@@ -49,11 +50,6 @@ public class EntityMinecartApiary extends EntityMinecartBeeHousingBase implement
super(world, posX, posY, posZ);
}
@Override
protected GuiId getGuiId() {
return GuiId.MinecartApiaryGUI;
}
@Override
public List<String> getHints() {
return Config.hints.get("apiary");
@@ -76,17 +72,17 @@ public class EntityMinecartApiary extends EntityMinecartBeeHousingBase implement
@Override
public Block func_145820_n() {
return ForestryBlock.apiculture.block();
return PluginApiculture.blocks.apiculture;
}
@Override
public int getDisplayTileData() {
return Constants.DEFINITION_APIARY_META;
return BlockApicultureType.APIARY.ordinal();
}
@Override
public ItemStack getCartItem() {
return ForestryItem.minecartBeehouse.getItemStack(1, 1);
return PluginApiculture.items.minecartBeehouse.getApiaryMinecart();
}
@Override
@@ -106,4 +102,15 @@ public class EntityMinecartApiary extends EntityMinecartBeeHousingBase implement
public Iterable<IBeeListener> getBeeListeners() {
return Collections.singleton(beeListener);
}
@Override
public Object getGui(EntityPlayer player, int data) {
ContainerMinecartBeehouse container = new ContainerMinecartBeehouse(player.inventory, this, true);
return new GuiBeeHousing<>(this, container, GuiBeeHousing.Icon.APIARY);
}
@Override
public Object getContainer(EntityPlayer player, int data) {
return new ContainerMinecartBeehouse(player.inventory, this, true);
}
}
@@ -29,7 +29,7 @@ import forestry.api.core.EnumTemperature;
import forestry.api.core.ForestryAPI;
import forestry.api.core.IErrorLogic;
import forestry.apiculture.gui.IGuiBeeHousingInventory;
import forestry.apiculture.network.PacketBeeLogicEntityRequest;
import forestry.apiculture.network.packets.PacketBeeLogicEntityRequest;
import forestry.apiculture.tiles.TileBeeHousingBase;
import forestry.core.entities.EntityMinecartContainerForestry;
import forestry.core.network.DataInputStreamForestry;
@@ -14,6 +14,7 @@ import java.util.Collections;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
@@ -23,17 +24,17 @@ import forestry.api.apiculture.IBeeListener;
import forestry.api.apiculture.IBeeModifier;
import forestry.apiculture.BeehouseBeeModifier;
import forestry.apiculture.InventoryBeeHousing;
import forestry.apiculture.blocks.BlockApicultureType;
import forestry.apiculture.gui.ContainerMinecartBeehouse;
import forestry.apiculture.gui.GuiBeeHousing;
import forestry.core.config.Config;
import forestry.core.config.Constants;
import forestry.core.config.ForestryBlock;
import forestry.core.config.ForestryItem;
import forestry.core.inventory.IInventoryAdapter;
import forestry.core.network.GuiId;
import forestry.plugins.PluginApiculture;
public class EntityMinecartBeehouse extends EntityMinecartBeeHousingBase {
private static final IBeeModifier beeModifier = new BeehouseBeeModifier();
private static final IBeeListener beeListener = new DefaultBeeListener();
private final InventoryBeeHousing beeInventory = new InventoryBeeHousing(9, "Items", getAccessHandler());
private final InventoryBeeHousing beeInventory = new InventoryBeeHousing(9, getAccessHandler());
@SuppressWarnings("unused")
public EntityMinecartBeehouse(World world) {
@@ -46,11 +47,6 @@ public class EntityMinecartBeehouse extends EntityMinecartBeeHousingBase {
beeInventory.disableAutomation();
}
@Override
protected GuiId getGuiId() {
return GuiId.MinecartBeehouseGUI;
}
@Override
public List<String> getHints() {
return Config.hints.get("bee.house");
@@ -58,17 +54,17 @@ public class EntityMinecartBeehouse extends EntityMinecartBeeHousingBase {
@Override
public Block func_145820_n() {
return ForestryBlock.apiculture.block();
return PluginApiculture.blocks.apiculture;
}
@Override
public int getDisplayTileData() {
return Constants.DEFINITION_BEEHOUSE_META;
return BlockApicultureType.BEEHOUSE.ordinal();
}
@Override
public ItemStack getCartItem() {
return ForestryItem.minecartBeehouse.getItemStack(1, 0);
return PluginApiculture.items.minecartBeehouse.getBeeHouseMinecart();
}
/* IBeeHousing */
@@ -91,4 +87,15 @@ public class EntityMinecartBeehouse extends EntityMinecartBeeHousingBase {
protected IInventoryAdapter getInternalInventory() {
return beeInventory;
}
@Override
public Object getGui(EntityPlayer player, int data) {
ContainerMinecartBeehouse container = new ContainerMinecartBeehouse(player.inventory, this, false);
return new GuiBeeHousing<>(this, container, GuiBeeHousing.Icon.BEE_HOUSE);
}
@Override
public Object getContainer(EntityPlayer player, int data) {
return new ContainerMinecartBeehouse(player.inventory, this, false);
}
}
@@ -13,8 +13,6 @@ package forestry.apiculture.genetics;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import com.mojang.authlib.GameProfile;
import forestry.api.apiculture.BeeManager;
import forestry.api.apiculture.EnumBeeChromosome;
import forestry.api.apiculture.IApiaristTracker;
@@ -27,11 +25,7 @@ public class ApiaristTracker extends BreedingTracker implements IApiaristTracker
/** Required for creation from map storage */
public ApiaristTracker(String s) {
this(s, null);
}
public ApiaristTracker(String s, GameProfile player) {
super(s, player);
super(s);
}
private int queensTotal = 0;
@@ -33,16 +33,19 @@ import forestry.api.core.EnumHumidity;
import forestry.api.core.EnumTemperature;
import forestry.api.genetics.IAllele;
import forestry.apiculture.genetics.alleles.AlleleEffect;
import forestry.core.config.ForestryItem;
import forestry.apiculture.items.EnumHoneyComb;
import forestry.apiculture.items.EnumPollenCluster;
import forestry.core.genetics.alleles.AlleleHelper;
import forestry.core.genetics.alleles.EnumAllele;
import forestry.plugins.PluginApiculture;
import forestry.plugins.PluginCore;
public enum BeeDefinition implements IBeeDefinition {
/* HONEY BRANCH */
FOREST(BeeBranchDefinition.HONEY, "nigrocincta", true, new Color(0x19d0ec), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 0), 0.30f);
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.HONEY, 1), 0.30f);
}
@Override
@@ -59,7 +62,7 @@ public enum BeeDefinition implements IBeeDefinition {
MEADOWS(BeeBranchDefinition.HONEY, "florea", true, new Color(0xef131e), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 0), 0.30f);
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.HONEY, 1), 0.30f);
}
@Override
@@ -75,7 +78,7 @@ public enum BeeDefinition implements IBeeDefinition {
COMMON(BeeBranchDefinition.HONEY, "cerana", true, new Color(0xb2b2b2), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 0), 0.35f);
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.HONEY, 1), 0.35f);
}
@Override
@@ -97,7 +100,7 @@ public enum BeeDefinition implements IBeeDefinition {
CULTIVATED(BeeBranchDefinition.HONEY, "mellifera", true, new Color(0x5734ec), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 0), 0.40f);
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.HONEY, 1), 0.40f);
}
@Override
@@ -118,7 +121,7 @@ public enum BeeDefinition implements IBeeDefinition {
NOBLE(BeeBranchDefinition.NOBLE, "nobilis", false, new Color(0xec9a19), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 5), 0.20f);
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.DRIPPING, 1), 0.20f);
}
@Override
@@ -136,7 +139,7 @@ public enum BeeDefinition implements IBeeDefinition {
MAJESTIC(BeeBranchDefinition.NOBLE, "regalis", true, new Color(0x7f0000), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 5), 0.30f);
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.DRIPPING, 1), 0.30f);
}
@Override
@@ -154,8 +157,8 @@ public enum BeeDefinition implements IBeeDefinition {
IMPERIAL(BeeBranchDefinition.NOBLE, "imperatorius", false, new Color(0xa3e02f), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 5), 0.20f)
.addProduct(ForestryItem.royalJelly.getItemStack(), 0.15f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.DRIPPING, 1), 0.20f)
.addProduct(PluginApiculture.items.royalJelly.getItemStack(), 0.15f)
.setHasEffect();
}
@@ -176,7 +179,7 @@ public enum BeeDefinition implements IBeeDefinition {
DILIGENT(BeeBranchDefinition.INDUSTRIOUS, "sedulus", false, new Color(0xc219ec), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 3), 0.20f);
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.STRINGY, 1), 0.20f);
}
@Override
@@ -194,7 +197,7 @@ public enum BeeDefinition implements IBeeDefinition {
UNWEARY(BeeBranchDefinition.INDUSTRIOUS, "assiduus", true, new Color(0x19ec5a), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 3), 0.30f);
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.STRINGY, 1), 0.30f);
}
@Override
@@ -211,8 +214,8 @@ public enum BeeDefinition implements IBeeDefinition {
INDUSTRIOUS(BeeBranchDefinition.INDUSTRIOUS, "industria", false, new Color(0xffffff), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 3), 0.20f)
.addProduct(ForestryItem.pollenCluster.getItemStack(), 0.15f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.STRINGY, 1), 0.20f)
.addProduct(PluginApiculture.items.pollenCluster.get(EnumPollenCluster.NORMAL, 1), 0.15f)
.setHasEffect();
}
@@ -233,7 +236,7 @@ public enum BeeDefinition implements IBeeDefinition {
STEADFAST(BeeBranchDefinition.HEROIC, "legio", false, new Color(0x4d2b15), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 1), 0.20f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.COCOA, 1), 0.20f)
.setHasEffect();
}
@@ -253,7 +256,7 @@ public enum BeeDefinition implements IBeeDefinition {
VALIANT(BeeBranchDefinition.HEROIC, "centurio", true, new Color(0x626bdd), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 1), 0.30f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.COCOA, 1), 0.30f)
.addSpecialty(new ItemStack(Items.sugar), 0.15f);
}
@@ -273,7 +276,7 @@ public enum BeeDefinition implements IBeeDefinition {
HEROIC(BeeBranchDefinition.HEROIC, "kraphti", false, new Color(0xb3d5e4), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 1), 0.40f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.COCOA, 1), 0.40f)
.setHasEffect();
}
@@ -297,7 +300,7 @@ public enum BeeDefinition implements IBeeDefinition {
SINISTER(BeeBranchDefinition.INFERNAL, "caecus", false, new Color(0xb3d5e4), new Color(0x9a2323)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 2), 0.45f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.SIMMERING, 1), 0.45f)
.setTemperature(EnumTemperature.HELLISH)
.setHumidity(EnumHumidity.ARID);
}
@@ -320,8 +323,8 @@ public enum BeeDefinition implements IBeeDefinition {
FIENDISH(BeeBranchDefinition.INFERNAL, "diabolus", true, new Color(0xd7bee5), new Color(0x9a2323)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 2), 0.55f)
.addProduct(ForestryItem.ash.getItemStack(), 0.15f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.SIMMERING, 1), 0.55f)
.addProduct(PluginCore.items.ash.getItemStack(), 0.15f)
.setTemperature(EnumTemperature.HELLISH)
.setHumidity(EnumHumidity.ARID);
}
@@ -344,7 +347,7 @@ public enum BeeDefinition implements IBeeDefinition {
DEMONIC(BeeBranchDefinition.INFERNAL, "draco", false, new Color(0xf4e400), new Color(0x9a2323)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 2), 0.45f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.SIMMERING, 1), 0.45f)
.addProduct(new ItemStack(Items.glowstone_dust), 0.15f)
.setHasEffect()
.setTemperature(EnumTemperature.HELLISH)
@@ -369,7 +372,7 @@ public enum BeeDefinition implements IBeeDefinition {
MODEST(BeeBranchDefinition.AUSTERE, "modicus", false, new Color(0xc5be86), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 7), 0.20f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.PARCHED, 1), 0.20f)
.setTemperature(EnumTemperature.HOT)
.setHumidity(EnumHumidity.ARID);
}
@@ -388,7 +391,7 @@ public enum BeeDefinition implements IBeeDefinition {
FRUGAL(BeeBranchDefinition.AUSTERE, "permodestus", true, new Color(0xe8dcb1), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 7), 0.30f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.PARCHED, 1), 0.30f)
.setTemperature(EnumTemperature.HOT)
.setHumidity(EnumHumidity.ARID);
}
@@ -412,8 +415,8 @@ public enum BeeDefinition implements IBeeDefinition {
AUSTERE(BeeBranchDefinition.AUSTERE, "correpere", false, new Color(0xfffac2), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 7), 0.20f)
.addSpecialty(ForestryItem.beeComb.getItemStack(1, 10), 0.50f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.PARCHED, 1), 0.20f)
.addSpecialty(PluginApiculture.items.beeComb.get(EnumHoneyComb.POWDERY, 1), 0.50f)
.setHasEffect()
.setTemperature(EnumTemperature.HOT)
.setHumidity(EnumHumidity.ARID);
@@ -439,7 +442,7 @@ public enum BeeDefinition implements IBeeDefinition {
TROPICAL(BeeBranchDefinition.TROPICAL, "mendelia", false, new Color(0x378020), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 6), 0.20f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.SILKY, 1), 0.20f)
.setTemperature(EnumTemperature.WARM)
.setHumidity(EnumHumidity.DAMP);
}
@@ -458,7 +461,7 @@ public enum BeeDefinition implements IBeeDefinition {
EXOTIC(BeeBranchDefinition.TROPICAL, "darwini", true, new Color(0x304903), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 6), 0.30f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.SILKY, 1), 0.30f)
.setTemperature(EnumTemperature.WARM)
.setHumidity(EnumHumidity.DAMP);
}
@@ -477,7 +480,7 @@ public enum BeeDefinition implements IBeeDefinition {
EDENIC(BeeBranchDefinition.TROPICAL, "humboldti", false, new Color(0x393d0d), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 6), 0.20f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.SILKY, 1), 0.20f)
.setHasEffect()
.setTemperature(EnumTemperature.WARM)
.setHumidity(EnumHumidity.DAMP);
@@ -501,7 +504,7 @@ public enum BeeDefinition implements IBeeDefinition {
ENDED(BeeBranchDefinition.END, "notchi", false, new Color(0xe079fa), new Color(0xd9de9e)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 8), 0.30f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.MYSTERIOUS, 1), 0.30f)
.setTemperature(EnumTemperature.COLD);
}
@@ -518,7 +521,7 @@ public enum BeeDefinition implements IBeeDefinition {
SPECTRAL(BeeBranchDefinition.END, "idolum", true, new Color(0xa98bed), new Color(0xd9de9e)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 8), 0.50f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.MYSTERIOUS, 1), 0.50f)
.setTemperature(EnumTemperature.COLD);
}
@@ -535,7 +538,7 @@ public enum BeeDefinition implements IBeeDefinition {
PHANTASMAL(BeeBranchDefinition.END, "lemur", false, new Color(0xcc00fa), new Color(0xd9de9e)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 8), 0.40f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.MYSTERIOUS, 1), 0.40f)
.setHasEffect()
.setTemperature(EnumTemperature.COLD);
}
@@ -557,7 +560,7 @@ public enum BeeDefinition implements IBeeDefinition {
WINTRY(BeeBranchDefinition.FROZEN, "brumalis", false, new Color(0xa0ffc8), new Color(0xdaf5f3)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 4), 0.30f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.FROZEN, 1), 0.30f)
.setTemperature(EnumTemperature.ICY);
}
@@ -576,8 +579,8 @@ public enum BeeDefinition implements IBeeDefinition {
ICY(BeeBranchDefinition.FROZEN, "coagulis", true, new Color(0xa0ffff), new Color(0xdaf5f3)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 4), 0.20f)
.addProduct(ForestryItem.craftingMaterial.getItemStack(1, 5), 0.20f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.FROZEN, 1), 0.20f)
.addProduct(PluginCore.items.craftingMaterial.getIceShard(1), 0.20f)
.setTemperature(EnumTemperature.ICY);
}
@@ -596,8 +599,8 @@ public enum BeeDefinition implements IBeeDefinition {
GLACIAL(BeeBranchDefinition.FROZEN, "glacialis", false, new Color(0xefffff), new Color(0xdaf5f3)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 4), 0.20f)
.addProduct(ForestryItem.craftingMaterial.getItemStack(1, 5), 0.40f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.FROZEN, 1), 0.20f)
.addProduct(PluginCore.items.craftingMaterial.getIceShard(1), 0.40f)
.setTemperature(EnumTemperature.ICY)
.setHasEffect();
}
@@ -619,7 +622,7 @@ public enum BeeDefinition implements IBeeDefinition {
VINDICTIVE(BeeBranchDefinition.VENGEFUL, "ultio", false, new Color(0xeafff3), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 9), 0.25f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.IRRADIATED, 1), 0.25f)
.setIsNotCounted();
}
@@ -637,7 +640,7 @@ public enum BeeDefinition implements IBeeDefinition {
VENGEFUL(BeeBranchDefinition.VENGEFUL, "punire", false, new Color(0xc2de00), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 9), 0.40f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.IRRADIATED, 1), 0.40f)
.setIsNotCounted();
}
@@ -656,7 +659,7 @@ public enum BeeDefinition implements IBeeDefinition {
AVENGING(BeeBranchDefinition.VENGEFUL, "hostimentum", false, new Color(0xddff00), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 9), 0.40f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.IRRADIATED, 1), 0.40f)
.setHasEffect()
.setIsNotCounted();
}
@@ -678,7 +681,7 @@ public enum BeeDefinition implements IBeeDefinition {
LEPORINE(BeeBranchDefinition.FESTIVE, "lepus", false, new Color(0xfeff8f), new Color(0x3cd757)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 6), 0.30f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.SILKY, 1), 0.30f)
.addProduct(new ItemStack(Items.egg), 0.10f)
.setHasEffect()
.setIsNotCounted();
@@ -700,8 +703,8 @@ public enum BeeDefinition implements IBeeDefinition {
MERRY(BeeBranchDefinition.FESTIVE, "feliciter", false, new Color(0xffffff), new Color(0xd40000)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 4), 0.30f)
.addProduct(ForestryItem.craftingMaterial.getItemStack(1, 5), 0.20f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.FROZEN, 1), 0.30f)
.addProduct(PluginCore.items.craftingMaterial.getIceShard(1), 0.20f)
.setTemperature(EnumTemperature.ICY)
.setHasEffect()
.setIsNotCounted();
@@ -724,8 +727,8 @@ public enum BeeDefinition implements IBeeDefinition {
TIPSY(BeeBranchDefinition.FESTIVE, "ebrius", false, new Color(0xffffff), new Color(0xc219ec)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 4), 0.30f)
.addProduct(ForestryItem.craftingMaterial.getItemStack(1, 5), 0.20f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.FROZEN, 1), 0.30f)
.addProduct(PluginCore.items.craftingMaterial.getIceShard(1), 0.20f)
.setTemperature(EnumTemperature.ICY)
.setHasEffect()
.setIsNotCounted();
@@ -749,7 +752,7 @@ public enum BeeDefinition implements IBeeDefinition {
TRICKY(BeeBranchDefinition.FESTIVE, "libita", false, new Color(0x49413B), new Color(0xFF6A00)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 0), 0.40f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.HONEY, 1), 0.40f)
.addProduct(new ItemStack(Items.cookie), 0.15f)
.addSpecialty(new ItemStack(Items.skull, 1, 0), 0.02f)
.addSpecialty(new ItemStack(Items.skull, 1, 2), 0.02f)
@@ -779,7 +782,7 @@ public enum BeeDefinition implements IBeeDefinition {
RURAL(BeeBranchDefinition.AGRARIAN, "rustico", false, new Color(0xfeff8f), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 14), 0.20f);
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.WHEATEN, 1), 0.20f);
}
@Override
@@ -796,7 +799,7 @@ public enum BeeDefinition implements IBeeDefinition {
FARMERLY(BeeBranchDefinition.AGRARIAN, "arator", true, new Color(0xD39728), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 14), 0.27f);
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.WHEATEN, 1), 0.27f);
}
@Override
@@ -814,7 +817,7 @@ public enum BeeDefinition implements IBeeDefinition {
AGRARIAN(BeeBranchDefinition.AGRARIAN, "arator", true, new Color(0xFFCA75), new Color(0xFFE047)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 14), 0.35f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.WHEATEN, 1), 0.35f)
.setHasEffect();
}
@@ -837,7 +840,7 @@ public enum BeeDefinition implements IBeeDefinition {
MARSHY(BeeBranchDefinition.BOGGY, "adorasti", true, new Color(0x546626), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 15), 0.30f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.MOSSY, 1), 0.30f)
.setHumidity(EnumHumidity.DAMP);
}
@@ -854,7 +857,7 @@ public enum BeeDefinition implements IBeeDefinition {
MIRY(BeeBranchDefinition.BOGGY, "humidium", true, new Color(0x92AF42), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 15), 0.36f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.MOSSY, 1), 0.36f)
.setHumidity(EnumHumidity.DAMP);
}
@@ -875,8 +878,8 @@ public enum BeeDefinition implements IBeeDefinition {
BOGGY(BeeBranchDefinition.BOGGY, "paluster", true, new Color(0x698948), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 15), 0.39f)
.addSpecialty(ForestryItem.peat.getItemStack(), 0.08f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.MOSSY, 1), 0.39f)
.addSpecialty(PluginCore.items.peat.getItemStack(), 0.08f)
.setHumidity(EnumHumidity.DAMP);
}
@@ -900,8 +903,8 @@ public enum BeeDefinition implements IBeeDefinition {
MONASTIC(BeeBranchDefinition.MONASTIC, "monachus", false, new Color(0x42371c), new Color(0xfff7b6)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 14), 0.30f)
.addSpecialty(ForestryItem.beeComb.getItemStack(1, 16), 0.10f)
beeSpecies.addProduct(PluginApiculture.items.beeComb.get(EnumHoneyComb.WHEATEN, 1), 0.30f)
.addSpecialty(PluginApiculture.items.beeComb.get(EnumHoneyComb.MELLOW, 1), 0.10f)
.setJubilanceProvider(new JubilanceProviderHermit());
}
@@ -918,7 +921,7 @@ public enum BeeDefinition implements IBeeDefinition {
SECLUDED(BeeBranchDefinition.MONASTIC, "contractus", true, new Color(0x7b6634), new Color(0xfff7b6)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addSpecialty(ForestryItem.beeComb.getItemStack(1, 16), 0.20f)
beeSpecies.addSpecialty(PluginApiculture.items.beeComb.get(EnumHoneyComb.MELLOW, 1), 0.20f)
.setJubilanceProvider(new JubilanceProviderHermit());
}
@@ -935,7 +938,7 @@ public enum BeeDefinition implements IBeeDefinition {
HERMITIC(BeeBranchDefinition.MONASTIC, "anachoreta", false, new Color(0xffd46c), new Color(0xfff7b6)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addSpecialty(ForestryItem.beeComb.getItemStack(1, 16), 0.20f)
beeSpecies.addSpecialty(PluginApiculture.items.beeComb.get(EnumHoneyComb.MELLOW, 1), 0.20f)
.setJubilanceProvider(new JubilanceProviderHermit())
.setHasEffect();
}
@@ -48,7 +48,6 @@ import forestry.api.genetics.IMutation;
import forestry.apiculture.BeeHousingListener;
import forestry.apiculture.BeeHousingModifier;
import forestry.apiculture.BeekeepingLogic;
import forestry.core.config.ForestryItem;
import forestry.core.genetics.SpeciesRoot;
import forestry.plugins.PluginApiculture;
@@ -108,20 +107,20 @@ public class BeeHelper extends SpeciesRoot implements IBeeRoot {
Item beeItem;
switch (EnumBeeType.VALUES[type]) {
case QUEEN:
beeItem = ForestryItem.beeQueenGE.item();
beeItem = PluginApiculture.items.beeQueenGE;
// ensure a queen is always mated
if (bee.getMate() == null) {
bee.mate(bee);
}
break;
case PRINCESS:
beeItem = ForestryItem.beePrincessGE.item();
beeItem = PluginApiculture.items.beePrincessGE;
break;
case DRONE:
beeItem = ForestryItem.beeDroneGE.item();
beeItem = PluginApiculture.items.beeDroneGE;
break;
case LARVAE:
beeItem = ForestryItem.beeLarvaeGE.item();
beeItem = PluginApiculture.items.beeLarvaeGE;
break;
default:
throw new RuntimeException("Cannot instantiate a bee of type " + type);
@@ -140,13 +139,15 @@ public class BeeHelper extends SpeciesRoot implements IBeeRoot {
return EnumBeeType.NONE;
}
if (ForestryItem.beeDroneGE.isItemEqual(stack)) {
Item item = stack.getItem();
if (PluginApiculture.items.beeDroneGE == item) {
return EnumBeeType.DRONE;
} else if (ForestryItem.beePrincessGE.isItemEqual(stack)) {
} else if (PluginApiculture.items.beePrincessGE == item) {
return EnumBeeType.PRINCESS;
} else if (ForestryItem.beeQueenGE.isItemEqual(stack)) {
} else if (PluginApiculture.items.beeQueenGE == item) {
return EnumBeeType.QUEEN;
} else if (ForestryItem.beeLarvaeGE.isItemEqual(stack)) {
} else if (PluginApiculture.items.beeLarvaeGE == item) {
return EnumBeeType.LARVAE;
}
@@ -327,10 +328,13 @@ public class BeeHelper extends SpeciesRoot implements IBeeRoot {
// Create a tracker if there is none yet.
if (tracker == null) {
tracker = new ApiaristTracker(filename, player);
tracker = new ApiaristTracker(filename);
world.setItemData(filename, tracker);
}
tracker.setUsername(player);
tracker.setWorld(world);
return tracker;
}
@@ -0,0 +1,34 @@
/*******************************************************************************
* 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 forestry.apiculture.genetics;
import forestry.api.apiculture.IBeeIconColourProvider;
public class DefaultBeeIconColourProvider implements IBeeIconColourProvider {
private final int primaryColour;
private final int secondaryColour;
public DefaultBeeIconColourProvider(int primaryColour, int secondaryColour) {
this.primaryColour = primaryColour;
this.secondaryColour = secondaryColour;
}
@Override
public int getIconColour(int renderPass) {
if (renderPass == 0) {
return primaryColour;
}
if (renderPass == 1) {
return secondaryColour;
}
return 0xffffff;
}
}
@@ -0,0 +1,64 @@
/*******************************************************************************
* 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 forestry.apiculture.genetics;
import java.util.Locale;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.util.IIcon;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.apiculture.EnumBeeType;
import forestry.api.apiculture.IBeeIconProvider;
import forestry.core.render.TextureManager;
public class DefaultBeeIconProvider implements IBeeIconProvider {
public static final DefaultBeeIconProvider instance = new DefaultBeeIconProvider();
private DefaultBeeIconProvider() {
}
private static final IIcon[][] icons = new IIcon[EnumBeeType.values().length][3];
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister register) {
String beeIconDir = "bees/default/";
IIcon body1 = TextureManager.registerTex(register, beeIconDir + "body1");
for (int i = 0; i < EnumBeeType.values().length; i++) {
EnumBeeType beeType = EnumBeeType.values()[i];
if (beeType == EnumBeeType.NONE) {
continue;
}
String beeTypeNameBase = beeIconDir + beeType.toString().toLowerCase(Locale.ENGLISH);
icons[i][0] = TextureManager.registerTex(register, beeTypeNameBase + ".outline");
if (beeType == EnumBeeType.LARVAE) {
icons[i][1] = TextureManager.registerTex(register, beeTypeNameBase + ".body");
} else {
icons[i][1] = body1;
}
icons[i][2] = TextureManager.registerTex(register, beeTypeNameBase + ".body2");
}
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(EnumBeeType type, int renderPass) {
return icons[type.ordinal()][renderPass];
}
}
@@ -13,7 +13,6 @@ package forestry.apiculture.genetics.alleles;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import net.minecraft.client.renderer.texture.IIconRegister;
@@ -27,39 +26,38 @@ import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.apiculture.BeeManager;
import forestry.api.apiculture.EnumBeeChromosome;
import forestry.api.apiculture.EnumBeeType;
import forestry.api.apiculture.IAlleleBeeSpeciesCustom;
import forestry.api.apiculture.IBeeGenome;
import forestry.api.apiculture.IBeeHousing;
import forestry.api.apiculture.IBeeIconColourProvider;
import forestry.api.apiculture.IBeeIconProvider;
import forestry.api.apiculture.IBeeRoot;
import forestry.api.apiculture.IJubilanceProvider;
import forestry.api.core.IIconProvider;
import forestry.api.genetics.IClassification;
import forestry.api.genetics.IIndividual;
import forestry.apiculture.genetics.DefaultBeeIconColourProvider;
import forestry.apiculture.genetics.DefaultBeeIconProvider;
import forestry.apiculture.genetics.JubilanceDefault;
import forestry.core.genetics.alleles.AlleleSpecies;
import forestry.core.render.TextureManager;
import forestry.core.utils.GeneticsUtil;
import forestry.core.utils.ItemStackUtil;
public class AlleleBeeSpecies extends AlleleSpecies implements IAlleleBeeSpeciesCustom {
private final Map<ItemStack, Float> productChances = new HashMap<>();
private final Map<ItemStack, Float> specialtyChances = new HashMap<>();
private final int primaryColour;
private final int secondaryColour;
private IBeeIconProvider beeIconProvider = DefaultBeeIconProvider.instance;
private IJubilanceProvider jubilanceProvider = JubilanceDefault.instance;
private IBeeIconProvider beeIconProvider;
private IBeeIconColourProvider beeIconColourProvider;
private IJubilanceProvider jubilanceProvider;
private boolean nocturnal = false;
public AlleleBeeSpecies(String uid, String unlocalizedName, String authority, String unlocalizedDescription, boolean dominant, IClassification branch, String binomial, int primaryColor, int secondaryColor) {
super(uid, unlocalizedName, authority, unlocalizedDescription, dominant, branch, binomial);
this.primaryColour = primaryColor;
this.secondaryColour = secondaryColor;
beeIconProvider = DefaultBeeIconProvider.instance;
beeIconColourProvider = new DefaultBeeIconColourProvider(primaryColor, secondaryColor);
jubilanceProvider = JubilanceDefault.instance;
}
@Override
@@ -109,12 +107,13 @@ public class AlleleBeeSpecies extends AlleleSpecies implements IAlleleBeeSpecies
return this;
}
/* RESEARCH */
@Override
public int getComplexity() {
return GeneticsUtil.getResearchComplexity(this, EnumBeeChromosome.SPECIES);
public IAlleleBeeSpeciesCustom setCustomBeeIconColourProvider(IBeeIconColourProvider beeIconColourProvider) {
this.beeIconColourProvider = beeIconColourProvider;
return this;
}
/* RESEARCH */
@Override
public float getResearchSuitability(ItemStack itemstack) {
if (itemstack == null) {
@@ -185,13 +184,7 @@ public class AlleleBeeSpecies extends AlleleSpecies implements IAlleleBeeSpecies
@Override
public int getIconColour(int renderPass) {
if (renderPass == 0) {
return primaryColour;
}
if (renderPass == 1) {
return secondaryColour;
}
return 0xffffff;
return beeIconColourProvider.getIconColour(renderPass);
}
@Override
@@ -199,47 +192,6 @@ public class AlleleBeeSpecies extends AlleleSpecies implements IAlleleBeeSpecies
return null;
}
private static class DefaultBeeIconProvider implements IBeeIconProvider {
public static final DefaultBeeIconProvider instance = new DefaultBeeIconProvider();
private DefaultBeeIconProvider() {
}
private static final IIcon[][] icons = new IIcon[EnumBeeType.values().length][3];
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister register) {
String beeIconDir = "bees/default/";
IIcon body1 = TextureManager.registerTex(register, beeIconDir + "body1");
for (int i = 0; i < EnumBeeType.values().length; i++) {
EnumBeeType beeType = EnumBeeType.values()[i];
if (beeType == EnumBeeType.NONE) {
continue;
}
String beeTypeNameBase = beeIconDir + beeType.toString().toLowerCase(Locale.ENGLISH);
icons[i][0] = TextureManager.registerTex(register, beeTypeNameBase + ".outline");
if (beeType == EnumBeeType.LARVAE) {
icons[i][1] = TextureManager.registerTex(register, beeTypeNameBase + ".body");
} else {
icons[i][1] = body1;
}
icons[i][2] = TextureManager.registerTex(register, beeTypeNameBase + ".body2");
}
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(EnumBeeType type, int renderPass) {
return icons[type.ordinal()][renderPass];
}
}
private static class BeeIconProviderWrapper implements IIconProvider {
private final IBeeIconProvider beeIconProvider;
@@ -13,9 +13,12 @@ package forestry.apiculture.genetics.alleles;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.block.IGrowable;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
import net.minecraftforge.common.IPlantable;
import forestry.api.apiculture.IBeeGenome;
import forestry.api.apiculture.IBeeHousing;
import forestry.api.genetics.IEffectData;
@@ -58,8 +61,8 @@ public class AlleleEffectFertile extends AlleleEffectThrottled {
private static boolean tryTickColumn(World world, int x, int z, int maxY, int minY) {
for (int y = maxY; y >= minY; --y) {
if (!world.isAirBlock(x, y, z)) {
Block block = world.getBlock(x, y, z);
Block block = world.getBlock(x, y, z);
if (block.getTickRandomly() && (block instanceof IGrowable || block instanceof IPlantable)) {
world.scheduleBlockUpdate(x, y, z, block, 5);
return true;
}
@@ -12,13 +12,13 @@ package forestry.apiculture.gui;
import net.minecraft.entity.player.InventoryPlayer;
import forestry.apiculture.multiblock.TileAlvearyPlain;
import forestry.apiculture.multiblock.TileAlveary;
import forestry.core.gui.ContainerTile;
import forestry.core.network.PacketGuiUpdate;
import forestry.core.network.packets.PacketGuiUpdate;
public class ContainerAlveary extends ContainerTile<TileAlvearyPlain> {
public class ContainerAlveary extends ContainerTile<TileAlveary> {
public ContainerAlveary(InventoryPlayer player, TileAlvearyPlain tile) {
public ContainerAlveary(InventoryPlayer player, TileAlveary tile) {
super(tile, player, 8, 108);
ContainerBeeHelper.addSlots(this, tile, false);
}
@@ -15,7 +15,7 @@ import net.minecraft.entity.player.InventoryPlayer;
import forestry.apiculture.tiles.TileBeeHousingBase;
import forestry.core.gui.ContainerTile;
import forestry.core.network.IForestryPacketClient;
import forestry.core.network.PacketGuiUpdate;
import forestry.core.network.packets.PacketGuiUpdate;
public class ContainerBeeHousing extends ContainerTile<TileBeeHousingBase> implements IContainerBeeHousing {
@@ -14,12 +14,12 @@ import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.player.InventoryPlayer;
import forestry.apiculture.inventory.ItemInventoryImprinter;
import forestry.apiculture.network.PacketImprintSelectionResponse;
import forestry.apiculture.network.packets.PacketImprintSelectionResponse;
import forestry.core.gui.ContainerItemInventory;
import forestry.core.gui.IGuiSelectable;
import forestry.core.gui.slots.SlotFiltered;
import forestry.core.gui.slots.SlotOutput;
import forestry.core.network.PacketGuiSelectRequest;
import forestry.core.network.packets.PacketGuiSelectRequest;
import forestry.core.proxy.Proxies;
public class ContainerImprinter extends ContainerItemInventory<ItemInventoryImprinter> implements IGuiSelectable {
@@ -15,7 +15,7 @@ import net.minecraft.entity.player.InventoryPlayer;
import forestry.apiculture.entities.EntityMinecartBeeHousingBase;
import forestry.core.gui.ContainerEntity;
import forestry.core.network.IForestryPacketClient;
import forestry.core.network.PacketGuiUpdateEntity;
import forestry.core.network.packets.PacketGuiUpdateEntity;
public class ContainerMinecartBeehouse extends ContainerEntity<EntityMinecartBeeHousingBase> implements IContainerBeeHousing {
public ContainerMinecartBeehouse(InventoryPlayer player, EntityMinecartBeeHousingBase entity, boolean hasFrames) {
@@ -13,14 +13,14 @@ package forestry.apiculture.gui;
import net.minecraft.entity.player.InventoryPlayer;
import forestry.apiculture.multiblock.IAlvearyControllerInternal;
import forestry.apiculture.multiblock.TileAlvearyPlain;
import forestry.apiculture.multiblock.TileAlveary;
import forestry.core.config.Constants;
import forestry.core.gui.GuiForestryTitled;
import forestry.core.render.EnumTankLevel;
public class GuiAlveary extends GuiForestryTitled<ContainerAlveary, TileAlvearyPlain> {
public class GuiAlveary extends GuiForestryTitled<ContainerAlveary, TileAlveary> {
public GuiAlveary(InventoryPlayer inventory, TileAlvearyPlain tile) {
public GuiAlveary(InventoryPlayer inventory, TileAlveary tile) {
super(Constants.TEXTURE_PATH_GUI + "/alveary.png", new ContainerAlveary(inventory, tile), tile);
ySize = 190;
@@ -25,13 +25,12 @@ import forestry.api.genetics.IAlleleInteger;
import forestry.api.genetics.IAlleleTolerance;
import forestry.apiculture.genetics.BeeGenome;
import forestry.apiculture.inventory.ItemInventoryBeealyzer;
import forestry.apiculture.items.ItemBeeGE;
import forestry.core.config.ForestryItem;
import forestry.core.genetics.alleles.AlleleBoolean;
import forestry.core.gui.ContainerAlyzer;
import forestry.core.gui.GuiAlyzer;
import forestry.core.gui.widgets.ItemStackWidget;
import forestry.core.utils.StringUtil;
import forestry.plugins.PluginApiculture;
public class GuiBeealyzer extends GuiAlyzer {
@@ -39,7 +38,7 @@ public class GuiBeealyzer extends GuiAlyzer {
super(BeeManager.beeRoot, player, new ContainerAlyzer(inventory, player), inventory, "gui.beealyzer");
ArrayList<ItemStack> beeList = new ArrayList<>();
((ItemBeeGE) ForestryItem.beeDroneGE.item()).addCreativeItems(beeList, false);
PluginApiculture.items.beeDroneGE.addCreativeItems(beeList, false);
for (ItemStack beeStack : beeList) {
IAlleleBeeSpecies species = BeeGenome.getSpecies(beeStack);
if (species != null) {
@@ -21,14 +21,13 @@ import net.minecraft.item.ItemStack;
import forestry.api.apiculture.IAlleleBeeSpecies;
import forestry.apiculture.genetics.BeeGenome;
import forestry.apiculture.inventory.ItemInventoryImprinter;
import forestry.apiculture.items.ItemBeeGE;
import forestry.core.config.Constants;
import forestry.core.config.ForestryItem;
import forestry.core.gui.GuiForestry;
import forestry.core.gui.GuiUtil;
import forestry.core.network.PacketGuiSelectRequest;
import forestry.core.network.packets.PacketGuiSelectRequest;
import forestry.core.proxy.Proxies;
import forestry.core.utils.StringUtil;
import forestry.plugins.PluginApiculture;
public class GuiImprinter extends GuiForestry<ContainerImprinter, ItemInventoryImprinter> {
@@ -44,7 +43,7 @@ public class GuiImprinter extends GuiForestry<ContainerImprinter, ItemInventoryI
ySize = 185;
List<ItemStack> beeList = new ArrayList<>();
((ItemBeeGE) ForestryItem.beeDroneGE.item()).addCreativeItems(beeList, false);
PluginApiculture.items.beeDroneGE.addCreativeItems(beeList, false);
for (ItemStack beeStack : beeList) {
IAlleleBeeSpecies species = BeeGenome.getSpecies(beeStack);
if (species != null) {
@@ -14,10 +14,10 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import forestry.apiculture.multiblock.TileAlvearySieve;
import forestry.core.config.ForestryItem;
import forestry.core.inventory.InventoryAdapterTile;
import forestry.core.inventory.watchers.ISlotPickupWatcher;
import forestry.core.utils.ItemStackUtil;
import forestry.plugins.PluginCore;
public class InventoryAlvearySieve extends InventoryAdapterTile<TileAlvearySieve> implements ISlotPickupWatcher {
public static final int SLOT_POLLEN_1 = 0;
@@ -30,7 +30,7 @@ public class InventoryAlvearySieve extends InventoryAdapterTile<TileAlvearySieve
@Override
public boolean canSlotAccept(int slotIndex, ItemStack itemStack) {
return ItemStackUtil.isIdenticalItem(ForestryItem.craftingMaterial.getItemStack(1, 3), itemStack);
return ItemStackUtil.isIdenticalItem(PluginCore.items.craftingMaterial.getWovenSilk(), itemStack);
}
public boolean canStorePollen() {
@@ -30,7 +30,7 @@ public class InventoryApiary extends InventoryBeeHousing implements IApiaryInven
public static final int SLOT_FRAMES_COUNT = 3;
public InventoryApiary(IAccessHandler accessHandler) {
super(12, "Items", accessHandler);
super(12, accessHandler);
}
@Override
@@ -27,10 +27,10 @@ import forestry.api.core.IErrorState;
import forestry.apiculture.items.HabitatLocatorLogic;
import forestry.apiculture.items.ItemHabitatLocator;
import forestry.core.config.Config;
import forestry.core.config.ForestryItem;
import forestry.core.errors.EnumErrorCode;
import forestry.core.gui.IHintSource;
import forestry.core.inventory.ItemInventory;
import forestry.plugins.PluginApiculture;
public class ItemInventoryHabitatLocator extends ItemInventory implements IErrorSource, IHintSource {
@@ -51,7 +51,8 @@ public class ItemInventoryHabitatLocator extends ItemInventory implements IError
return false;
}
return ForestryItem.honeyDrop.isItemEqual(itemstack) || ForestryItem.honeydew.isItemEqual(itemstack);
Item item = itemstack.getItem();
return PluginApiculture.items.honeyDrop == item || PluginApiculture.items.honeydew == item;
}
@Override
@@ -119,8 +120,7 @@ public class ItemInventoryHabitatLocator extends ItemInventory implements IError
@Override
public boolean canSlotAccept(int slotIndex, ItemStack itemStack) {
if (slotIndex == SLOT_ENERGY) {
Item item = itemStack.getItem();
return item == ForestryItem.honeydew.item() || item == ForestryItem.honeyDrop.item();
return isEnergy(itemStack);
} else if (slotIndex == SLOT_SPECIMEN) {
return BeeManager.beeRoot.isMember(itemStack);
}
@@ -0,0 +1,57 @@
/*******************************************************************************
* 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 forestry.apiculture.items;
import java.awt.Color;
import java.util.Locale;
public enum EnumHoneyComb {
HONEY(new Color(0xe8d56a), new Color(0xffa12b)),
COCOA(new Color(0x674016), new Color(0xffb62b), true),
SIMMERING(new Color(0x981919), new Color(0xffb62b)),
STRINGY(new Color(0xc8be67), new Color(0xbda93e)),
FROZEN(new Color(0xf9ffff), new Color(0xa0ffff)),
DRIPPING(new Color(0xdc7613), new Color(0xffff00)),
SILKY(new Color(0x508907), new Color(0xddff00)),
PARCHED(new Color(0xdcbe13), new Color(0xffff00)),
MYSTERIOUS(new Color(0x161616), new Color(0xe099ff), true),
IRRADIATED(new Color(0xeafff3), new Color(0xeeff00), true),
POWDERY(new Color(0xe4e4e4), new Color(0xffffff), true),
REDDENED(new Color(0x4b0000), new Color(0x6200e7), true),
DARKENED(new Color(0x353535), new Color(0x33ebcb), true),
OMEGA(new Color(0x191919), new Color(0x6dcff6), true),
WHEATEN(new Color(0xfeff8f), new Color(0xffffff), true),
MOSSY(new Color(0x2a3313), new Color(0x7e9939)),
MELLOW(new Color(0x886000), new Color(0xfff960));
//""(new Color(0xd7bee5), new Color(0xfd58ab)); // kindof pinkish
public static final EnumHoneyComb[] VALUES = values();
public final String name;
public final int primaryColor;
public final int secondaryColor;
private final boolean secret;
EnumHoneyComb(Color primary, Color secondary) {
this(primary, secondary, false);
}
EnumHoneyComb(Color primary, Color secondary, boolean secret) {
this.name = toString().toLowerCase(Locale.ENGLISH);
this.primaryColor = primary.getRGB();
this.secondaryColor = secondary.getRGB();
this.secret = secret;
}
public boolean isSecret() {
return secret;
}
}
@@ -0,0 +1,60 @@
/*******************************************************************************
* 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 forestry.apiculture.items;
import java.awt.Color;
import java.util.Locale;
import forestry.core.items.ItemOverlay;
public enum EnumHoneyDrop implements ItemOverlay.IOverlayInfo {
HONEY(new Color(0xecb42d), new Color(0xe8c814)),
CHARGED(new Color(0x800505), new Color(0x9c0707), true),
OMEGA(new Color(0x191919), new Color(0x4a8ca7), true);
public static final EnumHoneyDrop[] VALUES = values();
private final String name;
private final int primaryColor;
private final int secondaryColor;
private final boolean secret;
EnumHoneyDrop(Color primary, Color secondary) {
this(primary, secondary, false);
}
EnumHoneyDrop(Color primary, Color secondary, boolean secret) {
this.name = toString().toLowerCase(Locale.ENGLISH);
this.primaryColor = primary.getRGB();
this.secondaryColor = secondary.getRGB();
this.secret = secret;
}
@Override
public String getName() {
return name;
}
@Override
public int getPrimaryColor() {
return primaryColor;
}
@Override
public int getSecondaryColor() {
return secondaryColor;
}
@Override
public boolean isSecret() {
return secret;
}
}
@@ -0,0 +1,53 @@
/*******************************************************************************
* 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 forestry.apiculture.items;
import java.awt.Color;
import java.util.Locale;
import forestry.core.items.ItemOverlay;
public enum EnumPollenCluster implements ItemOverlay.IOverlayInfo {
NORMAL(new Color(0xa28a25), new Color(0xa28a25)),
CRYSTALLINE(new Color(0xffffff), new Color(0xc5feff));
public static final EnumPollenCluster[] VALUES = values();
private final String name;
private final int primaryColor;
private final int secondaryColor;
EnumPollenCluster(Color primary, Color secondary) {
this.name = toString().toLowerCase(Locale.ENGLISH);
this.primaryColor = primary.getRGB();
this.secondaryColor = secondary.getRGB();
}
@Override
public String getName() {
return name;
}
@Override
public int getPrimaryColor() {
return primaryColor;
}
@Override
public int getSecondaryColor() {
return secondaryColor;
}
@Override
public boolean isSecret() {
return false;
}
}
@@ -0,0 +1,59 @@
/*******************************************************************************
* 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 forestry.apiculture.items;
import java.awt.Color;
import java.util.Locale;
import forestry.core.items.ItemOverlay;
public enum EnumPropolis implements ItemOverlay.IOverlayInfo {
NORMAL(new Color(0xc5b24e)),
STICKY(new Color(0xc68e57)),
PULSATING(new Color(0x2ccdb1), true),
SILKY(new Color(0xddff00));
public static final EnumPropolis[] VALUES = values();
private final String name;
private final int primaryColor;
private final boolean secret;
EnumPropolis(Color color) {
this(color, false);
}
EnumPropolis(Color color, boolean secret) {
this.name = toString().toLowerCase(Locale.ENGLISH);
this.primaryColor = color.getRGB();
this.secret = secret;
}
@Override
public String getName() {
return name;
}
@Override
public int getPrimaryColor() {
return primaryColor;
}
@Override
public int getSecondaryColor() {
return 0;
}
@Override
public boolean isSecret() {
return secret;
}
}
@@ -25,7 +25,7 @@ import net.minecraft.world.biome.BiomeGenBase;
import net.minecraftforge.common.BiomeDictionary;
import forestry.api.apiculture.IBee;
import forestry.apiculture.network.PacketHabitatBiomePointer;
import forestry.apiculture.network.packets.PacketHabitatBiomePointer;
import forestry.core.proxy.Proxies;
import forestry.core.utils.vect.Vect;
@@ -25,9 +25,9 @@ import forestry.api.apiculture.IArmorApiarist;
import forestry.api.core.IArmorNaturalist;
import forestry.api.core.Tabs;
import forestry.core.config.Constants;
import forestry.core.config.ForestryItem;
import forestry.core.render.TextureManager;
import forestry.core.utils.StringUtil;
import forestry.plugins.PluginApiculture;
public class ItemArmorApiarist extends ItemArmor implements IArmorApiarist, IArmorNaturalist {
@@ -39,7 +39,7 @@ public class ItemArmorApiarist extends ItemArmor implements IArmorApiarist, IArm
@Override
public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) {
if (ForestryItem.apiaristLegs.isItemEqual(stack)) {
if (stack != null && stack.getItem() == PluginApiculture.items.apiaristLegs) {
return Constants.ID + ":" + Constants.TEXTURE_APIARIST_ARMOR_SECONDARY;
} else {
return Constants.ID + ":" + Constants.TEXTURE_APIARIST_ARMOR_PRIMARY;
@@ -17,7 +17,6 @@ import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IIcon;
@@ -33,7 +32,6 @@ import forestry.api.core.Tabs;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IAlleleSpecies;
import forestry.api.genetics.IIndividual;
import forestry.apiculture.genetics.BeeGenome;
import forestry.core.config.Config;
import forestry.core.genetics.ItemGE;
@@ -44,9 +42,8 @@ public class ItemBeeGE extends ItemGE {
private final EnumBeeType type;
public ItemBeeGE(EnumBeeType type) {
super();
super(Tabs.tabApiculture);
this.type = type;
setCreativeTab(Tabs.tabApiculture);
if (type != EnumBeeType.DRONE) {
setMaxStackSize(1);
}
@@ -0,0 +1,38 @@
/*******************************************************************************
* 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 forestry.apiculture.items;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import forestry.api.core.Tabs;
import forestry.apiculture.gui.GuiBeealyzer;
import forestry.apiculture.inventory.ItemInventoryBeealyzer;
import forestry.core.gui.ContainerAlyzer;
import forestry.core.items.ItemWithGui;
public class ItemBeealyzer extends ItemWithGui {
public ItemBeealyzer() {
super(Tabs.tabApiculture);
}
@Override
public Object getGui(EntityPlayer player, ItemStack heldItem, int data) {
ItemInventoryBeealyzer inventory = new ItemInventoryBeealyzer(player, heldItem);
return new GuiBeealyzer(player, inventory);
}
@Override
public Object getContainer(EntityPlayer player, ItemStack heldItem, int data) {
ItemInventoryBeealyzer inventory = new ItemInventoryBeealyzer(player, heldItem);
return new ContainerAlyzer(inventory, player);
}
}
@@ -28,9 +28,11 @@ import forestry.api.core.EnumHumidity;
import forestry.api.core.EnumTemperature;
import forestry.api.core.Tabs;
import forestry.api.genetics.AlleleManager;
import forestry.apiculture.gui.ContainerHabitatLocator;
import forestry.apiculture.gui.GuiHabitatLocator;
import forestry.apiculture.inventory.ItemInventoryHabitatLocator;
import forestry.apiculture.render.TextureHabitatLocator;
import forestry.core.items.ItemWithGui;
import forestry.core.network.GuiId;
import forestry.core.utils.StringUtil;
public class ItemHabitatLocator extends ItemWithGui {
@@ -39,9 +41,8 @@ public class ItemHabitatLocator extends ItemWithGui {
private final HabitatLocatorLogic locatorLogic;
public ItemHabitatLocator() {
super(GuiId.HabitatLocatorGUI);
super(Tabs.tabApiculture);
setMaxStackSize(1);
setCreativeTab(Tabs.tabApiculture);
locatorLogic = new HabitatLocatorLogic();
}
@@ -80,4 +81,14 @@ public class ItemHabitatLocator extends ItemWithGui {
list.add(StringUtil.localize("gui.temperature") + ": " + AlleleManager.climateHelper.toDisplay(temperature));
list.add(StringUtil.localize("gui.humidity") + ": " + AlleleManager.climateHelper.toDisplay(humidity));
}
@Override
public Object getGui(EntityPlayer player, ItemStack heldItem, int data) {
return new GuiHabitatLocator(player, new ItemInventoryHabitatLocator(player, heldItem));
}
@Override
public Object getContainer(EntityPlayer player, ItemStack heldItem, int data) {
return new ContainerHabitatLocator(player, new ItemInventoryHabitatLocator(player, heldItem));
}
}
@@ -20,51 +20,9 @@ import net.minecraft.item.ItemStack;
import forestry.api.core.Tabs;
import forestry.core.config.Config;
import forestry.core.config.ForestryItem;
import forestry.core.items.ItemForestryMultiPass;
public class ItemHoneycomb extends ItemForestryMultiPass {
private static class CombInfo {
public final String name;
public final int primaryColor;
public final int secondaryColor;
public boolean isSecret = false;
public CombInfo(String name, int primaryColor, int secondaryColor) {
this.name = name;
this.primaryColor = primaryColor;
this.secondaryColor = secondaryColor;
}
public CombInfo setIsSecret() {
this.isSecret = true;
return this;
}
}
private final CombInfo[] combs = new CombInfo[]{
new CombInfo("honey", 0xe8d56a, 0xffa12b), // 0
new CombInfo("cocoa", 0x674016, 0xffb62b).setIsSecret(), // 1
new CombInfo("simmering", 0x981919, 0xffb62b), // 2
new CombInfo("stringy", 0xc8be67, 0xbda93e), // 3
new CombInfo("frozen", 0xf9ffff, 0xa0ffff), // 4
new CombInfo("dripping", 0xdc7613, 0xffff00), // 5
new CombInfo("silky", 0x508907, 0xddff00), // 6
new CombInfo("parched", 0xdcbe13, 0xffff00), // 7
new CombInfo("mysterious", 0x161616, 0xe099ff).setIsSecret(), // 8
new CombInfo("irradiated", 0xeafff3, 0xeeff00).setIsSecret(), // 9
new CombInfo("powdery", 0xe4e4e4, 0xffffff).setIsSecret(), // 10
new CombInfo("reddened", 0x4b0000, 0x6200e7).setIsSecret(), // 11
new CombInfo("darkened", 0x353535, 0x33ebcb).setIsSecret(), // 12
new CombInfo("omega", 0x191919, 0x6dcff6).setIsSecret(), // 13
new CombInfo("wheaten", 0xfeff8f, 0xffffff).setIsSecret(), // 14
new CombInfo("mossy", 0x2a3313, 0x7e9939), // 15
new CombInfo("mellow", 0x886000, 0xfff960) // 16
// new CombInfo("", 0xd7bee5, 0xfd58ab), // kindof pinkish
};
public ItemHoneycomb() {
super();
setMaxDamage(0);
@@ -84,44 +42,53 @@ public class ItemHoneycomb extends ItemForestryMultiPass {
@Override
public String getUnlocalizedName(ItemStack stack) {
return super.getUnlocalizedName(stack) + "." + combs[stack.getItemDamage()].name;
EnumHoneyComb honeyComb = EnumHoneyComb.VALUES[stack.getItemDamage()];
return super.getUnlocalizedName(stack) + "." + honeyComb.name;
}
@Override
public int getColorFromItemStack(ItemStack itemstack, int j) {
EnumHoneyComb honeyComb = EnumHoneyComb.VALUES[itemstack.getItemDamage()];
if (j == 0) {
return combs[itemstack.getItemDamage()].primaryColor;
return honeyComb.primaryColor;
} else {
return combs[itemstack.getItemDamage()].secondaryColor;
return honeyComb.secondaryColor;
}
}
@SuppressWarnings({"rawtypes", "unchecked"})
@Override
public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList) {
for (int i = 0; i < combs.length; i++) {
if (!combs[i].isSecret || Config.isDebug) {
for (int i = 0; i < EnumHoneyComb.VALUES.length; i++) {
EnumHoneyComb honeyComb = EnumHoneyComb.VALUES[i];
if (!honeyComb.isSecret() || Config.isDebug) {
itemList.add(new ItemStack(this, 1, i));
}
}
}
private int getRandomCombType(Random random, boolean includeSecret) {
List<Integer> validCombs = new ArrayList<>(combs.length);
for (int i = 0; i < combs.length; i++) {
if (!combs[i].isSecret || includeSecret) {
validCombs.add(i);
private static EnumHoneyComb getRandomCombType(Random random, boolean includeSecret) {
List<EnumHoneyComb> validCombs = new ArrayList<>(EnumHoneyComb.VALUES.length);
for (int i = 0; i < EnumHoneyComb.VALUES.length; i++) {
EnumHoneyComb honeyComb = EnumHoneyComb.VALUES[i];
if (!honeyComb.isSecret() || includeSecret) {
validCombs.add(honeyComb);
}
}
if (validCombs.isEmpty()) {
return 0;
return null;
} else {
return validCombs.get(random.nextInt(validCombs.size()));
}
}
public static ItemStack getRandomComb(int qty, Random random, boolean includeSecret) {
return ForestryItem.beeComb.getItemStack(qty, ((ItemHoneycomb) ForestryItem.beeComb.item()).getRandomCombType(random, includeSecret));
public ItemStack getRandomComb(int amount, Random random, boolean includeSecret) {
EnumHoneyComb honeyComb = getRandomCombType(random, includeSecret);
return get(honeyComb, amount);
}
public ItemStack get(EnumHoneyComb honeyComb, int amount) {
return new ItemStack(this, amount, honeyComb.ordinal());
}
}
@@ -0,0 +1,36 @@
/*******************************************************************************
* 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 forestry.apiculture.items;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import forestry.api.core.Tabs;
import forestry.apiculture.gui.ContainerImprinter;
import forestry.apiculture.gui.GuiImprinter;
import forestry.apiculture.inventory.ItemInventoryImprinter;
import forestry.core.items.ItemWithGui;
public class ItemImprinter extends ItemWithGui {
public ItemImprinter() {
super(Tabs.tabApiculture);
}
@Override
public Object getGui(EntityPlayer player, ItemStack heldItem, int data) {
return new GuiImprinter(player.inventory, new ItemInventoryImprinter(player, heldItem));
}
@Override
public Object getContainer(EntityPlayer player, ItemStack heldItem, int data) {
return new ContainerImprinter(player.inventory, new ItemInventoryImprinter(player, heldItem));
}
}
@@ -105,4 +105,12 @@ public class ItemMinecartBeehouse extends ItemMinecart {
itemList.add(new ItemStack(this, 1, i));
}
}
public ItemStack getBeeHouseMinecart() {
return new ItemStack(this, 1, 0);
}
public ItemStack getApiaryMinecart() {
return new ItemStack(this, 1, 1);
}
}
@@ -0,0 +1,26 @@
/*******************************************************************************
* 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 forestry.apiculture.items;
import net.minecraft.item.ItemStack;
import forestry.api.core.Tabs;
import forestry.core.items.ItemOverlay;
public class ItemPollenCluster extends ItemOverlay {
public ItemPollenCluster() {
super(Tabs.tabApiculture, EnumPollenCluster.VALUES);
}
public ItemStack get(EnumPollenCluster pollenCluster, int amount) {
return new ItemStack(this, amount, pollenCluster.ordinal());
}
}
@@ -0,0 +1,26 @@
/*******************************************************************************
* 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 forestry.apiculture.items;
import net.minecraft.item.ItemStack;
import forestry.api.core.Tabs;
import forestry.core.items.ItemOverlay;
public class ItemPropolis extends ItemOverlay {
public ItemPropolis() {
super(Tabs.tabApiculture, EnumPropolis.VALUES);
}
public ItemStack get(EnumPropolis propolis, int amount) {
return new ItemStack(this, amount, propolis.ordinal());
}
}
@@ -0,0 +1,102 @@
/*******************************************************************************
* 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 forestry.apiculture.items;
import net.minecraftforge.oredict.OreDictionary;
import forestry.api.apiculture.EnumBeeType;
import forestry.api.core.Tabs;
import forestry.core.items.ItemForestry;
import forestry.core.items.ItemOverlay;
import forestry.core.items.ItemRegistry;
import forestry.core.items.ItemScoop;
public class ItemRegistryApiculture extends ItemRegistry {
public final ItemBeeGE beeQueenGE;
public final ItemBeeGE beeDroneGE;
public final ItemBeeGE beePrincessGE;
public final ItemBeeGE beeLarvaeGE;
public final ItemHabitatLocator habitatLocator;
public final ItemBeealyzer beealyzer;
public final ItemImprinter imprinter;
public final ItemMinecartBeehouse minecartBeehouse;
public final ItemHiveFrame frameUntreated;
public final ItemHiveFrame frameImpregnated;
public final ItemHiveFrame frameProven;
public final ItemOverlay honeyDrop;
public final ItemPollenCluster pollenCluster;
public final ItemPropolis propolis;
public final ItemForestry honeydew;
public final ItemForestry royalJelly;
public final ItemForestry waxCast;
public final ItemHoneycomb beeComb;
public final ItemArmorApiarist apiaristHat;
public final ItemArmorApiarist apiaristChest;
public final ItemArmorApiarist apiaristLegs;
public final ItemArmorApiarist apiaristBoots;
public final ItemScoop scoop;
public ItemRegistryApiculture() {
// / BEES
beeQueenGE = registerItem(new ItemBeeGE(EnumBeeType.QUEEN), "beeQueenGE");
beeDroneGE = registerItem(new ItemBeeGE(EnumBeeType.DRONE), "beeDroneGE");
beePrincessGE = registerItem(new ItemBeeGE(EnumBeeType.PRINCESS), "beePrincessGE");
beeLarvaeGE = registerItem(new ItemBeeGE(EnumBeeType.LARVAE), "beeLarvaeGE");
beealyzer = registerItem(new ItemBeealyzer(), "beealyzer");
habitatLocator = registerItem(new ItemHabitatLocator(), "habitatLocator");
imprinter = registerItem(new ItemImprinter(), "imprinter");
minecartBeehouse = registerItem(new ItemMinecartBeehouse(), "cart.beehouse");
// / COMB FRAMES
frameUntreated = registerItem(new ItemHiveFrame(80, 0.9f), "frameUntreated");
frameImpregnated = registerItem(new ItemHiveFrame(240, 0.4f), "frameImpregnated");
frameProven = registerItem(new ItemHiveFrame(720, 0.3f), "frameProven");
// / BEE RESOURCES
honeyDrop = registerItem(new ItemOverlay(Tabs.tabApiculture, EnumHoneyDrop.VALUES), "honeyDrop");
OreDictionary.registerOre("dropHoney", honeyDrop);
pollenCluster = registerItem(new ItemPollenCluster(), "pollen");
OreDictionary.registerOre("itemPollen", pollenCluster);
propolis = registerItem(new ItemPropolis(), "propolis");
honeydew = registerItem(new ItemForestry(Tabs.tabApiculture), "honeydew");
OreDictionary.registerOre("dropHoneydew", honeydew);
royalJelly = registerItem(new ItemForestry(Tabs.tabApiculture), "royalJelly");
OreDictionary.registerOre("dropRoyalJelly", royalJelly);
waxCast = registerItem(new ItemWaxCast(), "waxCast");
// / BEE COMBS
beeComb = registerItem(new ItemHoneycomb(), "beeCombs");
OreDictionary.registerOre("beeComb", beeComb.getWildcard());
// / APIARIST'S CLOTHES
apiaristHat = registerItem(new ItemArmorApiarist(0), "apiaristHelmet");
apiaristChest = registerItem(new ItemArmorApiarist(1), "apiaristChest");
apiaristLegs = registerItem(new ItemArmorApiarist(2), "apiaristLegs");
apiaristBoots = registerItem(new ItemArmorApiarist(3), "apiaristBoots");
// TOOLS
scoop = registerItem(new ItemScoop(), "scoop");
scoop.setHarvestLevel("scoop", 3);
}
}
@@ -12,13 +12,14 @@ package forestry.apiculture.items;
import net.minecraft.item.ItemStack;
import forestry.api.core.Tabs;
import forestry.core.items.ICraftingPlan;
import forestry.core.items.ItemForestry;
public class ItemWaxCast extends ItemForestry implements ICraftingPlan {
public ItemWaxCast() {
super();
super(Tabs.tabApiculture);
setMaxStackSize(1);
setMaxDamage(10);
setNoRepair();
@@ -68,7 +68,7 @@ public class AlvearyController extends RectangularMultiblockControllerBase imple
public AlvearyController(World world) {
super(world, AlvearyMultiblockSizeLimits.instance);
this.inventory = new InventoryBeeHousing(9, "Items", getAccessHandler());
this.inventory = new InventoryBeeHousing(9, getAccessHandler());
this.beekeepingLogic = BeeManager.beeRoot.createBeekeepingLogic(this);
this.beeModifiers.add(new AlvearyBeeModifier());
@@ -10,6 +10,10 @@
******************************************************************************/
package forestry.apiculture.multiblock;
import java.io.IOException;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.util.Vec3;
import net.minecraft.world.biome.BiomeGenBase;
@@ -25,23 +29,31 @@ import forestry.api.core.IErrorLogic;
import forestry.api.multiblock.IAlvearyComponent;
import forestry.api.multiblock.IMultiblockController;
import forestry.apiculture.blocks.BlockAlveary;
import forestry.apiculture.gui.ContainerAlveary;
import forestry.apiculture.gui.GuiAlveary;
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 TileAlveary extends MultiblockTileEntityForestry<MultiblockLogicAlveary> implements IBeeHousing, IRestrictedAccess, IAlvearyComponent {
public static final int PLAIN_META = 0;
public static final int ENTRANCE_META = 1;
public static final int SWARMER_META = 2;
public static final int FAN_META = 3;
public static final int HEATER_META = 4;
public static final int HYGRO_META = 5;
public static final int STABILIZER_META = 6;
public static final int SIEVE_META = 7;
public abstract class TileAlveary extends MultiblockTileEntityForestry<MultiblockLogicAlveary> implements IBeeHousing, IAlvearyComponent, IRestrictedAccess, IStreamableGui, ITitled, IClimatised, IHintSource {
private final String unlocalizedTitle;
protected TileAlveary() {
this(BlockAlveary.Type.PLAIN);
}
protected TileAlveary(BlockAlveary.Type type) {
super(new MultiblockLogicAlveary());
this.unlocalizedTitle = "tile.for.alveary." + type.ordinal() + ".name";
}
/* TEXTURES */
@@ -136,4 +148,52 @@ public abstract class TileAlveary extends MultiblockTileEntityForestry<Multibloc
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);
}
@Override
public Object getContainer(EntityPlayer player, int data) {
return new ContainerAlveary(player.inventory, this);
}
}
@@ -16,7 +16,7 @@ import net.minecraftforge.common.util.ForgeDirection;
import forestry.api.core.IClimateControlled;
import forestry.api.multiblock.IAlvearyComponent;
import forestry.apiculture.network.PacketActiveUpdate;
import forestry.apiculture.network.packets.PacketActiveUpdate;
import forestry.core.proxy.Proxies;
import forestry.core.tiles.IActivatable;
import forestry.energy.EnergyManager;
@@ -10,6 +10,7 @@
******************************************************************************/
package forestry.apiculture.multiblock;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.nbt.NBTTagCompound;
@@ -22,6 +23,8 @@ import net.minecraftforge.fluids.IFluidHandler;
import forestry.api.core.IClimateControlled;
import forestry.api.multiblock.IAlvearyComponent;
import forestry.apiculture.blocks.BlockAlveary;
import forestry.apiculture.gui.ContainerAlvearyHygroregulator;
import forestry.apiculture.gui.GuiAlvearyHygroregulator;
import forestry.apiculture.inventory.InventoryHygroregulator;
import forestry.core.config.Constants;
import forestry.core.fluids.FluidHelper;
@@ -29,10 +32,9 @@ import forestry.core.fluids.Fluids;
import forestry.core.fluids.TankManager;
import forestry.core.fluids.tanks.FilteredTank;
import forestry.core.inventory.IInventoryAdapter;
import forestry.core.network.GuiId;
import forestry.core.tiles.ILiquidTankTile;
public class TileAlvearyHygroregulator extends TileAlvearyWithGui implements IInventory, ILiquidTankTile, IFluidHandler, IAlvearyComponent.Climatiser {
public class TileAlvearyHygroregulator extends TileAlveary implements IInventory, ILiquidTankTile, IFluidHandler, IAlvearyComponent.Climatiser {
private final HygroregulatorRecipe[] recipes;
private final TankManager tankManager;
@@ -43,7 +45,7 @@ public class TileAlvearyHygroregulator extends TileAlvearyWithGui implements IIn
private int transferTime;
public TileAlvearyHygroregulator() {
super(TileAlveary.HYGRO_META, GuiId.HygroregulatorGUI);
super(BlockAlveary.Type.HYGRO);
this.inventory = new InventoryHygroregulator(this);
@@ -178,6 +180,16 @@ public class TileAlvearyHygroregulator extends TileAlvearyWithGui implements IIn
return tankManager.getTankInfo(from);
}
@Override
public Object getGui(EntityPlayer player, int data) {
return new GuiAlvearyHygroregulator(player.inventory, this);
}
@Override
public Object getContainer(EntityPlayer player, int data) {
return new ContainerAlvearyHygroregulator(player.inventory, this);
}
private static class HygroregulatorRecipe {
public final FluidStack liquid;
public final int transferTime;
@@ -10,12 +10,9 @@
******************************************************************************/
package forestry.apiculture.multiblock;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChunkCoordinates;
@@ -23,18 +20,9 @@ import net.minecraftforge.common.util.ForgeDirection;
import cpw.mods.fml.common.Optional;
import forestry.api.core.ForestryAPI;
import forestry.api.multiblock.IMultiblockController;
import forestry.apiculture.blocks.BlockAlveary;
import forestry.apiculture.trigger.ApicultureTriggers;
import forestry.core.config.Config;
import forestry.core.gui.IHintSource;
import forestry.core.inventory.IInventoryAdapter;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.GuiId;
import forestry.core.network.IStreamableGui;
import forestry.core.tiles.IClimatised;
import forestry.core.tiles.ITitled;
import buildcraft.api.statements.IStatementContainer;
import buildcraft.api.statements.ITriggerExternal;
@@ -42,7 +30,7 @@ import buildcraft.api.statements.ITriggerInternal;
import buildcraft.api.statements.ITriggerProvider;
@Optional.Interface(iface = "buildcraft.api.statements.ITriggerProvider", modid = "BuildCraftAPI|statements")
public class TileAlvearyPlain extends TileAlveary implements IClimatised, IHintSource, ITitled, ITriggerProvider, IStreamableGui {
public class TileAlvearyPlain extends TileAlveary implements ITriggerProvider {
@Override
public void onMachineAssembled(IMultiblockController multiblockController, ChunkCoordinates minCoord, ChunkCoordinates maxCoord) {
@@ -52,7 +40,7 @@ public class TileAlvearyPlain extends TileAlveary implements IClimatised, IHintS
// set alveary entrance block meta
if (yCoord == maxCoord.posY) {
if ((xCoord > minCoord.posX && xCoord < maxCoord.posX) || (zCoord > minCoord.posZ && zCoord < maxCoord.posZ)) {
this.worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, TileAlveary.ENTRANCE_META, 2);
this.worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, BlockAlveary.Type.ENTRANCE.ordinal(), 2);
}
}
}
@@ -64,48 +52,15 @@ public class TileAlvearyPlain extends TileAlveary implements IClimatised, IHintS
if (!worldObj.isRemote) {
// set alveary entrance block meta back to normal
this.worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, TileAlveary.PLAIN_META, 2);
this.worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, BlockAlveary.Type.PLAIN.ordinal(), 2);
}
}
@Override
public IInventoryAdapter getInternalInventory() {
return getMultiblockLogic().getController().getInternalInventory();
}
@Override
public boolean allowsAutomation() {
return true;
}
/* GUI */
@Override
public void openGui(EntityPlayer player) {
player.openGui(ForestryAPI.instance, GuiId.AlvearyGUI.ordinal(), worldObj, xCoord, yCoord, zCoord);
}
/* 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 String getUnlocalizedTitle() {
return "tile.for.alveary.0.name";
}
/* IHintSource */
@Override
public List<String> getHints() {
return Config.hints.get("apiary");
}
/* ITRIGGERPROVIDER */
@Optional.Method(modid = "BuildCraftAPI|statements")
@Override
@@ -121,15 +76,4 @@ public class TileAlvearyPlain extends TileAlveary implements IClimatised, IHintS
res.add(ApicultureTriggers.missingDrone);
return res;
}
/* IClimatised */
@Override
public float getExactTemperature() {
return getMultiblockLogic().getController().getExactTemperature();
}
@Override
public float getExactHumidity() {
return getMultiblockLogic().getController().getExactHumidity();
}
}
@@ -10,6 +10,7 @@
******************************************************************************/
package forestry.apiculture.multiblock;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import forestry.api.apiculture.DefaultBeeListener;
@@ -20,18 +21,19 @@ import forestry.api.genetics.IIndividual;
import forestry.api.genetics.ISpeciesRoot;
import forestry.api.multiblock.IAlvearyComponent;
import forestry.apiculture.blocks.BlockAlveary;
import forestry.apiculture.gui.ContainerAlvearySieve;
import forestry.apiculture.gui.GuiAlvearySieve;
import forestry.apiculture.inventory.InventoryAlvearySieve;
import forestry.core.inventory.IInventoryAdapter;
import forestry.core.inventory.watchers.ISlotPickupWatcher;
import forestry.core.network.GuiId;
public class TileAlvearySieve extends TileAlvearyWithGui implements IAlvearyComponent.BeeListener {
public class TileAlvearySieve extends TileAlveary implements IAlvearyComponent.BeeListener {
private final IBeeListener beeListener;
private final InventoryAlvearySieve inventory;
public TileAlvearySieve() {
super(TileAlveary.SIEVE_META, GuiId.AlvearySieveGUI);
super(BlockAlveary.Type.SIEVE);
this.inventory = new InventoryAlvearySieve(this);
this.beeListener = new AlvearySieveBeeListener(inventory);
}
@@ -58,6 +60,16 @@ public class TileAlvearySieve extends TileAlvearyWithGui implements IAlvearyComp
return BlockAlveary.SIEVE;
}
@Override
public Object getGui(EntityPlayer player, int data) {
return new GuiAlvearySieve(player.inventory, this);
}
@Override
public Object getContainer(EntityPlayer player, int data) {
return new ContainerAlvearySieve(player.inventory, this);
}
static class AlvearySieveBeeListener extends DefaultBeeListener {
private final InventoryAlvearySieve inventory;
@@ -13,6 +13,7 @@ package forestry.apiculture.multiblock;
import java.util.Map.Entry;
import java.util.Stack;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@@ -23,28 +24,28 @@ import forestry.api.apiculture.EnumBeeType;
import forestry.api.apiculture.IBee;
import forestry.api.multiblock.IAlvearyComponent;
import forestry.apiculture.blocks.BlockAlveary;
import forestry.apiculture.gui.ContainerAlvearySwarmer;
import forestry.apiculture.gui.GuiAlvearySwarmer;
import forestry.apiculture.inventory.InventorySwarmer;
import forestry.apiculture.network.PacketActiveUpdate;
import forestry.apiculture.network.packets.PacketActiveUpdate;
import forestry.apiculture.worldgen.Hive;
import forestry.apiculture.worldgen.HiveDecorator;
import forestry.apiculture.worldgen.HiveDescriptionSwarmer;
import forestry.core.access.EnumAccess;
import forestry.core.inventory.IInventoryAdapter;
import forestry.core.inventory.wrappers.IInvSlot;
import forestry.core.inventory.wrappers.InventoryIterator;
import forestry.core.network.GuiId;
import forestry.core.proxy.Proxies;
import forestry.core.tiles.IActivatable;
import forestry.core.utils.ItemStackUtil;
public class TileAlvearySwarmer extends TileAlvearyWithGui implements ISidedInventory, IActivatable, IAlvearyComponent.Active {
public class TileAlvearySwarmer extends TileAlveary implements ISidedInventory, IActivatable, IAlvearyComponent.Active {
private final InventorySwarmer inventory;
private final Stack<ItemStack> pendingSpawns = new Stack<>();
private boolean active;
public TileAlvearySwarmer() {
super(TileAlveary.SWARMER_META, GuiId.AlvearySwarmerGUI);
super(BlockAlveary.Type.SWARMER);
this.inventory = new InventorySwarmer(this);
}
@@ -201,15 +202,6 @@ public class TileAlvearySwarmer extends TileAlvearyWithGui implements ISidedInve
nbttagcompound.setTag("PendingSpawns", nbttaglist);
}
@Override
public void onSwitchAccess(EnumAccess oldAccess, EnumAccess newAccess) {
if (oldAccess == EnumAccess.SHARED || newAccess == EnumAccess.SHARED) {
// pipes connected to this need to update
worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, blockType);
markDirty();
}
}
@Override
public boolean isActive() {
return active;
@@ -227,4 +219,14 @@ public class TileAlvearySwarmer extends TileAlvearyWithGui implements ISidedInve
Proxies.net.sendNetworkPacket(new PacketActiveUpdate(this), worldObj);
}
}
@Override
public Object getGui(EntityPlayer player, int data) {
return new GuiAlvearySwarmer(player.inventory, this);
}
@Override
public Object getContainer(EntityPlayer player, int data) {
return new ContainerAlvearySwarmer(player.inventory, this);
}
}
@@ -1,71 +0,0 @@
/*******************************************************************************
* 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 forestry.apiculture.multiblock;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import forestry.api.core.ForestryAPI;
import forestry.core.access.AccessHandler;
import forestry.core.access.EnumAccess;
import forestry.core.access.IAccessHandler;
import forestry.core.access.IRestrictedAccess;
import forestry.core.network.GuiId;
import forestry.core.tiles.ITitled;
public abstract class TileAlvearyWithGui extends TileAlveary implements ITitled, IRestrictedAccess {
private final AccessHandler accessHandler;
private final String unlocalizedTitle;
private final GuiId guiId;
protected TileAlvearyWithGui(int meta, GuiId guiId) {
this.accessHandler = new AccessHandler(this);
this.unlocalizedTitle = "tile.for.alveary." + meta + ".name";
this.guiId = guiId;
}
@Override
public final IAccessHandler getAccessHandler() {
return accessHandler;
}
@Override
public void onSwitchAccess(EnumAccess oldAccess, EnumAccess newAccess) {
if (oldAccess == EnumAccess.SHARED || newAccess == EnumAccess.SHARED) {
// pipes connected to this need to update
worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, blockType);
markDirty();
}
}
@Override
public void writeToNBT(NBTTagCompound data) {
super.writeToNBT(data);
accessHandler.writeToNBT(data);
}
@Override
public void readFromNBT(NBTTagCompound data) {
super.readFromNBT(data);
accessHandler.readFromNBT(data);
}
@Override
public final String getUnlocalizedTitle() {
return unlocalizedTitle;
}
@Override
public final void openGui(EntityPlayer player) {
player.openGui(ForestryAPI.instance, guiId.ordinal(), worldObj, xCoord, yCoord, zCoord);
}
}
@@ -0,0 +1,34 @@
/*******************************************************************************
* 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 forestry.apiculture.network;
import forestry.apiculture.network.packets.PacketActiveUpdate;
import forestry.apiculture.network.packets.PacketBeeLogicActive;
import forestry.apiculture.network.packets.PacketBeeLogicActiveEntity;
import forestry.apiculture.network.packets.PacketBeeLogicEntityRequest;
import forestry.apiculture.network.packets.PacketCandleUpdate;
import forestry.apiculture.network.packets.PacketHabitatBiomePointer;
import forestry.apiculture.network.packets.PacketImprintSelectionResponse;
import forestry.core.network.PacketRegistry;
public class PacketRegistryApiculture extends PacketRegistry {
@Override
public void registerPackets() {
registerClientPacket(new PacketImprintSelectionResponse());
registerClientPacket(new PacketActiveUpdate());
registerClientPacket(new PacketBeeLogicActive());
registerClientPacket(new PacketBeeLogicActiveEntity());
registerClientPacket(new PacketHabitatBiomePointer());
registerClientPacket(new PacketCandleUpdate());
registerServerPacket(new PacketBeeLogicEntityRequest());
}
}
@@ -8,7 +8,7 @@
* Various Contributors including, but not limited to:
* SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges
******************************************************************************/
package forestry.apiculture.network;
package forestry.apiculture.network.packets;
import java.io.IOException;
@@ -18,8 +18,8 @@ import net.minecraft.tileentity.TileEntity;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.IForestryPacketClient;
import forestry.core.network.PacketCoordinates;
import forestry.core.network.PacketIdClient;
import forestry.core.network.packets.PacketCoordinates;
import forestry.core.proxy.Proxies;
import forestry.core.tiles.IActivatable;
@@ -31,10 +31,15 @@ public class PacketActiveUpdate extends PacketCoordinates implements IForestryPa
}
public PacketActiveUpdate(IActivatable tile) {
super(PacketIdClient.TILE_FORESTRY_ACTIVE, tile.getCoordinates());
super(tile.getCoordinates());
this.active = tile.isActive();
}
@Override
public PacketIdClient getPacketId() {
return PacketIdClient.TILE_FORESTRY_ACTIVE;
}
@Override
protected void writeData(DataOutputStreamForestry data) throws IOException {
super.writeData(data);
@@ -8,7 +8,7 @@
* Various Contributors including, but not limited to:
* SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges
******************************************************************************/
package forestry.apiculture.network;
package forestry.apiculture.network.packets;
import java.io.IOException;
@@ -21,8 +21,8 @@ import forestry.apiculture.BeekeepingLogic;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.IForestryPacketClient;
import forestry.core.network.PacketCoordinates;
import forestry.core.network.PacketIdClient;
import forestry.core.network.packets.PacketCoordinates;
import forestry.core.proxy.Proxies;
public class PacketBeeLogicActive extends PacketCoordinates implements IForestryPacketClient {
@@ -32,10 +32,15 @@ public class PacketBeeLogicActive extends PacketCoordinates implements IForestry
}
public PacketBeeLogicActive(IBeeHousing tile) {
super(PacketIdClient.BEE_LOGIC_ACTIVE, tile.getCoordinates());
super(tile.getCoordinates());
this.beekeepingLogic = (BeekeepingLogic) tile.getBeekeepingLogic();
}
@Override
public PacketIdClient getPacketId() {
return PacketIdClient.BEE_LOGIC_ACTIVE;
}
@Override
protected void writeData(DataOutputStreamForestry data) throws IOException {
super.writeData(data);
@@ -8,7 +8,7 @@
* Various Contributors including, but not limited to:
* SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges
******************************************************************************/
package forestry.apiculture.network;
package forestry.apiculture.network.packets;
import java.io.IOException;
@@ -21,8 +21,8 @@ import forestry.apiculture.BeekeepingLogic;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.IForestryPacketClient;
import forestry.core.network.PacketEntityUpdate;
import forestry.core.network.PacketIdClient;
import forestry.core.network.packets.PacketEntityUpdate;
import forestry.core.proxy.Proxies;
public class PacketBeeLogicActiveEntity extends PacketEntityUpdate implements IForestryPacketClient {
@@ -32,10 +32,15 @@ public class PacketBeeLogicActiveEntity extends PacketEntityUpdate implements IF
}
public PacketBeeLogicActiveEntity(IBeeHousing housing, Entity entity) {
super(PacketIdClient.BEE_LOGIC_ACTIVE_ENTITY, entity);
super(entity);
this.beekeepingLogic = (BeekeepingLogic) housing.getBeekeepingLogic();
}
@Override
public PacketIdClient getPacketId() {
return PacketIdClient.BEE_LOGIC_ACTIVE_ENTITY;
}
@Override
protected void writeData(DataOutputStreamForestry data) throws IOException {
super.writeData(data);
@@ -8,7 +8,7 @@
* Various Contributors including, but not limited to:
* SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges
******************************************************************************/
package forestry.apiculture.network;
package forestry.apiculture.network.packets;
import java.io.IOException;
@@ -19,8 +19,8 @@ import forestry.api.apiculture.IBeeHousing;
import forestry.api.apiculture.IBeekeepingLogic;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.IForestryPacketServer;
import forestry.core.network.PacketEntityUpdate;
import forestry.core.network.PacketIdServer;
import forestry.core.network.packets.PacketEntityUpdate;
public class PacketBeeLogicEntityRequest extends PacketEntityUpdate implements IForestryPacketServer {
@@ -28,7 +28,12 @@ public class PacketBeeLogicEntityRequest extends PacketEntityUpdate implements I
}
public PacketBeeLogicEntityRequest(Entity entity) {
super(PacketIdServer.BEE_LOGIC_ACTIVE_ENTITY_REQUEST, entity);
super(entity);
}
@Override
public PacketIdServer getPacketId() {
return PacketIdServer.BEE_LOGIC_ACTIVE_ENTITY_REQUEST;
}
@Override
@@ -8,7 +8,7 @@
* Various Contributors including, but not limited to:
* SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges
******************************************************************************/
package forestry.apiculture.network;
package forestry.apiculture.network.packets;
import java.io.IOException;
@@ -19,8 +19,8 @@ import forestry.apiculture.tiles.TileCandle;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.IForestryPacketClient;
import forestry.core.network.PacketCoordinates;
import forestry.core.network.PacketIdClient;
import forestry.core.network.packets.PacketCoordinates;
import forestry.core.proxy.Proxies;
public class PacketCandleUpdate extends PacketCoordinates implements IForestryPacketClient {
@@ -32,12 +32,17 @@ public class PacketCandleUpdate extends PacketCoordinates implements IForestryPa
}
public PacketCandleUpdate(TileCandle tileCandle) {
super(PacketIdClient.CANDLE_UPDATE, tileCandle);
super(tileCandle);
colour = tileCandle.getColour();
lit = tileCandle.isLit();
}
@Override
public PacketIdClient getPacketId() {
return PacketIdClient.CANDLE_UPDATE;
}
@Override
public void writeData(DataOutputStreamForestry data) throws IOException {
super.writeData(data);
@@ -8,7 +8,7 @@
* Various Contributors including, but not limited to:
* SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges
******************************************************************************/
package forestry.apiculture.network;
package forestry.apiculture.network.packets;
import java.io.IOException;
@@ -17,8 +17,8 @@ import net.minecraft.util.ChunkCoordinates;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.IForestryPacketClient;
import forestry.core.network.PacketCoordinates;
import forestry.core.network.PacketIdClient;
import forestry.core.network.packets.PacketCoordinates;
import forestry.core.proxy.Proxies;
public class PacketHabitatBiomePointer extends PacketCoordinates implements IForestryPacketClient {
@@ -27,7 +27,12 @@ public class PacketHabitatBiomePointer extends PacketCoordinates implements IFor
}
public PacketHabitatBiomePointer(ChunkCoordinates coordinates) {
super(PacketIdClient.HABITAT_BIOME_POINTER, coordinates);
super(coordinates);
}
@Override
public PacketIdClient getPacketId() {
return PacketIdClient.HABITAT_BIOME_POINTER;
}
@Override
@@ -8,7 +8,7 @@
* Various Contributors including, but not limited to:
* SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges
******************************************************************************/
package forestry.apiculture.network;
package forestry.apiculture.network.packets;
import java.io.IOException;
@@ -18,8 +18,8 @@ import net.minecraft.inventory.Container;
import forestry.apiculture.gui.ContainerImprinter;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.IForestryPacketClient;
import forestry.core.network.PacketGuiSelect;
import forestry.core.network.PacketIdClient;
import forestry.core.network.packets.PacketGuiSelect;
public class PacketImprintSelectionResponse extends PacketGuiSelect implements IForestryPacketClient {
@@ -27,7 +27,12 @@ public class PacketImprintSelectionResponse extends PacketGuiSelect implements I
}
public PacketImprintSelectionResponse(int primaryIndex, int secondaryIndex) {
super(PacketIdClient.IMPRINT_SELECTION_RESPONSE, primaryIndex, secondaryIndex);
super(primaryIndex, secondaryIndex);
}
@Override
public PacketIdClient getPacketId() {
return PacketIdClient.IMPRINT_SELECTION_RESPONSE;
}
@Override
@@ -17,7 +17,6 @@ import cpw.mods.fml.client.registry.RenderingRegistry;
import forestry.apiculture.entities.EntityBee;
import forestry.apiculture.render.RenderBeeEntity;
import forestry.apiculture.render.RenderBeeItem;
import forestry.core.config.ForestryItem;
import forestry.core.render.IBlockRenderer;
import forestry.core.render.RenderAnalyzer;
import forestry.plugins.PluginApiculture;
@@ -29,9 +28,9 @@ public class ProxyApicultureClient extends ProxyApiculture {
if (PluginApiculture.fancyRenderedBees) {
RenderingRegistry.registerEntityRenderingHandler(EntityBee.class, new RenderBeeEntity());
MinecraftForgeClient.registerItemRenderer(ForestryItem.beeDroneGE.item(), new RenderBeeItem());
MinecraftForgeClient.registerItemRenderer(ForestryItem.beePrincessGE.item(), new RenderBeeItem());
MinecraftForgeClient.registerItemRenderer(ForestryItem.beeQueenGE.item(), new RenderBeeItem());
MinecraftForgeClient.registerItemRenderer(PluginApiculture.items.beeDroneGE, new RenderBeeItem());
MinecraftForgeClient.registerItemRenderer(PluginApiculture.items.beePrincessGE, new RenderBeeItem());
MinecraftForgeClient.registerItemRenderer(PluginApiculture.items.beeQueenGE, new RenderBeeItem());
}
}
@@ -16,25 +16,24 @@ import net.minecraft.item.ItemStack;
import forestry.api.apiculture.BeeManager;
import forestry.core.config.Constants;
import forestry.core.config.ForestryBlock;
import forestry.core.inventory.InventoryPlain;
import forestry.core.network.GuiId;
import forestry.core.tiles.TileNaturalistChest;
import forestry.core.tiles.TileUtil;
import forestry.plugins.PluginApiculture;
public class TileApiaristChest extends TileNaturalistChest {
private boolean checkedForLegacyBlock = false;
public TileApiaristChest() {
super(BeeManager.beeRoot, GuiId.ApiaristChestGUI);
super(BeeManager.beeRoot);
}
@Override
protected void updateServerSide() {
if (worldObj != null && !checkedForLegacyBlock) {
Block block = worldObj.getBlock(xCoord, yCoord, zCoord);
if (ForestryBlock.apiculture.isBlockEqual(block)) {
if (PluginApiculture.blocks.apiculture == block) {
migrateFromLegacyBlock();
}
@@ -52,7 +51,7 @@ public class TileApiaristChest extends TileNaturalistChest {
}
worldObj.setBlockToAir(xCoord, yCoord, zCoord);
worldObj.setBlock(xCoord, yCoord, zCoord, ForestryBlock.apicultureChest.block(), Constants.DEFINITION_APIARISTCHEST_META, Constants.FLAG_BLOCK_SYNCH_AND_UPDATE);
worldObj.setBlock(xCoord, yCoord, zCoord, PluginApiculture.blocks.apicultureChest, 0, Constants.FLAG_BLOCK_SYNCH_AND_UPDATE);
TileApiaristChest tile = TileUtil.getTile(worldObj, xCoord, yCoord, zCoord, TileApiaristChest.class);
for (int i = 0; i < getSizeInventory(); i++) {
@@ -16,6 +16,7 @@ import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
@@ -29,10 +30,11 @@ import forestry.api.apiculture.IHiveFrame;
import forestry.apiculture.ApiaryBeeListener;
import forestry.apiculture.ApiaryBeeModifier;
import forestry.apiculture.IApiary;
import forestry.apiculture.gui.ContainerBeeHousing;
import forestry.apiculture.gui.GuiBeeHousing;
import forestry.apiculture.inventory.IApiaryInventory;
import forestry.apiculture.inventory.InventoryApiary;
import forestry.apiculture.trigger.ApicultureTriggers;
import forestry.core.network.GuiId;
import buildcraft.api.statements.ITriggerExternal;
@@ -42,7 +44,7 @@ public class TileApiary extends TileBeeHousingBase implements IApiary {
private final InventoryApiary inventory = new InventoryApiary(getAccessHandler());
public TileApiary() {
super(GuiId.ApiaryGUI, "apiary");
super("apiary");
setInternalInventory(inventory);
}
@@ -84,4 +86,15 @@ public class TileApiary extends TileBeeHousingBase implements IApiary {
res.add(ApicultureTriggers.noFrames);
return res;
}
@Override
public Object getGui(EntityPlayer player, int data) {
ContainerBeeHousing container = new ContainerBeeHousing(player.inventory, this, true);
return new GuiBeeHousing<>(this, container, GuiBeeHousing.Icon.APIARY);
}
@Override
public Object getContainer(EntityPlayer player, int data) {
return new ContainerBeeHousing(player.inventory, this, true);
}
}
@@ -28,7 +28,6 @@ import forestry.api.core.EnumTemperature;
import forestry.apiculture.gui.IGuiBeeHousingInventory;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.GuiId;
import forestry.core.network.IStreamableGui;
import forestry.core.proxy.Proxies;
import forestry.core.tiles.IClimatised;
@@ -41,8 +40,8 @@ public abstract class TileBeeHousingBase extends TileBase implements IBeeHousing
// CLIENT
private int breedingProgressPercent = 0;
protected TileBeeHousingBase(GuiId guiId, String hintKey) {
super(guiId, hintKey);
protected TileBeeHousingBase(String hintKey) {
super(hintKey);
this.beeLogic = BeeManager.beeRoot.createBeekeepingLogic(this);
}
@@ -12,13 +12,16 @@ package forestry.apiculture.tiles;
import java.util.Collections;
import net.minecraft.entity.player.EntityPlayer;
import forestry.api.apiculture.DefaultBeeListener;
import forestry.api.apiculture.IBeeHousingInventory;
import forestry.api.apiculture.IBeeListener;
import forestry.api.apiculture.IBeeModifier;
import forestry.apiculture.BeehouseBeeModifier;
import forestry.apiculture.InventoryBeeHousing;
import forestry.core.network.GuiId;
import forestry.apiculture.gui.ContainerBeeHousing;
import forestry.apiculture.gui.GuiBeeHousing;
public class TileBeehouse extends TileBeeHousingBase {
private static final IBeeModifier beeModifier = new BeehouseBeeModifier();
@@ -27,10 +30,10 @@ public class TileBeehouse extends TileBeeHousingBase {
private final InventoryBeeHousing beeInventory;
public TileBeehouse() {
super(GuiId.BeehouseGUI, "bee.house");
super("bee.house");
this.beeListener = new DefaultBeeListener();
beeInventory = new InventoryBeeHousing(12, "Items", getAccessHandler());
beeInventory = new InventoryBeeHousing(12, getAccessHandler());
beeInventory.disableAutomation();
setInternalInventory(beeInventory);
}
@@ -49,4 +52,15 @@ public class TileBeehouse extends TileBeeHousingBase {
public Iterable<IBeeListener> getBeeListeners() {
return Collections.singleton(beeListener);
}
@Override
public Object getGui(EntityPlayer player, int data) {
ContainerBeeHousing container = new ContainerBeeHousing(player.inventory, this, false);
return new GuiBeeHousing<>(this, container, GuiBeeHousing.Icon.BEE_HOUSE);
}
@Override
public Object getContainer(EntityPlayer player, int data) {
return new ContainerBeeHousing(player.inventory, this, false);
}
}
@@ -14,7 +14,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.Packet;
import net.minecraft.tileentity.TileEntity;
import forestry.apiculture.network.PacketCandleUpdate;
import forestry.apiculture.network.packets.PacketCandleUpdate;
public class TileCandle extends TileEntity {
private int colour;
@@ -17,7 +17,6 @@ import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.gen.structure.StructureBoundingBox;
@@ -39,18 +38,21 @@ import forestry.api.core.EnumHumidity;
import forestry.api.core.EnumTemperature;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IFlower;
import forestry.apiculture.blocks.BlockApicultureType;
import forestry.apiculture.inventory.InventoryApiary;
import forestry.apiculture.tiles.TileApiary;
import forestry.arboriculture.worldgen.BlockTypeLog;
import forestry.arboriculture.worldgen.BlockTypeVanillaStairs;
import forestry.arboriculture.worldgen.BlockTypeWood;
import forestry.arboriculture.worldgen.BlockTypeWoodStairs;
import forestry.core.blocks.BlockCoreType;
import forestry.core.config.Constants;
import forestry.core.config.ForestryBlock;
import forestry.core.config.ForestryItem;
import forestry.core.tiles.TileUtil;
import forestry.core.worldgen.BlockType;
import forestry.core.worldgen.BlockTypeTileForestry;
import forestry.core.worldgen.IBlockType;
import forestry.plugins.PluginApiculture;
import forestry.plugins.PluginCore;
import forestry.plugins.PluginManager;
public class ComponentVillageBeeHouse extends StructureVillagePieces.House1 {
@@ -180,7 +182,7 @@ public class ComponentVillageBeeHouse extends StructureVillagePieces.House1 {
// Escritoire
if (random.nextInt(2) == 0) {
IBlockType escritoireBlock = new BlockTypeTileForestry(ForestryBlock.core, Constants.DEFINITION_ESCRITOIRE_META);
IBlockType escritoireBlock = new BlockTypeTileForestry(PluginCore.blocks.core, BlockCoreType.ESCRITOIRE.ordinal());
escritoireBlock.setDirection(getRotatedDirection(ForgeDirection.EAST));
placeBlockAtCurrentPosition(world, escritoireBlock, 1, 1, 3, structBoundingBox);
}
@@ -283,20 +285,22 @@ public class ComponentVillageBeeHouse extends StructureVillagePieces.House1 {
int yCoord = getYWithOffset(y);
int zCoord = getZWithOffset(x, z);
if (!box.isVecInside(xCoord, yCoord, zCoord) || ForestryBlock.apiculture.isBlockEqual(world, xCoord, yCoord, zCoord)
|| !world.blockExists(xCoord, yCoord - 1, zCoord)) {
if (!box.isVecInside(xCoord, yCoord, zCoord)) {
return;
}
world.setBlock(xCoord, yCoord, zCoord, ForestryBlock.apiculture.block(), Constants.DEFINITION_APIARY_META, Constants.FLAG_BLOCK_SYNCH);
ForestryBlock.apiculture.block().onBlockAdded(world, xCoord, yCoord, zCoord);
TileEntity tile = world.getTileEntity(xCoord, yCoord, zCoord);
if (!(tile instanceof TileApiary)) {
Block block = world.getBlock(xCoord, yCoord, zCoord);
if (PluginApiculture.blocks.apiculture == block || !world.blockExists(xCoord, yCoord - 1, zCoord)) {
return;
}
TileApiary apiary = (TileApiary) tile;
world.setBlock(xCoord, yCoord, zCoord, PluginApiculture.blocks.apiculture, BlockApicultureType.APIARY.ordinal(), Constants.FLAG_BLOCK_SYNCH);
PluginApiculture.blocks.apiculture.onBlockAdded(world, xCoord, yCoord, zCoord);
TileApiary apiary = TileUtil.getTile(world, xCoord, yCoord, zCoord, TileApiary.class);
if (apiary == null) {
return;
}
ItemStack randomVillagePrincess = getRandomVillageBeeStack(world, xCoord, yCoord, zCoord, EnumBeeType.PRINCESS);
apiary.getBeeInventory().setQueen(randomVillagePrincess);
@@ -313,11 +317,11 @@ public class ComponentVillageBeeHouse extends StructureVillagePieces.House1 {
private static ItemStack getRandomFrame(Random random) {
float roll = random.nextFloat();
if (roll < 0.2f) {
return ForestryItem.frameUntreated.getItemStack();
return PluginApiculture.items.frameUntreated.getItemStack();
} else if (roll < 0.4f) {
return ForestryItem.frameImpregnated.getItemStack();
return PluginApiculture.items.frameImpregnated.getItemStack();
} else if (roll < 0.6) {
return ForestryItem.frameProven.getItemStack();
return PluginApiculture.items.frameProven.getItemStack();
} else {
return null;
}
@@ -27,7 +27,7 @@ import forestry.api.core.EnumTemperature;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.EnumTolerance;
import forestry.apiculture.genetics.BeeDefinition;
import forestry.core.config.ForestryBlock;
import forestry.plugins.PluginApiculture;
public enum HiveDescription implements IHiveDescription {
@@ -70,7 +70,7 @@ public enum HiveDescription implements IHiveDescription {
@Override
public Block getBlock() {
return ForestryBlock.beehives.block();
return PluginApiculture.blocks.beehives;
}
@Override
@@ -22,7 +22,7 @@ import forestry.api.apiculture.hives.IHiveGen;
import forestry.api.core.EnumHumidity;
import forestry.api.core.EnumTemperature;
import forestry.apiculture.tiles.TileSwarm;
import forestry.core.config.ForestryBlock;
import forestry.plugins.PluginApiculture;
public class HiveDescriptionSwarmer implements IHiveDescription {
@@ -39,7 +39,7 @@ public class HiveDescriptionSwarmer implements IHiveDescription {
@Override
public Block getBlock() {
return ForestryBlock.beehives.block();
return PluginApiculture.blocks.beehives;
}
@Override
@@ -74,5 +74,4 @@ public class HiveDescriptionSwarmer implements IHiveDescription {
((TileSwarm) tile).setContained(bees);
}
}
}
@@ -1,87 +0,0 @@
/*******************************************************************************
* 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 forestry.arboriculture;
import net.minecraft.client.gui.Gui;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.arboriculture.TreeManager;
import forestry.arboriculture.gui.GuiTreealyzer;
import forestry.arboriculture.inventory.ItemInventoryTreealyzer;
import forestry.core.GuiHandlerBase;
import forestry.core.gui.ContainerAlyzer;
import forestry.core.network.GuiId;
public class GuiHandlerArboriculture extends GuiHandlerBase {
@Override
public Container getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) {
int cleanId = decodeGuiID(id);
if (cleanId >= GuiId.values().length) {
return null;
}
switch (GuiId.values()[cleanId]) {
case ArboristChestGUI:
return this.getNaturalistChestContainer(TreeManager.treeRoot, player, world, x, y, z, decodeGuiData(id));
case TreealyzerGUI:
ItemStack equipped = player.getCurrentEquippedItem();
if (equipped == null) {
return null;
}
return new ContainerAlyzer(new ItemInventoryTreealyzer(player, equipped), player);
default:
return null;
}
}
@SideOnly(Side.CLIENT)
@Override
public Gui getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) {
int cleanId = decodeGuiID(id);
if (cleanId >= GuiId.values().length) {
return null;
}
switch (GuiId.values()[cleanId]) {
case ArboristChestGUI:
return this.getNaturalistChestGui(TreeManager.treeRoot, player, world, x, y, z, decodeGuiData(id));
case TreealyzerGUI:
ItemStack equipped = player.getCurrentEquippedItem();
if (equipped == null) {
return null;
}
return new GuiTreealyzer(player, new ItemInventoryTreealyzer(player, equipped));
default:
return null;
}
}
}
@@ -26,7 +26,7 @@ import forestry.api.arboriculture.ITree;
import forestry.api.arboriculture.ITreeGenome;
import forestry.api.arboriculture.TreeManager;
import forestry.api.genetics.IAllele;
import forestry.core.config.ForestryItem;
import forestry.plugins.PluginArboriculture;
public class VillageHandlerArboriculture implements IVillageTradeHandler {
@@ -39,7 +39,7 @@ public class VillageHandlerArboriculture implements IVillageTradeHandler {
ItemStack randomTreeStack = TreeManager.treeRoot.getMemberStack(randomTree, EnumGermlingType.SAPLING.ordinal());
recipeList.add(new MerchantRecipe(new ItemStack(Items.emerald, 8), randomTreeStack));
recipeList.add(new MerchantRecipe(new ItemStack(Items.emerald, 2), ForestryItem.grafterProven.getItemStack()));
recipeList.add(new MerchantRecipe(new ItemStack(Items.emerald, 2), PluginArboriculture.items.grafterProven.getItemStack()));
EnumWoodType randomWoodType = EnumWoodType.getRandom(random);
ItemStack planks = TreeManager.woodItemAccess.getPlanks(randomWoodType, false);
@@ -0,0 +1,21 @@
/*******************************************************************************
* 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 forestry.arboriculture.blocks;
import forestry.api.core.Tabs;
import forestry.core.blocks.BlockBase;
public class BlockArboriculture extends BlockBase<BlockArboricultureType> {
public BlockArboriculture() {
super(true);
setCreativeTab(Tabs.tabArboriculture);
}
}
@@ -0,0 +1,53 @@
/*******************************************************************************
* 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 forestry.arboriculture.blocks;
import javax.annotation.Nullable;
import forestry.arboriculture.tiles.TileArboristChest;
import forestry.core.blocks.IMachinePropertiesTESR;
import forestry.core.proxy.Proxies;
import forestry.core.render.IBlockRenderer;
import forestry.core.tiles.TileForestry;
public enum BlockArboricultureType implements IMachinePropertiesTESR {
ARBCHEST(TileArboristChest.class, "ArbChest") {
@Override
public IBlockRenderer getRenderer() {
return Proxies.render.getRenderChest("arbchest");
}
};
public static final BlockArboricultureType[] VALUES = values();
private final String teIdent;
private final Class<? extends TileForestry> teClass;
BlockArboricultureType(Class<? extends TileForestry> teClass, String teName) {
this.teIdent = "forestry." + teName;
this.teClass = teClass;
}
@Override
public int getMeta() {
return ordinal();
}
@Override
public String getTeIdent() {
return teIdent;
}
@Override
public Class<? extends TileForestry> getTeClass() {
return teClass;
}
}
@@ -0,0 +1,82 @@
/*******************************************************************************
* 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 forestry.arboriculture.blocks;
import forestry.arboriculture.items.ItemBlockLeaves;
import forestry.arboriculture.items.ItemBlockWood;
import forestry.core.blocks.BlockRegistry;
import forestry.core.items.ItemBlockForestry;
public class BlockRegistryArboriculture extends BlockRegistry {
public final BlockLog logs;
public final BlockPlanks planks;
public final BlockSlab slabs;
public final BlockArbFence fences;
public final BlockArbStairs stairs;
public final BlockLog logsFireproof;
public final BlockPlanks planksFireproof;
public final BlockSlab slabsFireproof;
public final BlockArbFence fencesFireproof;
public final BlockArbStairs stairsFireproof;
public final BlockSapling saplingGE;
public final BlockForestryLeaves leaves;
public final BlockFruitPod pods;
public final BlockArboriculture arboriculture;
public BlockRegistryArboriculture() {
// Wood blocks
logs = registerBlock(new BlockLog(false), ItemBlockWood.class, "logs");
registerOreDictWildcard("logWood", logs);
planks = registerBlock(new BlockPlanks(false), ItemBlockWood.class, "planks");
registerOreDictWildcard("plankWood", planks);
slabs = registerBlock(new BlockSlab(false), ItemBlockWood.class, "slabs");
registerOreDictWildcard("slabWood", slabs);
fences = registerBlock(new BlockArbFence(false), ItemBlockWood.class, "fences");
registerOreDictWildcard("fenceWood", fences);
stairs = registerBlock(new BlockArbStairs(planks, false), ItemBlockWood.class, "stairs");
registerOreDictWildcard("stairWood", stairs);
logsFireproof = registerBlock(new BlockLog(true), ItemBlockWood.class, "logsFireproof");
registerOreDictWildcard("logWood", logsFireproof);
planksFireproof = registerBlock(new BlockPlanks(true), ItemBlockWood.class, "planksFireproof");
registerOreDictWildcard("plankWood", planksFireproof);
slabsFireproof = registerBlock(new BlockSlab(true), ItemBlockWood.class, "slabsFireproof");
registerOreDictWildcard("slabWood", slabsFireproof);
fencesFireproof = registerBlock(new BlockArbFence(true), ItemBlockWood.class, "fencesFireproof");
registerOreDictWildcard("fenceWood", fencesFireproof);
stairsFireproof = registerBlock(new BlockArbStairs(planksFireproof, true), ItemBlockWood.class, "stairsFireproof");
registerOreDictWildcard("stairWood", stairsFireproof);
// Saplings
saplingGE = registerBlock(new BlockSapling(), ItemBlockForestry.class, "saplingGE");
registerOreDictWildcard("treeSapling", saplingGE);
// Leaves
leaves = registerBlock(new BlockForestryLeaves(), ItemBlockLeaves.class, "leaves");
registerOreDictWildcard("treeLeaves", leaves);
// Pods
pods = registerBlock(new BlockFruitPod(), ItemBlockForestry.class, "pods");
// Machines
arboriculture = registerBlock(new BlockArboriculture(), ItemBlockForestry.class, "arboriculture");
}
}
@@ -12,8 +12,6 @@ package forestry.arboriculture.genetics;
import net.minecraft.entity.player.EntityPlayer;
import com.mojang.authlib.GameProfile;
import forestry.api.arboriculture.IArboristTracker;
import forestry.api.arboriculture.TreeManager;
import forestry.api.genetics.IBreedingTracker;
@@ -24,11 +22,7 @@ public class ArboristTracker extends BreedingTracker implements IArboristTracker
/** Required for creation from map storage */
public ArboristTracker(String s) {
this(s, null);
}
public ArboristTracker(String s, GameProfile player) {
super(s, player);
super(s);
}
@Override
@@ -84,7 +84,6 @@ import forestry.arboriculture.worldgen.WorldGenWenge;
import forestry.arboriculture.worldgen.WorldGenWillow;
import forestry.arboriculture.worldgen.WorldGenZebrawood;
import forestry.core.config.Constants;
import forestry.core.config.ForestryBlock;
import forestry.core.genetics.alleles.AlleleBoolean;
import forestry.core.genetics.alleles.AlleleHelper;
import forestry.core.genetics.alleles.AllelePlantType;
@@ -958,8 +957,8 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
// vanilla tree constructor
TreeDefinition(TreeBranchDefinition branch, String speciesName, String binomial, boolean dominant, EnumLeafType leafType, Color primary, Color secondary, int vanillaMeta, ItemStack vanillaWood) {
String uid = "forestry.tree" + this.toString();
String unlocalizedDescription = "for.description.tree" + this.toString();
String uid = "forestry.tree" + this;
String unlocalizedDescription = "for.description.tree" + this;
String unlocalizedName = "for.trees.species." + speciesName;
this.branch = branch;
@@ -974,8 +973,8 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
// forestry tree constructor
TreeDefinition(TreeBranchDefinition branch, String speciesName, String binomial, boolean dominant, EnumLeafType leafType, Color primary, Color secondary, EnumWoodType woodType) {
String uid = "forestry.tree" + this.toString();
String unlocalizedDescription = "for.description.tree" + this.toString();
String uid = "forestry.tree" + this;
String unlocalizedDescription = "for.description.tree" + this;
String unlocalizedName = "for.trees.species." + speciesName;
this.branch = branch;
@@ -1029,12 +1028,13 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
@Override
public void setLeaves(ITreeGenome genome, World world, GameProfile owner, int x, int y, int z, boolean decorative) {
boolean placed = world.setBlock(x, y, z, ForestryBlock.leaves.block(), 0, Constants.FLAG_BLOCK_SYNCH_AND_UPDATE);
boolean placed = world.setBlock(x, y, z, PluginArboriculture.blocks.leaves, 0, Constants.FLAG_BLOCK_SYNCH_AND_UPDATE);
if (!placed) {
return;
}
if (!ForestryBlock.leaves.isBlockEqual(world, x, y, z)) {
Block block = world.getBlock(x, y, z);
if (PluginArboriculture.blocks.leaves != block) {
world.setBlockToAir(x, y, z);
return;
}
@@ -18,6 +18,7 @@ import java.util.List;
import java.util.Locale;
import java.util.Map.Entry;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@@ -52,8 +53,6 @@ import forestry.arboriculture.blocks.BlockFruitPod;
import forestry.arboriculture.tiles.TileFruitPod;
import forestry.arboriculture.tiles.TileSapling;
import forestry.core.config.Constants;
import forestry.core.config.ForestryBlock;
import forestry.core.config.ForestryItem;
import forestry.core.genetics.SpeciesRoot;
import forestry.core.utils.BlockUtil;
import forestry.plugins.PluginArboriculture;
@@ -119,9 +118,11 @@ public class TreeHelper extends SpeciesRoot implements ITreeRoot {
return EnumGermlingType.NONE;
}
if (ForestryItem.sapling.isItemEqual(stack)) {
Item item = stack.getItem();
if (PluginArboriculture.items.sapling == item) {
return EnumGermlingType.SAPLING;
} else if (ForestryItem.pollenFertile.isItemEqual(stack)) {
} else if (PluginArboriculture.items.pollenFertile == item) {
return EnumGermlingType.POLLEN;
}
@@ -169,10 +170,10 @@ public class TreeHelper extends SpeciesRoot implements ITreeRoot {
Item germlingItem;
switch (EnumGermlingType.VALUES[type]) {
case SAPLING:
germlingItem = ForestryItem.sapling.item();
germlingItem = PluginArboriculture.items.sapling;
break;
case POLLEN:
germlingItem = ForestryItem.pollenFertile.item();
germlingItem = PluginArboriculture.items.pollenFertile;
break;
default:
throw new RuntimeException("Cannot instantiate a tree of type " + type);
@@ -191,12 +192,13 @@ public class TreeHelper extends SpeciesRoot implements ITreeRoot {
@Override
public boolean plantSapling(World world, ITree tree, GameProfile owner, int x, int y, int z) {
boolean placed = world.setBlock(x, y, z, ForestryBlock.saplingGE.block(), 0, Constants.FLAG_BLOCK_SYNCH_AND_UPDATE);
boolean placed = world.setBlock(x, y, z, PluginArboriculture.blocks.saplingGE, 0, Constants.FLAG_BLOCK_SYNCH_AND_UPDATE);
if (!placed) {
return false;
}
if (!ForestryBlock.saplingGE.isBlockEqual(world, x, y, z)) {
Block block = world.getBlock(x, y, z);
if (PluginArboriculture.blocks.saplingGE != block) {
return false;
}
@@ -220,12 +222,14 @@ public class TreeHelper extends SpeciesRoot implements ITreeRoot {
if (direction < 0) {
return false;
}
boolean placed = ForestryBlock.pods.setBlock(world, x, y, z, direction);
boolean placed = world.setBlock(x, y, z, PluginArboriculture.blocks.pods, direction, Constants.FLAG_BLOCK_SYNCH_AND_UPDATE);
if (!placed) {
return false;
}
if (!ForestryBlock.pods.isBlockEqual(world, x, y, z)) {
Block block = world.getBlock(x, y, z);
if (PluginArboriculture.blocks.pods != block) {
return false;
}
@@ -268,10 +272,13 @@ public class TreeHelper extends SpeciesRoot implements ITreeRoot {
// Create a tracker if there is none yet.
if (tracker == null) {
tracker = new ArboristTracker(filename, player);
tracker = new ArboristTracker(filename);
world.setItemData(filename, tracker);
}
tracker.setUsername(player);
tracker.setWorld(world);
return tracker;
}
@@ -54,10 +54,6 @@ public class AlleleFruit extends AlleleCategorized implements IAlleleFruit {
fruitCherry = new AlleleFruit("cherry", new FruitProviderRipening("cherry", EnumFruitFamily.PRUNES, ItemFruit.EnumFruit.CHERRY.getStack(), 1.0f).setColours(0xff2e2e, 0xc4d24a).setOverlay("berries"), true),
fruitDates = new AlleleFruit("dates", new FruitProviderPod("dates", EnumFruitFamily.JUNGLE, FruitProviderPod.EnumPodType.DATES, ItemFruit.EnumFruit.DATES.getStack(4))),
fruitPapaya = new AlleleFruit("papaya", new FruitProviderPod("papaya", EnumFruitFamily.JUNGLE, FruitProviderPod.EnumPodType.PAPAYA, ItemFruit.EnumFruit.PAPAYA.getStack())),
// Allele.fruitCoconut = new AlleleFruit("fruitCoconut", new
// FruitProviderPod("coconut", jungle, EnumPodType.COCONUT, new
// ItemStack[] { new ItemStack(
// ForestryItem.fruits, 1, EnumFruit.COCONUT.ordinal()) }));
fruitLemon = new AlleleFruit("lemon", new FruitProviderRipening("lemon", EnumFruitFamily.PRUNES, ItemFruit.EnumFruit.LEMON.getStack(), 1.0f).setColours(0xeeee00, 0x99ff00).setOverlay("citrus"), true),
fruitPlum = new AlleleFruit("plum", new FruitProviderRipening("plum", EnumFruitFamily.PRUNES, ItemFruit.EnumFruit.PLUM.getStack(), 1.0f).setColours(0x663446, 0xeeff1a).setOverlay("plums"), true)
);
@@ -22,7 +22,6 @@ import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.arboriculture.EnumGermlingType;
import forestry.api.arboriculture.EnumTreeChromosome;
import forestry.api.arboriculture.IAlleleTreeSpeciesCustom;
import forestry.api.arboriculture.IGermlingIconProvider;
import forestry.api.arboriculture.ILeafIconProvider;
@@ -34,10 +33,8 @@ import forestry.api.genetics.IClassification;
import forestry.api.genetics.IFruitFamily;
import forestry.core.genetics.alleles.AlleleSpecies;
import forestry.core.render.TextureManager;
import forestry.core.utils.GeneticsUtil;
public class AlleleTreeSpecies extends AlleleSpecies implements IAlleleTreeSpeciesCustom, IIconProvider {
private final ITreeGenerator generator;
private final IGermlingIconProvider germlingIconProvider;
private final ILeafIconProvider leafIconProvider;
@@ -70,12 +67,6 @@ public class AlleleTreeSpecies extends AlleleSpecies implements IAlleleTreeSpeci
return this;
}
/* RESEARCH */
@Override
public int getComplexity() {
return GeneticsUtil.getResearchComplexity(this, EnumTreeChromosome.SPECIES);
}
/* OTHER */
@Override
public EnumPlantType getPlantType() {
@@ -34,13 +34,12 @@ import forestry.api.genetics.IFruitFamily;
import forestry.arboriculture.genetics.TreeGenome;
import forestry.arboriculture.genetics.alleles.AlleleFruit;
import forestry.arboriculture.inventory.ItemInventoryTreealyzer;
import forestry.arboriculture.items.ItemGermlingGE;
import forestry.core.config.ForestryItem;
import forestry.core.genetics.alleles.AlleleBoolean;
import forestry.core.genetics.alleles.AllelePlantType;
import forestry.core.gui.ContainerAlyzer;
import forestry.core.gui.GuiAlyzer;
import forestry.core.utils.StringUtil;
import forestry.plugins.PluginArboriculture;
public class GuiTreealyzer extends GuiAlyzer {
@@ -48,7 +47,7 @@ public class GuiTreealyzer extends GuiAlyzer {
super(TreeManager.treeRoot, player, new ContainerAlyzer(inventory, player), inventory, "gui.treealyzer");
ArrayList<ItemStack> treeList = new ArrayList<>();
((ItemGermlingGE) ForestryItem.sapling.item()).addCreativeItems(treeList, false);
PluginArboriculture.items.sapling.addCreativeItems(treeList, false);
for (ItemStack treeStack : treeList) {
IAlleleTreeSpecies species = TreeGenome.getSpecies(treeStack);
if (species != null) {
@@ -37,7 +37,7 @@ import forestry.arboriculture.genetics.TreeGenome;
import forestry.arboriculture.genetics.pollination.ICheckPollinatable;
import forestry.core.config.Config;
import forestry.core.genetics.ItemGE;
import forestry.core.network.PacketFXSignal;
import forestry.core.network.packets.PacketFXSignal;
import forestry.core.proxy.Proxies;
import forestry.core.render.SpriteSheet;
import forestry.core.utils.BlockUtil;
@@ -49,9 +49,8 @@ public class ItemGermlingGE extends ItemGE implements IVariableFermentable {
private final EnumGermlingType type;
public ItemGermlingGE(EnumGermlingType type) {
super();
super(Tabs.tabArboriculture);
this.type = type;
setCreativeTab(Tabs.tabArboriculture);
}
@Override
@@ -128,12 +127,12 @@ public class ItemGermlingGE extends ItemGE implements IVariableFermentable {
@Override
public int getRenderPasses(int metadata) {
return 2;//type == EnumGermlingType.SAPLING ? 1 : 2;
return 2;
}
@Override
public int getSpriteNumber() {
return type == EnumGermlingType.SAPLING ? SpriteSheet.BLOCKS.getSheetOrdinal() : SpriteSheet.ITEMS.getSheetOrdinal();
return SpriteSheet.BLOCKS.getSheetOrdinal();
}
@Override
@@ -0,0 +1,34 @@
/*******************************************************************************
* 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 forestry.arboriculture.items;
import net.minecraftforge.oredict.OreDictionary;
import forestry.api.arboriculture.EnumGermlingType;
import forestry.core.items.ItemRegistry;
public class ItemRegistryArboriculture extends ItemRegistry {
public final ItemGermlingGE sapling;
public final ItemGermlingGE pollenFertile;
public final ItemTreealyzer treealyzer;
public final ItemGrafter grafter;
public final ItemGrafter grafterProven;
public ItemRegistryArboriculture() {
sapling = registerItem(new ItemGermlingGE(EnumGermlingType.SAPLING), "sapling");
OreDictionary.registerOre("treeSapling", sapling.getWildcard());
pollenFertile = registerItem(new ItemGermlingGE(EnumGermlingType.POLLEN), "pollenFertile");
treealyzer = registerItem(new ItemTreealyzer(), "treealyzer");
grafter = registerItem(new ItemGrafter(4), "grafter");
grafterProven = registerItem(new ItemGrafter(149), "grafterProven");
}
}
@@ -0,0 +1,36 @@
/*******************************************************************************
* 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 forestry.arboriculture.items;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import forestry.api.core.Tabs;
import forestry.arboriculture.gui.GuiTreealyzer;
import forestry.arboriculture.inventory.ItemInventoryTreealyzer;
import forestry.core.gui.ContainerAlyzer;
import forestry.core.items.ItemWithGui;
public class ItemTreealyzer extends ItemWithGui {
public ItemTreealyzer() {
super(Tabs.tabArboriculture);
}
@Override
public Object getGui(EntityPlayer player, ItemStack heldItem, int data) {
return new GuiTreealyzer(player, new ItemInventoryTreealyzer(player, heldItem));
}
@Override
public Object getContainer(EntityPlayer player, ItemStack heldItem, int data) {
return new ContainerAlyzer(new ItemInventoryTreealyzer(player, heldItem), player);
}
}
@@ -0,0 +1,21 @@
/*******************************************************************************
* 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 forestry.arboriculture.network;
import forestry.arboriculture.network.packets.PacketRipeningUpdate;
import forestry.core.network.PacketRegistry;
public class PacketRegistryArboriculture extends PacketRegistry {
@Override
public void registerPackets() {
registerClientPacket(new PacketRipeningUpdate());
}
}
@@ -8,20 +8,21 @@
* Various Contributors including, but not limited to:
* SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges
******************************************************************************/
package forestry.arboriculture.network;
package forestry.arboriculture.network.packets;
import java.io.IOException;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import forestry.arboriculture.network.IRipeningPacketReceiver;
import forestry.arboriculture.tiles.TileFruitPod;
import forestry.arboriculture.tiles.TileLeaves;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.IForestryPacketClient;
import forestry.core.network.PacketCoordinates;
import forestry.core.network.PacketIdClient;
import forestry.core.network.packets.PacketCoordinates;
import forestry.core.proxy.Proxies;
public class PacketRipeningUpdate extends PacketCoordinates implements IForestryPacketClient {
@@ -32,15 +33,20 @@ public class PacketRipeningUpdate extends PacketCoordinates implements IForestry
}
public PacketRipeningUpdate(TileFruitPod fruitPod) {
super(PacketIdClient.RIPENING_UPDATE, fruitPod);
super(fruitPod);
value = fruitPod.getMaturity();
}
public PacketRipeningUpdate(TileLeaves leaves) {
super(PacketIdClient.RIPENING_UPDATE, leaves);
super(leaves);
value = leaves.getFruitColour();
}
@Override
public PacketIdClient getPacketId() {
return PacketIdClient.RIPENING_UPDATE;
}
@Override
public void writeData(DataOutputStreamForestry data) throws IOException {
super.writeData(data);
@@ -10,8 +10,11 @@
******************************************************************************/
package forestry.arboriculture.proxy;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.world.ColorizerFoliage;
import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.client.MinecraftForgeClient;
import cpw.mods.fml.client.registry.RenderingRegistry;
@@ -25,7 +28,6 @@ import forestry.arboriculture.render.RenderPlankItem;
import forestry.arboriculture.render.RenderSaplingBlock;
import forestry.arboriculture.render.RenderSlabItem;
import forestry.arboriculture.render.RenderStairItem;
import forestry.core.config.ForestryBlock;
import forestry.plugins.PluginArboriculture;
public class ProxyArboricultureClient extends ProxyArboriculture {
@@ -39,22 +41,27 @@ public class ProxyArboricultureClient extends ProxyArboriculture {
RenderingRegistry.registerBlockHandler(new RenderLeavesBlock());
RenderingRegistry.registerBlockHandler(new RenderFruitPodBlock());
MinecraftForgeClient.registerItemRenderer(ForestryBlock.logs.item(), new RenderLogItem());
MinecraftForgeClient.registerItemRenderer(ForestryBlock.logsFireproof.item(), new RenderLogItem());
registerItemRenderer(PluginArboriculture.blocks.logs, new RenderLogItem());
registerItemRenderer(PluginArboriculture.blocks.logsFireproof, new RenderLogItem());
MinecraftForgeClient.registerItemRenderer(ForestryBlock.stairs.item(), new RenderStairItem());
MinecraftForgeClient.registerItemRenderer(ForestryBlock.stairsFireproof.item(), new RenderStairItem());
registerItemRenderer(PluginArboriculture.blocks.stairs, new RenderStairItem());
registerItemRenderer(PluginArboriculture.blocks.stairsFireproof, new RenderStairItem());
MinecraftForgeClient.registerItemRenderer(ForestryBlock.planks.item(), new RenderPlankItem());
MinecraftForgeClient.registerItemRenderer(ForestryBlock.planksFireproof.item(), new RenderPlankItem());
registerItemRenderer(PluginArboriculture.blocks.planks, new RenderPlankItem());
registerItemRenderer(PluginArboriculture.blocks.planksFireproof, new RenderPlankItem());
MinecraftForgeClient.registerItemRenderer(ForestryBlock.slabs.item(), new RenderSlabItem());
MinecraftForgeClient.registerItemRenderer(ForestryBlock.slabsFireproof.item(), new RenderSlabItem());
registerItemRenderer(PluginArboriculture.blocks.slabs, new RenderSlabItem());
registerItemRenderer(PluginArboriculture.blocks.slabsFireproof, new RenderSlabItem());
MinecraftForgeClient.registerItemRenderer(ForestryBlock.fences.item(), new RenderFenceItem());
MinecraftForgeClient.registerItemRenderer(ForestryBlock.fencesFireproof.item(), new RenderFenceItem());
registerItemRenderer(PluginArboriculture.blocks.fences, new RenderFenceItem());
registerItemRenderer(PluginArboriculture.blocks.fencesFireproof, new RenderFenceItem());
MinecraftForgeClient.registerItemRenderer(ForestryBlock.leaves.item(), new RenderLeavesItem());
registerItemRenderer(PluginArboriculture.blocks.leaves, new RenderLeavesItem());
}
private static void registerItemRenderer(Block block, IItemRenderer renderer) {
Item item = Item.getItemFromBlock(block);
MinecraftForgeClient.registerItemRenderer(item, renderer);
}
@Override
@@ -15,7 +15,6 @@ import net.minecraft.util.IIcon;
import forestry.api.arboriculture.EnumGermlingType;
import forestry.api.arboriculture.IGermlingIconProvider;
import forestry.core.config.ForestryItem;
import forestry.core.render.TextureManager;
public class IconProviderGermling implements IGermlingIconProvider {
@@ -23,6 +22,7 @@ public class IconProviderGermling implements IGermlingIconProvider {
private final String name;
private IIcon icon;
private IIcon[] pollenIcons;
public IconProviderGermling(String uid) {
this.name = uid.substring("forestry.".length());
@@ -31,12 +31,15 @@ public class IconProviderGermling implements IGermlingIconProvider {
@Override
public void registerIcons(IIconRegister register) {
icon = TextureManager.registerTex(register, "germlings/sapling." + name);
pollenIcons = new IIcon[2];
pollenIcons[0] = TextureManager.registerTex(register, "germlings/pollen.0");
pollenIcons[1] = TextureManager.registerTex(register, "germlings/pollen.1");
}
@Override
public IIcon getIcon(EnumGermlingType type, int renderPass) {
if (type == EnumGermlingType.POLLEN) {
return ForestryItem.pollenCluster.item().getIconFromDamageForRenderPass(0, renderPass);
return pollenIcons[renderPass];
}
return icon;
@@ -16,12 +16,13 @@ import net.minecraft.util.IIcon;
import forestry.api.arboriculture.EnumGermlingType;
import forestry.api.arboriculture.IGermlingIconProvider;
import forestry.core.config.ForestryItem;
import forestry.core.render.TextureManager;
public class IconProviderGermlingVanilla implements IGermlingIconProvider {
private final int vanillaMap;
private IIcon icon;
private IIcon[] pollenIcons;
public IconProviderGermlingVanilla(int vanillaMap) {
this.vanillaMap = vanillaMap;
@@ -30,12 +31,15 @@ public class IconProviderGermlingVanilla implements IGermlingIconProvider {
@Override
public void registerIcons(IIconRegister register) {
icon = Blocks.sapling.getIcon(0, vanillaMap);
pollenIcons = new IIcon[2];
pollenIcons[0] = TextureManager.registerTex(register, "germlings/pollen.0");
pollenIcons[1] = TextureManager.registerTex(register, "germlings/pollen.1");
}
@Override
public IIcon getIcon(EnumGermlingType type, int renderPass) {
if (type == EnumGermlingType.POLLEN) {
return ForestryItem.pollenCluster.item().getIconFromDamageForRenderPass(0, renderPass);
return pollenIcons[renderPass];
}
return icon;
@@ -11,11 +11,10 @@
package forestry.arboriculture.tiles;
import forestry.api.arboriculture.TreeManager;
import forestry.core.network.GuiId;
import forestry.core.tiles.TileNaturalistChest;
public class TileArboristChest extends TileNaturalistChest {
public TileArboristChest() {
super(TreeManager.treeRoot, GuiId.ArboristChestGUI);
super(TreeManager.treeRoot);
}
}
@@ -30,11 +30,11 @@ import forestry.api.genetics.IAllele;
import forestry.api.genetics.IFruitBearer;
import forestry.api.genetics.IFruitFamily;
import forestry.arboriculture.network.IRipeningPacketReceiver;
import forestry.arboriculture.network.PacketRipeningUpdate;
import forestry.arboriculture.network.packets.PacketRipeningUpdate;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.IStreamable;
import forestry.core.network.PacketTileStream;
import forestry.core.network.packets.PacketTileStream;
import forestry.core.proxy.Proxies;
import forestry.core.render.TextureManager;
@@ -54,10 +54,10 @@ import forestry.arboriculture.genetics.Tree;
import forestry.arboriculture.genetics.TreeDefinition;
import forestry.arboriculture.genetics.alleles.AlleleFruit;
import forestry.arboriculture.network.IRipeningPacketReceiver;
import forestry.arboriculture.network.PacketRipeningUpdate;
import forestry.arboriculture.network.packets.PacketRipeningUpdate;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.PacketTileStream;
import forestry.core.network.packets.PacketTileStream;
import forestry.core.proxy.Proxies;
import forestry.core.render.TextureManager;
import forestry.core.utils.ColourUtil;
@@ -30,7 +30,7 @@ import forestry.core.access.IOwnable;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.IStreamable;
import forestry.core.network.PacketTileStream;
import forestry.core.network.packets.PacketTileStream;
import forestry.core.utils.PlayerUtil;
/**
Loaded 100 of 427 files, more files were not shown because too many files have changed in this diff. Show more