Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 01/17/18 in all areas

  1. https://github.com/leosavi25/Modding/blob/master/src/main/java/com/leosavi25/mod/FactoryCraft.java#L32-L33 ADD SMELTING FOR MY ITEMS. CREATE MY ITEMS. THIS IS DEFINITELY THE RIGHT ORDER.
    1 point
  2. Oh it definitely is. Especially when it changes because "I forgot to call Blocks.Init()" and we have no idea what those snippets even look like now.
    1 point
  3. Always. Post. Your. Code.
    1 point
  4. #AlwaysShowYourCode
    1 point
  5. This was the part I was interested in. But after reading your post again I think I understood and replaced everything with the get methods in my update method. I'm getting it to work with the classes now as well. If your's breaks again, try replacing the world member with the getWorld method too. Thanks for keeping on this, I had to write almost a hundred recipe files today so I haven't had time to dig more on it. lol It didn't occur to me to look at the members being referenced in the functions.
    1 point
  6. I know the names of block and tile entity class is a bit odd. And my use of variables could be less. It will be changed. Block: public class JdwBlockBitumen extends Block implements IHasModel, ITileEntityProvider{ public JdwBlockBitumen(String name, Material material) { super(material); setUnlocalizedName(name); setRegistryName(name); setCreativeTab(CreativeTabs.MISC); setHarvestLevel("pick_axe", 1); } @Override public boolean hasTileEntity(IBlockState state) { return true; } @Override public TileEntity createNewTileEntity(final World worldIn, int meta) { return new JdwOSDigger(); } @Override public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { } @Override public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { if (!worldIn.isRemote ) { final JdwOSDigger tileEntity = (JdwOSDigger) worldIn.getTileEntity(pos); if(tileEntity != null) { tileEntity.toggleActive(); } } return true; } @Override public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) { } @Override public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { super.breakBlock(worldIn, pos, state); } //registers model @Override public void registerModels() { DerpWorld.proxy.registerItemRenderer(Item.getItemFromBlock(this), 0, "inventory"); } } Tile Entity: public class JdwOSDigger extends TileEntity implements ITickable{ private boolean aktivitas; private List<BlockPos> AREA = new ArrayList<BlockPos>(); private int radi; private int index; private int tickCounter; public JdwOSDigger() { radi = 0; index = 0; tickCounter = 0; aktivitas = false; } public void toggleActive() { if (aktivitas) { aktivitas = false; System.out.println("Activated: " + aktivitas + ", Is valid?: " + !this.isInvalid()); } else { aktivitas = true; System.out.println("Activated: " + aktivitas + " , Is valid? " + !this.isInvalid()); mapQuarry(6, this.getPos()); //here is where I call the Tile Entity pos } } public void mapQuarry (int radi, BlockPos pos) { List<BlockPos> l = new ArrayList<BlockPos>(); int[] squares = new int[radi]; BlockPos qC = null; int bx, by, bz = 0; for(int k = 0; k<4; k++) { switch(k){ case 0: qC = pos.add(radi+1, 0, radi+1); break; case 1: qC = pos.add(-(radi+1), 0, radi+1); break; case 2: qC = pos.add(radi+1, 0, -(radi+1)); break; case 3: qC = pos.add(-(radi+1), 0, -(radi+1)); break; } for(int e = 0; e<radi/2; e++) { for(int i = -radi+e; i <= radi-e; i++) { for (int j = -radi+e; j<=radi-e; j++) { bx = qC.getX() + i; bz = qC.getZ() + j; by = qC.getY() - 1 - e; BlockPos pos2 = new BlockPos( bx , by, bz ); l.add(pos2); } } } } AREA.addAll(l); System.out.println("map quarry finished, Testing AREA[4] : " + AREA.get(4)); } public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); aktivitas = compound.getBoolean("hore"); tickCounter = compound.getInteger("kuse"); index = compound.getInteger("lespe"); } public NBTTagCompound writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); //compound.setByte(); compound.setInteger("lespe", index); compound.setInteger("kuse", tickCounter); compound.setBoolean("hore", aktivitas); return compound; } @Override public void update() { if (!world.isRemote){ if(aktivitas) { tickCounter++; if (tickCounter==20) { world.destroyBlock(AREA.get(index), false); System.out.println("Destroyed block at: " + AREA.get(index) ); index++; tickCounter = 0; } } } }
    1 point
  7. I really don't get why this isn't working for you. I have tile entities in my mods and I simply implement the ITickable interface and I can watch them process things per tick exactly as expected. I don't do any of this scheduling updates stuff. You can try my example mod and look at the TileEntityCompactor here: https://github.com/jabelar/ExampleMod-1.12/blob/master/src/main/java/com/blogspot/jabelarminecraft/examplemod/tileentities/TileEntityCompactor.java
    1 point
  8. world#getWorldTime world#getTotalWorldTime And one other I can't remember the name of at the moment. One tells you the game's "date" (non-resetting value that increments by 1 tick per tick and is modified by the /time command) the other gets you the curernt "time" (midnight to midnight) and another gets you how long the world has existed (1 tick per tick, does not get modified by sleeping or /time).
    1 point
×
×
  • Create New...

Important Information

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