Jump to content

pokeyletsplays

Members
  • Posts

    61
  • Joined

  • Last visited

Everything posted by pokeyletsplays

  1. Hello recently i have been messing with mobs but i have a few questions. how do i check if a mob does damage to another mob? how do i check when a player does damage to a mob and what the player is holding when said damage was dealt.
  2. hey guys i have a wind turbine that creates power by taking its height but the problem isnt the turbines power the problem is taking the turbines power (a non static float) and adding it to another blocks power (a non static float) every time i try to do this it tells me i need to change the modifier of the block i am giving power to to static turbine tileEntity the connect method is were this happens package Mine_EE_GUI; import Mine_EE.Mine_EE; import Mine_EE_Blocks.TileEntityCable; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.network.INetworkManager; import net.minecraft.network.packet.Packet; import net.minecraft.network.packet.Packet132TileEntityData; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; public class TileEntityTurbine extends TileEntity implements IInventory { public float power; public float MAX; public float LOW; public ForgeDirection[] connect = new ForgeDirection[6]; TileEntityCable C; public ItemStack[] inventory; public TileEntityTurbine() { inventory = new ItemStack[2]; MAX = 100; LOW = 0; } private int item; @Override public void updateEntity() { if(worldObj.getHeightValue(xCoord, zCoord) >= 64 && !worldObj.isRemote && this.power < MAX && this.worldObj.canBlockSeeTheSky(this.xCoord, this.yCoord + 1, this.zCoord)) { this.addpower(worldObj.getHeightValue(xCoord, zCoord) - 63); } else if(worldObj.getHeightValue(xCoord, zCoord) >= 64 && !worldObj.isRemote && worldObj.isRaining() && this.power < MAX && worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord) && this.worldObj.canBlockSeeTheSky(this.xCoord, this.yCoord + 1, this.zCoord)) { this.addpower(worldObj.getHeightValue(xCoord, zCoord) + 4); } connect(); if(this.power > MAX){ power = MAX; } if(this.power < LOW){ power = LOW; } } private void connect() { if(this.isCable(xCoord, yCoord-1, zCoord) && this.power > 10 && TileEntityCable.power < 10) { TileEntityCable.power = TileEntityCable.power + 10; this.power = power - 10; } } private boolean isCable(int x, int y, int z) { return this.worldObj.getBlockTileEntity(x, y, z) instanceof TileEntityCable; } public int GetPowerScaled(int scale) { return (int) (this.power * scale / MAX); } @Override public int getSizeInventory() { return inventory.length; } @Override public ItemStack getStackInSlot(int i) { return inventory[i]; } @Override public ItemStack decrStackSize(int slot, int count) { ItemStack itemstack = getStackInSlot(slot); if(itemstack != null) { if(itemstack.stackSize <= count) { setInventorySlotContents(slot, null); } else { itemstack = itemstack.splitStack(count); onInventoryChanged(); } } return itemstack; } @Override public ItemStack getStackInSlotOnClosing(int slot) { ItemStack itemstack = getStackInSlot(slot); setInventorySlotContents(slot, null); return itemstack; } @Override public void setInventorySlotContents(int slot, ItemStack itemstack) { inventory[slot] = itemstack; this.recipes(slot, itemstack); if(itemstack != null && itemstack.stackSize > getInventoryStackLimit()) { itemstack.stackSize = getInventoryStackLimit(); } onInventoryChanged(); } private void recipes(int slot, ItemStack itemstack) { inventory[slot] = itemstack; ItemStack slot0 = getStackInSlot(0); ItemStack slot1 = getStackInSlot(1); if(power < MAX){ if(slot0 != null && slot0.itemID == Item.redstone.itemID && power < MAX) { removestack(slot,itemstack); addpower(2 * slot0.stackSize); onInventoryChanged(); } } } public void removestack(int slot, ItemStack itemstack) { setInventorySlotContents(slot, null); } public void addpower(int mpw) { power = this.power + mpw; if(this.power <= 0) { power = LOW; } if(this.power >= MAX) { power = MAX; } } @Override public String getInvName() { return "Again a Test Gui"; } @Override public boolean isInvNameLocalized() { return true; } @Override public int getInventoryStackLimit() { return 64; } @Override public boolean isUseableByPlayer(EntityPlayer player) { if(player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64) { this.updateEntity(); return true; } else { return false; } } @Override public void openChest() { } @Override public void closeChest() { } @Override public boolean isItemValidForSlot(int i, ItemStack itemstack) { return false; } public boolean canExtractItem(int s, ItemStack item, int side) { if(side == 0 && s == 0 && item.getItemDamage() == 0) { return true; } if(side == 0 && s == 1 && item.getItemDamage() == item.getMaxDamage()) { return true; } return side != 0 || s != 1; } @Override public void writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); if(this.power > 1000) this.power = 1000; compound.setFloat("power", this.power); NBTTagList list = new NBTTagList(); for(int i = 0; i < getSizeInventory(); i++) { ItemStack itemstack = getStackInSlot(i); if(itemstack != null) { NBTTagCompound item = new NBTTagCompound(); item.setByte("SlotDeployer", (byte) i); itemstack.writeToNBT(item); list.appendTag(item); } } compound.setTag("ItemsDeployer", list); } @Override public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); if(this.power < 0) this.power = 0; this.power = compound.getFloat("power"); NBTTagList list = compound.getTagList("ItemsDeployer"); for(int i = 0; i < list.tagCount(); i++) { NBTTagCompound item = (NBTTagCompound) list.tagAt(i); int slot = item.getByte("SlotDeployer"); if(slot >= 0 && slot < getSizeInventory()) { setInventorySlotContents(slot, ItemStack.loadItemStackFromNBT(item)); } } } @Override public Packet getDescriptionPacket() { Packet132TileEntityData packet = (Packet132TileEntityData) super.getDescriptionPacket(); NBTTagCompound tag = packet != null ? packet.data : new NBTTagCompound(); writeToNBT(tag); return new Packet132TileEntityData(xCoord, yCoord, zCoord, 1, tag); } @Override public void onDataPacket(INetworkManager net, Packet132TileEntityData pkt) { super.onDataPacket(net, pkt); NBTTagCompound tag = pkt.data; readFromNBT(tag); } } CableTileEntity package Mine_EE_Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; import Mine_EE_GUI.TileEntityElectricTable; import Mine_EE_GUI.TileEntitySolar; import Mine_EE_GUI.TileEntityTurbine; public class TileEntityCable extends TileEntity { public ForgeDirection[] connect = new ForgeDirection[6]; public float power; public float MAX = 10; public float LOW = 0; public boolean powered = false; TileEntitySolar solar; TileEntityTurbine turbine; TileEntityElectricTable table; public TileEntityCable() { } public void updateEntity() { if(power > MAX)power= MAX; if(power < LOW)power= LOW; this.Connect(); } public void Connect() { if(this.isTurbine(xCoord, yCoord+1, zCoord) && this.power < 10) { this.power = power + 10; } if(this.isCable(xCoord, yCoord+1, zCoord) || this.isTable(xCoord, yCoord+1, zCoord) || this.isTurbine(xCoord, yCoord+1, zCoord)|| this.isSolar(xCoord, yCoord+1, zCoord)) { connect[0] = ForgeDirection.UP; }else {connect[0] = null;} if(this.isCable(xCoord, yCoord-1, zCoord) || this.isTable(xCoord, yCoord-1, zCoord) || this.isTurbine(xCoord, yCoord-1, zCoord)|| this.isSolar(xCoord, yCoord-1, zCoord)) { connect[1] = ForgeDirection.DOWN; }else {connect[1] = null;} if(this.isCable(xCoord, yCoord, zCoord-1) ||this.isTable(xCoord, yCoord, zCoord-1) || this.isTurbine(xCoord, yCoord, zCoord-1)|| this.isSolar(xCoord, yCoord, zCoord-1)) { connect[2] = ForgeDirection.NORTH; }else {connect[2] = null;} if(this.isCable(xCoord+1, yCoord, zCoord) || this.isTable(xCoord+1, yCoord, zCoord) || this.isTurbine(xCoord+1, yCoord, zCoord)|| this.isSolar(xCoord+1, yCoord, zCoord)) { connect[3] = ForgeDirection.EAST; }else {connect[3] = null;} if(this.isCable(xCoord, yCoord, zCoord+1) || this.isTable(xCoord, yCoord, zCoord+1) || this.isTurbine(xCoord, yCoord, zCoord+1)|| this.isSolar(xCoord, yCoord, zCoord+1)) { connect[4] = ForgeDirection.SOUTH; }else {connect[4] = null;} if(this.isCable(xCoord-1, yCoord, zCoord) ||this.isTable(xCoord-1, yCoord, zCoord) ||this.isTurbine(xCoord-1, yCoord, zCoord)||this.isSolar(xCoord-1, yCoord, zCoord)) { connect[5] = ForgeDirection.WEST; }else {connect[5] = null;} } public boolean isCable(int x, int y, int z) { return this.worldObj.getBlockTileEntity(x, y, z) instanceof TileEntityCable; } public boolean isTable(int x, int y, int z) { return this.worldObj.getBlockTileEntity(x, y, z) instanceof TileEntityElectricTable && worldObj.getBlockMetadata(x, y, z) != 0; } public boolean isTurbine(int x, int y, int z) { return this.worldObj.getBlockTileEntity(x, y, z) instanceof TileEntityTurbine; } public boolean isSolar(int x, int y, int z) { return this.worldObj.getBlockTileEntity(x, y, z) instanceof TileEntitySolar; } @Override public void writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); if(this.power > 10) this.power = 10; compound.setFloat("power", this.power); compound.setBoolean("powered", this.powered); } @Override public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); if(this.power < 0) this.power = 0; this.power = compound.getFloat("power"); this.powered = compound.getBoolean("powered"); } }
  3. i have something that may help Block.blocksList[78] = null; Block snow = (new BlockSnow1(78)).setHardness(0.1F).setStepSound(Block.soundSnowFootstep).setUnlocalizedName("snow").setLightOpacity(0).setTextureName("snow"); /* At last we have to register it. */ GameRegistry.registerBlock(snow, "Snow"); LanguageRegistry.addName(snow, "Snow"); that code sets the vanilla block snow to null and adds your own block in its place
  4. thats good i now have that code but the issue i have now is the progress bar in the gui isn't updating untill i reload the world
  5. yes i am aware but whenever i tried to do it in the tileentitys UpdateEntity method i could not get it to get the time of day and when i did get it to get the time of day the client and server were not synced
  6. Hey guys i am having yet another issue with my power bar you see i want my solar panel to gain power when its daytime and using the blocks updatetick method this is possible but when the block gives the tileentity power the power bar doesn't update untill i reload the world any ideas? here is my code Block TileEntity Container Gui
  7. Thank you so much that helped allot now i can work on more important things such as transferring power ect...
  8. that code should work. here is what i do EntityRegistry.addSpawn(Entity_Feral_Zombie.class, 2, 1, 2, EnumCreatureType.monster, new BiomeGenBase[] {BiomeGenBase.swampland, BiomeGenBase.jungle, BiomeGenBase.plains, BiomeGenBase.forest,BiomeGenBase.desert,BiomeGenBase.desertHills,BiomeGenBase.extremeHills,BiomeGenBase.frozenOcean,BiomeGenBase.jungle,BiomeGenBase.mushroomIsland});
  9. i do not have github so i will post the container and guihandler container handler
  10. i add power from recipes and i call recipes from getstackinslot oh and what may be usefull is my block code
  11. i removed the max and low floats entirely and changed them with there numbers and it still wont save the bar here is a image in game when i fill up the turbine with power and here is a image of the same exact turbine when i reload the world note that in chat the power is printed out as mpw's
  12. I already have the writenbt and readnbt methods in my TileEntity class and it works fine the power saves,the items in the slots save but the bar doesn't save
  13. hey guys this is my first time posting on these forums so i dont really know how things work so bare with me if there is some bbcode messups so basically i made a windmill and this windmill works Almost Perfect the only issue is when i go into the game it doesn't save its power's progress bar, it saves the power but not the progress bar here is my tileentity and gui code the main thing you want to look at is the "getpowerscaled" method in both classes TileEntity GUI the bar works but when i leave the game and reopen it it doesn't save the state
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.