@Override public String toString() { return super.toString() + " facing " + getFacing() + " " + getSize(); } }
@Override public Collection<ItemStack> getDrops(GlowBlock block, ItemStack tool) { MaterialData data = block.getState().getData(); if (data instanceof CocoaPlant) { int amount = 1; if (((CocoaPlant) data).getSize() == CocoaPlantSize.LARGE) { amount = 3; } return Collections.unmodifiableList( Arrays.asList(new ItemStack(Material.INK_SACK, amount, (short) 3))); } else { warnMaterialData(CocoaPlant.class, data); } return BlockDropless.EMPTY_STACK; }
@Override public boolean isFertilizable(GlowBlock block) { MaterialData data = block.getState().getData(); if (data instanceof CocoaPlant) { if (((CocoaPlant) data).getSize() != CocoaPlantSize.LARGE) { return true; } } else { warnMaterialData(CocoaPlant.class, data); } return false; }
@Override public void updateBlock(GlowBlock block) { MaterialData data = block.getState().getData(); if (data instanceof CocoaPlant) { CocoaPlant cocoa = (CocoaPlant) data; CocoaPlantSize size = cocoa.getSize(); if (size != CocoaPlantSize.LARGE && ThreadLocalRandom.current().nextInt(5) == 0) { if (size == CocoaPlantSize.SMALL) { cocoa.setSize(CocoaPlantSize.MEDIUM); } else if (size == CocoaPlantSize.MEDIUM) { cocoa.setSize(CocoaPlantSize.LARGE); } else { return; } GlowBlockState state = block.getState(); state.setData(cocoa); BlockGrowEvent growEvent = new BlockGrowEvent(block, state); EventFactory.getInstance().callEvent(growEvent); if (!growEvent.isCancelled()) { state.update(true); } } } else { warnMaterialData(CocoaPlant.class, data); } } }
@Override public void grow(GlowPlayer player, GlowBlock block) { MaterialData data = block.getState().getData(); if (data instanceof CocoaPlant) { CocoaPlant cocoa = (CocoaPlant) data; CocoaPlantSize size = cocoa.getSize(); if (size == CocoaPlantSize.SMALL) { cocoa.setSize(CocoaPlantSize.MEDIUM); } else if (size == CocoaPlantSize.MEDIUM) { cocoa.setSize(CocoaPlantSize.LARGE); } else { return; } GlowBlockState state = block.getState(); state.setData(cocoa); BlockGrowEvent growEvent = new BlockGrowEvent(block, state); EventFactory.getInstance().callEvent(growEvent); if (!growEvent.isCancelled()) { state.update(true); } } else { warnMaterialData(CocoaPlant.class, data); } }
@Override public String toString() { return super.toString() + " facing " + getFacing() + " " + getSize(); } }