@Override public void updateEntity() { // TODO: drain energy if (!this.worldObj.isRemote) { tickSinceLastOperation++; } if (hasPowerForOperation() && isReadyForOperation() && laserSat.isAlive() && !laserSat.getJammed()) { laserSat.performOperation(); storage.setEnergyStored(storage.getEnergyStored() - POWER_PER_OPERATION); tickSinceLastOperation = 0; } if (laserSat.isFinished()) { this.isRunning = false; laserSat.deactivateLaser(); if (!laserSat.getJammed()) { if (mode == MODE.SINGLE) finished = true; if (this.worldObj.getBlockPowerInput(this.xCoord, this.yCoord, this.zCoord) != 0) { if (mode == MODE.LINE_X) { this.laserX += 3; } else if (mode == MODE.LINE_Z) { this.laserZ += 3; } else if (mode == MODE.SPIRAL) { numSteps++; if (radius < numSteps) { numSteps = 0; if (prevDir == ForgeDirection.NORTH) prevDir = ForgeDirection.EAST; else if (prevDir == ForgeDirection.EAST) { prevDir = ForgeDirection.SOUTH; radius++; } else if (prevDir == ForgeDirection.SOUTH) prevDir = ForgeDirection.WEST; else { prevDir = ForgeDirection.NORTH; radius++; } } this.laserX += 3 * prevDir.offsetX; this.laserZ += 3 * prevDir.offsetZ; } } // TODO: unneeded? checkCanRun(); } } }
@Override public void updateEntity() { super.updateEntity(); int stored = storage.getEnergyStored(); if (!worldObj.isRemote) { Light = worldObj.isDaytime() && ((!worldObj.isRaining() && !worldObj.isThundering())) && !worldObj.provider.hasNoSky && worldObj.canBlockSeeTheSky(xCoord, yCoord + 1, zCoord); if (canWork()) { storage.setEnergyStored( stored += this.getSolarLight(this.worldObj, this.xCoord, this.yCoord, this.zCoord)); } } // if (!this.worldObj.provider.hasNoSky) { // // // MinestellarLog.info("Solar Light: " + this.getSolarLight(this.worldObj, this.xCoord, // this.yCoord, this.zCoord)); // storage.setEnergyStored(stored += this.getSolarLight(this.worldObj, this.xCoord, // this.yCoord, this.zCoord)); // } }
@Override public void readFromNBT(NBTTagCompound data) { super.readFromNBT(data); if (data.hasKey("shareRS")) { isRSShared = data.getBoolean("shareRS"); } for (int i = 0; i < 3; i++) { if (data.hasKey("tankCap" + i)) { tanks[i] = new FluidTank(data.getInteger("tankCap" + i)); } if (data.hasKey("Fluid" + i)) { tanks[i].setFluid(FluidStack.loadFluidStackFromNBT(data.getCompoundTag("Fluid" + i))); } if (data.hasKey("rsControl" + i)) rsControl[i] = data.getBoolean("rsControl" + i); if (data.hasKey("rsLatch" + i)) rsLatch[i] = data.getBoolean("rsLatch" + i); } NBTTagList itemList = data.getTagList("items"); for (int i = 0; i < itemList.tagCount(); i++) { NBTTagCompound itemCompound = (NBTTagCompound) itemList.tagAt(i); int slot = itemCompound.getInteger("slot"); inventory.setInventorySlotContents(slot, ItemStack.loadItemStackFromNBT(itemCompound)); } for (int i = 0; i < 6; i++) { if (data.hasKey("side" + i)) { sides[i] = data.getInteger("side" + i); } if (data.hasKey("config" + i)) { configs[i] = new SideConfig(); configs[i].readFromNBT(data.getCompoundTag("config" + i)); } if (data.hasKey("rs" + i)) { sideRS[i] = data.getBoolean("rs" + i); } if (data.hasKey("lock" + i)) { sideLocked[i] = data.getBoolean("lock" + i); } if (data.hasKey("facID" + i)) { facID[i] = data.getInteger("facID" + i); } if (data.hasKey("facMeta" + i)) { facMeta[i] = data.getInteger("facMeta" + i); } } itemList = data.getTagList("sideItems"); for (int i = 0; i < itemList.tagCount(); i++) { NBTTagCompound itemCompound = (NBTTagCompound) itemList.tagAt(i); int slot = itemCompound.getInteger("slot"); sideInventory.setInventorySlotContents(slot, ItemStack.loadItemStackFromNBT(itemCompound)); } capacitor.readFromNBT(data); int power = capacitor.getEnergyStored(); if (data.hasKey("powerCap2")) this.setMaxEnergyStored((int) data.getInteger("powerCap2")); if (data.hasKey("realPower")) power = data.getInteger("realPower"); capacitor.setEnergyStored(power); }
/** * DO NOT USE UNLESS YOU HAVE NO OTHER OPTION!!! * * @param amt amount to set energy to */ public void setEnergy(int amt) { storage.setEnergyStored(amt); }