mirror of
https://github.com/GTNewHorizons/MagicBees.git
synced 2026-11-13 16:54:08 +00:00
Merge branch 'master' into Blood-Frames
This commit is contained in:
13 files changed
+642
-25
No files matched your search
@@ -0,0 +1,17 @@
|
||||
package magicbees.client.gui;
|
||||
|
||||
import magicbees.itemInventories.InventoryBeeRing;
|
||||
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import forestry.core.gui.ContainerItemInventory;
|
||||
|
||||
public class ContainerEffectRing extends ContainerItemInventory<InventoryBeeRing> {
|
||||
|
||||
public ContainerEffectRing(InventoryBeeRing inventory, InventoryPlayer playerInventory) {
|
||||
super(inventory, playerInventory, 8, 74);
|
||||
addSlotToContainer(
|
||||
new SlotCustomItems(inventory, 0, 80, 22, GameRegistry.findItemStack("Forestry", "beeDroneGE", 1)));
|
||||
}
|
||||
}
|
||||
@@ -19,10 +19,6 @@ public class GUIEffectJar extends GuiContainer {
|
||||
private static final int WIDTH = 176;
|
||||
private static final int HEIGHT = 156;
|
||||
|
||||
private static final int SLOT_JAR_X = 80;
|
||||
private static final int SLOT_JAR_Y = 22;
|
||||
private static final int SLOT_INVENTORY_X = 8;
|
||||
private static final int SLOT_INVENTORY_Y = 74;
|
||||
private static final int BAR_DEST_X = 117;
|
||||
private static final int BAR_DEST_Y = 10;
|
||||
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
package magicbees.client.gui;
|
||||
|
||||
import magicbees.itemInventories.InventoryBeeRing;
|
||||
import magicbees.main.CommonProxy;
|
||||
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import forestry.core.gui.GuiForestry;
|
||||
|
||||
public class GUIEffectRing extends GuiForestry<ContainerEffectRing, IInventory> {
|
||||
|
||||
public static final String BACKGROUND_FILE = "ringScreen.png";
|
||||
public static final ResourceLocation BACKGROUND_LOCATION = new ResourceLocation(
|
||||
CommonProxy.DOMAIN,
|
||||
CommonProxy.GUI_TEXTURE + BACKGROUND_FILE);
|
||||
|
||||
private static final int BAR_DEST_X = 117;
|
||||
private static final int BAR_DEST_Y = 10;
|
||||
|
||||
private static final int BAR_SRC_X = 176;
|
||||
private static final int BAR_SRC_Y = 0;
|
||||
|
||||
private static final int BAR_WIDTH = 10;
|
||||
private static final int BAR_HEIGHT = 40;
|
||||
|
||||
private final InventoryBeeRing inventoryBeeRing;
|
||||
|
||||
protected GUIEffectRing(InventoryBeeRing inventory, InventoryPlayer playerInventory) {
|
||||
super(BACKGROUND_LOCATION, new ContainerEffectRing(inventory, playerInventory), inventory);
|
||||
this.inventoryBeeRing = inventory;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) {
|
||||
super.drawGuiContainerBackgroundLayer(f, mouseX, mouseY);
|
||||
|
||||
GL11.glColor4f(1f, 1f, 1f, 1f);
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_SRC_ALPHA);
|
||||
this.mc.getTextureManager().bindTexture(BACKGROUND_LOCATION);
|
||||
|
||||
this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, xSize, ySize);
|
||||
|
||||
int currentBeeColour = this.inventoryBeeRing.getCurrentBeeColour();
|
||||
float r = ((currentBeeColour >> 16) & 255) / 255f;
|
||||
float g = ((currentBeeColour >> 8) & 255) / 255f;
|
||||
float b = (currentBeeColour & 255) / 255f;
|
||||
|
||||
GL11.glColor3f(r, g, b);
|
||||
|
||||
int value = BAR_HEIGHT - (this.inventoryBeeRing.getCurrentBeeHealth() * BAR_HEIGHT) / 100;
|
||||
this.drawTexturedModalRect(
|
||||
this.guiLeft + BAR_DEST_X,
|
||||
this.guiTop + value + BAR_DEST_Y,
|
||||
BAR_SRC_X,
|
||||
BAR_SRC_Y,
|
||||
BAR_WIDTH,
|
||||
BAR_HEIGHT - value);
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,8 @@
|
||||
package magicbees.client.gui;
|
||||
|
||||
import magicbees.itemInventories.InventoryBeeRing;
|
||||
import magicbees.tileentity.TileEntityEffectJar;
|
||||
import magicbees.tileentity.TileEntityMagicApiary;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
@@ -18,6 +21,8 @@ public class GUIHandler implements IGuiHandler {
|
||||
} else if (ID == UIScreens.THAUMIC_APIARY.ordinal()) {
|
||||
TileEntityMagicApiary tileEntityThaumicApiary = (TileEntityMagicApiary) world.getTileEntity(x, y, z);
|
||||
value = new ContainerMagicApiary(player.inventory, tileEntityThaumicApiary);
|
||||
} else if (ID == UIScreens.EFFECT_RING.ordinal()) {
|
||||
value = new ContainerEffectRing(new InventoryBeeRing(player.getHeldItem(), player), player.inventory);
|
||||
}
|
||||
|
||||
return value;
|
||||
@@ -30,8 +35,9 @@ public class GUIHandler implements IGuiHandler {
|
||||
} else if (ID == UIScreens.THAUMIC_APIARY.ordinal()) {
|
||||
TileEntityMagicApiary tileEntityThaumicApiary = (TileEntityMagicApiary) world.getTileEntity(x, y, z);
|
||||
return new GuiMagicApiary(player.inventory, tileEntityThaumicApiary);
|
||||
} else {
|
||||
return null;
|
||||
} else if (ID == UIScreens.EFFECT_RING.ordinal()) {
|
||||
return new GUIEffectRing(new InventoryBeeRing(player.getHeldItem(), player), player.inventory);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -2,5 +2,6 @@ package magicbees.client.gui;
|
||||
|
||||
public enum UIScreens {
|
||||
EFFECT_JAR,
|
||||
THAUMIC_APIARY,;
|
||||
THAUMIC_APIARY,
|
||||
EFFECT_RING
|
||||
}
|
||||
@@ -0,0 +1,195 @@
|
||||
package magicbees.item;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import magicbees.bees.BeeManager;
|
||||
import magicbees.client.gui.UIScreens;
|
||||
import magicbees.itemInventories.InventoryBeeRing;
|
||||
import magicbees.main.CommonProxy;
|
||||
import magicbees.main.MagicBees;
|
||||
import magicbees.main.utils.TabMagicBees;
|
||||
import magicbees.tileentity.RingHousing;
|
||||
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import baubles.api.BaubleType;
|
||||
import baubles.api.IBauble;
|
||||
import baubles.common.container.InventoryBaubles;
|
||||
import baubles.common.lib.PlayerHandler;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import forestry.api.apiculture.IBee;
|
||||
import forestry.api.genetics.IEffectData;
|
||||
|
||||
public class ItemBeeRing extends Item implements IBauble {
|
||||
|
||||
private static final Map<UUID, IEffectData[][]> PLAYER_EFFECTS = new HashMap<>();
|
||||
|
||||
public ItemBeeRing() {
|
||||
super();
|
||||
this.setMaxStackSize(1);
|
||||
this.setNoRepair();
|
||||
this.setMaxDamage(0);
|
||||
this.setTextureName(CommonProxy.DOMAIN + ":beeRing");
|
||||
this.setCreativeTab(TabMagicBees.tabMagicBees);
|
||||
this.setUnlocalizedName("beeRing");
|
||||
GameRegistry.registerItem(this, "beeRing");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) {
|
||||
if (!world.isRemote) {
|
||||
if (player.isSneaking()) {
|
||||
InventoryBaubles baubles = PlayerHandler.getPlayerBaubles(player);
|
||||
for (int i = 0; i < baubles.getSizeInventory(); i++) {
|
||||
if (baubles.isItemValidForSlot(i, itemStack)) {
|
||||
ItemStack stackInSlot = baubles.getStackInSlot(i);
|
||||
if (stackInSlot == null) {
|
||||
baubles.setInventorySlotContents(i, itemStack.copy());
|
||||
if (!player.capabilities.isCreativeMode)
|
||||
player.inventory.setInventorySlotContents(player.inventory.currentItem, null);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
player.openGui(
|
||||
MagicBees.object,
|
||||
UIScreens.EFFECT_RING.ordinal(),
|
||||
world,
|
||||
(int) player.posX,
|
||||
(int) player.posY,
|
||||
(int) player.posZ);
|
||||
}
|
||||
}
|
||||
return itemStack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaubleType getBaubleType(ItemStack itemStack) {
|
||||
return BaubleType.RING;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWornTick(ItemStack itemStack, EntityLivingBase entityLivingBase) {
|
||||
if (entityLivingBase.worldObj.getWorldTime() % 20 == 0) {
|
||||
if (!(entityLivingBase instanceof EntityPlayer)) {
|
||||
return;
|
||||
}
|
||||
|
||||
EntityPlayer player = (EntityPlayer) entityLivingBase;
|
||||
InventoryBeeRing inventoryBeeRing = new InventoryBeeRing(itemStack, player);
|
||||
|
||||
if (inventoryBeeRing.hasQueen()) {
|
||||
tickQueen(player, inventoryBeeRing);
|
||||
} else if (inventoryBeeRing.hasDrone()) {
|
||||
createQueenFromDrone(inventoryBeeRing);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void createQueenFromDrone(InventoryBeeRing inventoryBeeRing) {
|
||||
ItemStack droneStack = inventoryBeeRing.getDrone();
|
||||
if (BeeManager.beeRoot.isDrone(droneStack)) {
|
||||
IBee bee = BeeManager.beeRoot.getMember(droneStack);
|
||||
if (droneStack.stackSize == 1) {
|
||||
inventoryBeeRing.setDrone(null);
|
||||
} else {
|
||||
droneStack.stackSize--;
|
||||
inventoryBeeRing.setDrone(droneStack);
|
||||
}
|
||||
|
||||
ItemStack queenStack = droneStack.copy();
|
||||
queenStack.stackSize = 1;
|
||||
inventoryBeeRing.setQueen(queenStack);
|
||||
|
||||
int beeHealth = bee.getHealth();
|
||||
int maxBeeHealth = bee.getMaxHealth();
|
||||
inventoryBeeRing.setCurrentBeeHealth((beeHealth * 100) / maxBeeHealth);
|
||||
inventoryBeeRing.setCurrentBeeColour(bee.getGenome().getPrimary().getIconColour(0));
|
||||
}
|
||||
}
|
||||
|
||||
private void tickQueen(EntityPlayer player, InventoryBeeRing inventoryBeeRing) {
|
||||
ItemStack queenStack = inventoryBeeRing.getQueen();
|
||||
IBee queen = BeeManager.beeRoot.getMember(queenStack);
|
||||
|
||||
inventoryBeeRing.setCurrentBeeHealth((queen.getHealth() * 100) / queen.getMaxHealth());
|
||||
inventoryBeeRing.setCurrentBeeColour(queen.getGenome().getPrimary().getIconColour(0));
|
||||
|
||||
IEffectData[][] effects = getPlayerEffects(player);
|
||||
int index = inventoryBeeRing.getRingSlotIndex();
|
||||
RingHousing housingLogic = new RingHousing(player, inventoryBeeRing);
|
||||
effects[index] = queen.doEffect(effects[index], housingLogic);
|
||||
|
||||
try {
|
||||
effects[index][0].setInteger(0, effects[index][0].getInteger(index) + 20);
|
||||
effects[index][1].setInteger(0, effects[index][1].getInteger(index) + 20);
|
||||
} catch (Exception ignored) {}
|
||||
|
||||
if (player.worldObj.isRemote && player.worldObj.getWorldTime() % 5 == 0) {
|
||||
effects[index] = queen.doFX(effects[index], housingLogic);
|
||||
}
|
||||
setPlayerEffects(player, effects);
|
||||
|
||||
int throttle = inventoryBeeRing.getThrottle();
|
||||
if (throttle > 550) {
|
||||
inventoryBeeRing.setThrottle(0);
|
||||
queen.age(player.worldObj, 0.26f);
|
||||
|
||||
if (queen.getHealth() == 0) {
|
||||
inventoryBeeRing.setQueen(null);
|
||||
inventoryBeeRing.setCurrentBeeHealth(0);
|
||||
inventoryBeeRing.setCurrentBeeColour(0x0ffffff);
|
||||
} else {
|
||||
queen.writeToNBT(queenStack.getTagCompound());
|
||||
inventoryBeeRing.setQueen(queenStack);
|
||||
}
|
||||
} else {
|
||||
inventoryBeeRing.setThrottle(throttle + 20);
|
||||
}
|
||||
}
|
||||
|
||||
private static IEffectData[][] getPlayerEffects(EntityPlayer player) {
|
||||
UUID id = player.getUniqueID();
|
||||
return PLAYER_EFFECTS.containsKey(id) ? PLAYER_EFFECTS.get(id)
|
||||
: new IEffectData[][] { new IEffectData[2], new IEffectData[2] };
|
||||
}
|
||||
|
||||
private static void setPlayerEffects(EntityPlayer player, IEffectData[][] effects) {
|
||||
PLAYER_EFFECTS.put(player.getUniqueID(), effects);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEquipped(ItemStack itemStack, EntityLivingBase entityLivingBase) {
|
||||
if (entityLivingBase instanceof EntityPlayer) {
|
||||
EntityPlayer player = (EntityPlayer) entityLivingBase;
|
||||
InventoryBeeRing inventoryBeeRing = new InventoryBeeRing(itemStack, player);
|
||||
InventoryBaubles baubles = PlayerHandler.getPlayerBaubles(player);
|
||||
for (int i = 0; i < baubles.getSizeInventory(); i++) {
|
||||
if (baubles.getStackInSlot(i) == itemStack) {
|
||||
inventoryBeeRing.setRingSlotIndex(i == 1 ? 0 : 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUnequipped(ItemStack itemStack, EntityLivingBase entityLivingBase) {}
|
||||
|
||||
@Override
|
||||
public boolean canEquip(ItemStack itemStack, EntityLivingBase entityLivingBase) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canUnequip(ItemStack itemStack, EntityLivingBase entityLivingBase) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
package magicbees.itemInventories;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
import forestry.core.inventory.ItemInventory;
|
||||
|
||||
public class InventoryBeeRing extends ItemInventory {
|
||||
|
||||
private static final String KEY_SLOT_INDEX = "SlotIndex";
|
||||
private static final String KEY_HEALTH = "Health";
|
||||
private static final String KEY_THROTTLE = "Throttle";
|
||||
private static final String KEY_COLOUR = "Colour";
|
||||
|
||||
private static final int DRONE_SLOT = 0;
|
||||
private static final int QUEEN_SLOT = 1;
|
||||
|
||||
private int ringSlotIndex;
|
||||
private int currentBeeHealth;
|
||||
private int currentBeeColour;
|
||||
private int throttle;
|
||||
|
||||
public InventoryBeeRing(ItemStack stack, EntityPlayer player) {
|
||||
super(player, 2, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound compound) {
|
||||
if (compound == null) {
|
||||
compound = new NBTTagCompound();
|
||||
getParent().setTagCompound(compound);
|
||||
}
|
||||
|
||||
super.readFromNBT(compound);
|
||||
if (compound.hasKey(KEY_SLOT_INDEX)) {
|
||||
this.ringSlotIndex = compound.getInteger(KEY_SLOT_INDEX);
|
||||
}
|
||||
if (compound.hasKey(KEY_HEALTH)) {
|
||||
this.currentBeeHealth = compound.getInteger(KEY_HEALTH);
|
||||
}
|
||||
if (compound.hasKey(KEY_COLOUR)) {
|
||||
this.currentBeeColour = compound.getInteger(KEY_COLOUR);
|
||||
}
|
||||
if (compound.hasKey(KEY_THROTTLE)) {
|
||||
this.throttle = compound.getInteger(KEY_THROTTLE);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean hasDrone() {
|
||||
return this.getStackInSlot(DRONE_SLOT) != null;
|
||||
}
|
||||
|
||||
public ItemStack getDrone() {
|
||||
return this.getStackInSlot(DRONE_SLOT);
|
||||
}
|
||||
|
||||
public void setDrone(ItemStack droneStack) {
|
||||
this.setInventorySlotContents(DRONE_SLOT, droneStack);
|
||||
}
|
||||
|
||||
public boolean hasQueen() {
|
||||
return this.getStackInSlot(QUEEN_SLOT) != null;
|
||||
}
|
||||
|
||||
public ItemStack getQueen() {
|
||||
return this.getStackInSlot(QUEEN_SLOT);
|
||||
}
|
||||
|
||||
public void setQueen(ItemStack queenStack) {
|
||||
this.setInventorySlotContents(QUEEN_SLOT, queenStack);
|
||||
}
|
||||
|
||||
public int getRingSlotIndex() {
|
||||
return this.ringSlotIndex;
|
||||
}
|
||||
|
||||
public void setRingSlotIndex(int ringSlotIndex) {
|
||||
this.ringSlotIndex = ringSlotIndex;
|
||||
getParent().getTagCompound().setInteger(KEY_SLOT_INDEX, this.ringSlotIndex);
|
||||
}
|
||||
|
||||
public int getCurrentBeeHealth() {
|
||||
return this.currentBeeHealth;
|
||||
}
|
||||
|
||||
public void setCurrentBeeHealth(int health) {
|
||||
this.currentBeeHealth = health;
|
||||
getParent().getTagCompound().setInteger(KEY_HEALTH, this.currentBeeHealth);
|
||||
}
|
||||
|
||||
public int getCurrentBeeColour() {
|
||||
return this.currentBeeColour;
|
||||
}
|
||||
|
||||
public void setCurrentBeeColour(int colour) {
|
||||
this.currentBeeColour = colour;
|
||||
getParent().getTagCompound().setInteger(KEY_COLOUR, this.currentBeeColour);
|
||||
}
|
||||
|
||||
public int getThrottle() {
|
||||
return this.throttle;
|
||||
}
|
||||
|
||||
public void setThrottle(int throttle) {
|
||||
this.throttle = throttle;
|
||||
getParent().getTagCompound().setInteger(KEY_THROTTLE, this.throttle);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getInventoryName() {
|
||||
return "beeRingInventory";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCustomInventoryName() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -27,24 +27,7 @@ import magicbees.block.BlockMagicApiary;
|
||||
import magicbees.block.BlockManaAuraProvider;
|
||||
import magicbees.block.BlockVisAuraProvider;
|
||||
import magicbees.block.types.HiveType;
|
||||
import magicbees.item.ItemCapsule;
|
||||
import magicbees.item.ItemComb;
|
||||
import magicbees.item.ItemDrop;
|
||||
import magicbees.item.ItemMagicHive;
|
||||
import magicbees.item.ItemMagicHiveFrame;
|
||||
import magicbees.item.ItemManasteelGrafter;
|
||||
import magicbees.item.ItemManasteelScoop;
|
||||
import magicbees.item.ItemMiscResources;
|
||||
import magicbees.item.ItemMoonDial;
|
||||
import magicbees.item.ItemMysteriousMagnet;
|
||||
import magicbees.item.ItemNugget;
|
||||
import magicbees.item.ItemPollen;
|
||||
import magicbees.item.ItemPropolis;
|
||||
import magicbees.item.ItemThaumiumGrafter;
|
||||
import magicbees.item.ItemThaumiumScoop;
|
||||
import magicbees.item.ItemVoidGrafter;
|
||||
import magicbees.item.ItemVoidScoop;
|
||||
import magicbees.item.ItemWax;
|
||||
import magicbees.item.*;
|
||||
import magicbees.item.types.CapsuleType;
|
||||
import magicbees.item.types.HiveFrameType;
|
||||
import magicbees.item.types.NuggetType;
|
||||
@@ -127,6 +110,7 @@ public class Config {
|
||||
public static ItemNugget nuggets;
|
||||
public static ItemMoonDial moonDial;
|
||||
public static ItemMysteriousMagnet magnet;
|
||||
public static ItemBeeRing beeRing;
|
||||
|
||||
public static Item voidScoop;
|
||||
public static Item voidGrafter;
|
||||
@@ -198,6 +182,8 @@ public class Config {
|
||||
miscResources = new ItemMiscResources();
|
||||
pollen = new ItemPollen();
|
||||
moonDial = new ItemMoonDial();
|
||||
beeRing = new ItemBeeRing();
|
||||
|
||||
setupJellyBaby();
|
||||
setupNuggets();
|
||||
setupMysteriousMagnet();
|
||||
|
||||
@@ -0,0 +1,232 @@
|
||||
package magicbees.tileentity;
|
||||
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import magicbees.bees.BeeManager;
|
||||
import magicbees.itemInventories.InventoryBeeRing;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ChunkCoordinates;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.mojang.authlib.GameProfile;
|
||||
|
||||
import forestry.api.apiculture.*;
|
||||
import forestry.api.core.EnumHumidity;
|
||||
import forestry.api.core.EnumTemperature;
|
||||
import forestry.api.core.IErrorLogic;
|
||||
import forestry.api.core.IErrorState;
|
||||
|
||||
// Class that simulates a BeeHouse using both player data and info from InventoryBeeRing
|
||||
public class RingHousing implements IBeeHousing {
|
||||
|
||||
private final EntityPlayer player;
|
||||
private final BiomeGenBase biome;
|
||||
private final IBeeHousingInventory inventory;
|
||||
private final IBeekeepingLogic beekeepingLogic;
|
||||
|
||||
private static final IErrorLogic errorLogic = new RingHousing.RingErrorLogic();
|
||||
private static final Iterable<IBeeListener> beeListeners = ImmutableSet.of(new DefaultBeeListener());
|
||||
private static final Iterable<IBeeModifier> beeModifiers = ImmutableSet.of(new RingHousing.RingHousingModifier());
|
||||
|
||||
public RingHousing(EntityPlayer player, InventoryBeeRing inventoryBeeRing) {
|
||||
this.player = player;
|
||||
this.biome = player.getEntityWorld().getBiomeGenForCoords((int) player.posX, (int) player.posY);
|
||||
this.inventory = new RingBeeHousingInventory(inventoryBeeRing);
|
||||
this.beekeepingLogic = BeeManager.beeRoot.createBeekeepingLogic(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<IBeeModifier> getBeeModifiers() {
|
||||
return beeModifiers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<IBeeListener> getBeeListeners() {
|
||||
return beeListeners;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBeeHousingInventory getBeeInventory() {
|
||||
return inventory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBeekeepingLogic getBeekeepingLogic() {
|
||||
return beekeepingLogic;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBlockLightValue() {
|
||||
return player.getEntityWorld()
|
||||
.getBlockLightValue((int) player.posX, ((int) player.posY) + 1, (int) player.posZ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canBlockSeeTheSky() {
|
||||
return player.getEntityWorld().canBlockSeeTheSky((int) player.posX, (int) player.posY, (int) player.posZ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public World getWorld() {
|
||||
return player.getEntityWorld();
|
||||
}
|
||||
|
||||
@Override
|
||||
public GameProfile getOwner() {
|
||||
return player.getGameProfile();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vec3 getBeeFXCoordinates() {
|
||||
return Vec3.createVectorHelper(player.posX, player.posY + 0.5, player.posZ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BiomeGenBase getBiome() {
|
||||
return this.biome;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumTemperature getTemperature() {
|
||||
return EnumTemperature.getFromBiome(biome, (int) player.posX, (int) player.posY, (int) player.posZ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumHumidity getHumidity() {
|
||||
return EnumHumidity.getFromValue(biome.rainfall);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IErrorLogic getErrorLogic() {
|
||||
return errorLogic;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChunkCoordinates getCoordinates() {
|
||||
return player.getPlayerCoordinates();
|
||||
}
|
||||
|
||||
private static class RingBeeHousingInventory implements IBeeHousingInventory {
|
||||
|
||||
private final InventoryBeeRing inventoryBeeRing;
|
||||
|
||||
public RingBeeHousingInventory(InventoryBeeRing IBR) {
|
||||
this.inventoryBeeRing = IBR;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getQueen() {
|
||||
return inventoryBeeRing.getQueen();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getDrone() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setQueen(ItemStack itemStack) {
|
||||
inventoryBeeRing.setQueen(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDrone(ItemStack itemstack) {}
|
||||
|
||||
@Override
|
||||
public boolean addProduct(ItemStack product, boolean all) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static class RingErrorLogic implements IErrorLogic {
|
||||
|
||||
@Override
|
||||
public boolean setCondition(boolean condition, IErrorState errorState) {
|
||||
return condition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean contains(IErrorState state) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasErrors() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearErrors() {}
|
||||
|
||||
@Override
|
||||
public void writeData(DataOutputStream data) throws IOException {}
|
||||
|
||||
@Override
|
||||
public void readData(DataInputStream data) throws IOException {}
|
||||
|
||||
@Override
|
||||
public ImmutableSet<IErrorState> getErrorStates() {
|
||||
return ImmutableSet.of();
|
||||
}
|
||||
}
|
||||
|
||||
private static class RingHousingModifier implements IBeeModifier {
|
||||
|
||||
@Override
|
||||
public float getTerritoryModifier(IBeeGenome genome, float currentModifier) {
|
||||
return 0.9f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getMutationModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier) {
|
||||
return 0f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getLifespanModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier) {
|
||||
return 0f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getProductionModifier(IBeeGenome genome, float currentModifier) {
|
||||
return 0f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getFloweringModifier(IBeeGenome genome, float currentModifier) {
|
||||
return 0f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getGeneticDecay(IBeeGenome genome, float currentModifier) {
|
||||
return 0f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSealed() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSelfLighted() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSunlightSimulated() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isHellish() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user