From 7305ba719930ea3fbf8aa987aeec48b33cdbd82e Mon Sep 17 00:00:00 2001 From: Foghrye4 Date: Tue, 21 Mar 2017 17:34:07 +0300 Subject: Oregen --- ihl/enviroment/LightBulbTileEntity.java | 361 +++++++++++++------------------- 1 file changed, 149 insertions(+), 212 deletions(-) (limited to 'ihl/enviroment/LightBulbTileEntity.java') diff --git a/ihl/enviroment/LightBulbTileEntity.java b/ihl/enviroment/LightBulbTileEntity.java index c82bc57..283a72f 100644 --- a/ihl/enviroment/LightBulbTileEntity.java +++ b/ihl/enviroment/LightBulbTileEntity.java @@ -3,7 +3,6 @@ package ihl.enviroment; import java.util.List; import java.util.Vector; -import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -20,229 +19,176 @@ import ic2.core.IC2; import ic2.core.ITickCallback; import ihl.utils.IHLUtils; -public class LightBulbTileEntity extends TileEntity implements IEnergySink, IWrenchable, INetworkDataProvider -{ - private boolean active = false; - private short facing = 0; - public boolean prevActive = false; - public short prevFacing = 0; - private double maxEnergy=1.1d; +public class LightBulbTileEntity extends TileEntity implements IEnergySink, IWrenchable, INetworkDataProvider { + private boolean active = false; + private short facing = 0; + public boolean prevActive = false; + public short prevFacing = 0; private double energy; - public boolean addedToEnergyNet = false; + public boolean addedToEnergyNet = false; private boolean loaded = false; private int ticker; - @Override - public void readFromNBT(NBTTagCompound nbttagcompound) - { - super.readFromNBT(nbttagcompound); - this.energy = nbttagcompound.getDouble("energy"); - this.facing = nbttagcompound.getShort("facing"); - } + @Override + public void readFromNBT(NBTTagCompound nbttagcompound) { + super.readFromNBT(nbttagcompound); + this.energy = nbttagcompound.getDouble("energy"); + this.facing = nbttagcompound.getShort("facing"); + } - @Override - public void writeToNBT(NBTTagCompound nbttagcompound) - { - super.writeToNBT(nbttagcompound); - nbttagcompound.setDouble("energy", this.energy); - nbttagcompound.setShort("facing", this.facing); - } + @Override + public void writeToNBT(NBTTagCompound nbttagcompound) { + super.writeToNBT(nbttagcompound); + nbttagcompound.setDouble("energy", this.energy); + nbttagcompound.setShort("facing", this.facing); + } - /** - * validates a tile entity - */ - @Override - public void validate() - { - super.validate(); - IC2.tickHandler.addSingleTickCallback(this.worldObj, new ITickCallback() - { - @SuppressWarnings("unchecked") + /** + * validates a tile entity + */ + @Override + public void validate() { + super.validate(); + IC2.tickHandler.addSingleTickCallback(this.worldObj, new ITickCallback() { + @SuppressWarnings("unchecked") @Override - public void tickCallback(World world) - { - if (!LightBulbTileEntity.this.isInvalid() && world.blockExists(LightBulbTileEntity.this.xCoord, LightBulbTileEntity.this.yCoord, LightBulbTileEntity.this.zCoord)) - { - LightBulbTileEntity.this.onLoaded(); + public void tickCallback(World world) { + if (!LightBulbTileEntity.this.isInvalid() && world.blockExists(LightBulbTileEntity.this.xCoord, + LightBulbTileEntity.this.yCoord, LightBulbTileEntity.this.zCoord)) { + LightBulbTileEntity.this.onLoaded(); + + if (LightBulbTileEntity.this.enableUpdateEntity()) { + world.loadedTileEntityList.add(LightBulbTileEntity.this); + } + } + } + }); + } - if (LightBulbTileEntity.this.enableUpdateEntity()) - { - world.loadedTileEntityList.add(LightBulbTileEntity.this); - } - } - } - }); - } + /** + * invalidates a tile entity + */ + @Override + public void invalidate() { + super.invalidate(); + if (this.loaded) { + this.onUnloaded(); + } + } - /** - * invalidates a tile entity - */ - @Override - public void invalidate() - { - super.invalidate(); - if (this.loaded) - { - this.onUnloaded(); - } - } + @Override + public void onChunkUnload() { + super.onChunkUnload(); + if (this.loaded) { + this.onUnloaded(); + } + } - @Override - public void onChunkUnload() - { - super.onChunkUnload(); - if (this.loaded) - { - this.onUnloaded(); - } - } + public void onLoaded() { + if (IC2.platform.isSimulating() && !this.addedToEnergyNet) { + MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this)); + this.addedToEnergyNet = true; + } + this.loaded = true; + } - public void onLoaded() - { - if (IC2.platform.isSimulating() && !this.addedToEnergyNet) - { - MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this)); - this.addedToEnergyNet = true; - } - this.loaded = true; - } + public void onUnloaded() { + if (IC2.platform.isSimulating()) { + if (this.addedToEnergyNet) { + MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this)); + this.addedToEnergyNet = false; + } + this.active = false; + this.updateLightState(true); + } + } - public void onUnloaded() - { - if (IC2.platform.isSimulating()) - { - if(this.addedToEnergyNet) - { - MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this)); - this.addedToEnergyNet = false; - } - this.active=false; - this.updateLightState(); - } - } + @Override + public final boolean canUpdate() { + return false; + } - @Override - public final boolean canUpdate() - { - return false; - } - - @Override - public void updateEntity() - { - if(++this.ticker % 4 == 0) - { - if(this.prevFacing != facing) - { + @Override + public void updateEntity() { + if (++this.ticker % 4 == 0) { + if (this.prevFacing != facing) { this.setFacing(facing); } - if(this.energy>0) - { + if (this.energy > 0) { this.energy--; - this.setActive(this.energy>0); - } - else - { + this.setActive(true); + } else { this.setActive(false); } } - } - - protected void updateLightState() - { - int x,y,z; - int xyz[] = {0,0,1,0,0,-1,0,0}; - Block block; - for(int i=0;i<=5;i++) - { - x=xCoord+xyz[i]; - y=yCoord+xyz[i+1]; - z=zCoord+xyz[i+2]; - block = this.worldObj.getBlock(x,y,z); - if(block.isAir(this.worldObj, x,y,z)) - { - if(this.getActive()) - { - worldObj.setBlock(x, y, z, LightBulbBlock.glowningAir); - } - if(!this.getActive()) - { - worldObj.setBlockToAir(x, y, z); - } - } + } + + protected void updateLightState(boolean spreadDarkness) { + if (IC2.platform.isSimulating()) { + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); } } - - public boolean enableUpdateEntity() - { - return IC2.platform.isSimulating(); - } - + + public boolean enableUpdateEntity() { + return IC2.platform.isSimulating(); + } + @Override - public boolean acceptsEnergyFrom(TileEntity emitter, - ForgeDirection direction) { - switch(direction) - { + public boolean acceptsEnergyFrom(TileEntity emitter, ForgeDirection direction) { + switch (direction) { case UP: - return this.getFacing()==0; + return this.getFacing() == 0; case DOWN: - return this.getFacing()==1; + return this.getFacing() == 1; case SOUTH: - return this.getFacing()==2; + return this.getFacing() == 2; case NORTH: - return this.getFacing()==3; + return this.getFacing() == 3; case EAST: - return this.getFacing()==4; + return this.getFacing() == 4; case WEST: - return this.getFacing()==5; + return this.getFacing() == 5; default: return false; } } @Override - public boolean wrenchCanSetFacing(EntityPlayer entityPlayer, int side) - { + public boolean wrenchCanSetFacing(EntityPlayer entityPlayer, int side) { return false; } @Override public short getFacing() { - return this.facing; + return this.facing; } @Override - public void setFacing(short facing1) - { - if (IC2.platform.isSimulating()&&this.addedToEnergyNet) - { - MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this)); - this.addedToEnergyNet = false; - } - this.facing=facing1; - if(IC2.platform.isSimulating()) - { - if (this.prevFacing != facing) - { - IC2.network.get().updateTileEntityField(this, "facing"); - } + public void setFacing(short facing1) { + if (IC2.platform.isSimulating() && this.addedToEnergyNet) { + MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this)); + this.addedToEnergyNet = false; + } + this.facing = facing1; + if (IC2.platform.isSimulating()) { + if (this.prevFacing != facing) { + IC2.network.get().updateTileEntityField(this, "facing"); + } } this.prevFacing = facing; - if (IC2.platform.isSimulating()&&!this.addedToEnergyNet) - { - MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this)); - this.addedToEnergyNet = true; - } + if (IC2.platform.isSimulating() && !this.addedToEnergyNet) { + MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this)); + this.addedToEnergyNet = true; + } + } + + @Override + public List getNetworkedFields() { + Vector ret = new Vector(2); + ret.add("active"); + ret.add("facing"); + return ret; } - - @Override - public List getNetworkedFields() - { - Vector ret = new Vector(2); - ret.add("active"); - ret.add("facing"); - return ret; - } @Override public boolean wrenchCanRemove(EntityPlayer entityPlayer) { @@ -260,9 +206,11 @@ public class LightBulbTileEntity extends TileEntity implements IEnergySink, IWre } @Override - public double getDemandedEnergy() - { - return this.maxEnergy-this.energy; + public double getDemandedEnergy() { + if (energy > 10d) { + return 0d; + } + return Integer.MAX_VALUE; } @Override @@ -271,38 +219,27 @@ public class LightBulbTileEntity extends TileEntity implements IEnergySink, IWre } @Override - public double injectEnergy(ForgeDirection directionFrom, double amount, double voltage) - { - if (this.energy >= this.maxEnergy) - { - return amount; - } - else - { - this.energy += amount; - return 0.0D; - } + public double injectEnergy(ForgeDirection directionFrom, double amount, double voltage) { + this.energy += amount; + return 0.0D; } - public boolean getActive() - { - return this.active; - } + public boolean getActive() { + return this.active; + } - public void setActive(boolean active1) - { - this.active = active1; + public void setActive(boolean active1) { + this.active = active1; - if (this.prevActive != active1) - { - IC2.network.get().updateTileEntityField(this, "active"); - updateLightState(); - } - this.prevActive = active1; - } - public void setActiveWithoutNotify(boolean active1) - { - this.active = active1; - this.prevActive = active1; - } + if (this.prevActive != active1) { + IC2.network.get().updateTileEntityField(this, "active"); + updateLightState(!active1); + } + this.prevActive = active1; + } + + public void setActiveWithoutNotify(boolean active1) { + this.active = active1; + this.prevActive = active1; + } } -- cgit v1.2.3