From 264224a6f9d02166240243c2353df810a62c68b4 Mon Sep 17 00:00:00 2001 From: drcrazy Date: Tue, 8 Oct 2019 13:03:01 +0300 Subject: [PATCH] Stripped version of Rubber Log. --- .../blocks/misc/BlockRubberLog.java | 48 ++++++++++++------ .../java/techreborn/events/ModRegistry.java | 3 ++ src/main/java/techreborn/init/TRContent.java | 1 + .../techreborn/items/tool/ItemChainsaw.java | 3 +- .../blockstates/rubber_log_stripped.json | 7 +++ .../block/rubber/rubber_log_stripped.json | 7 +++ .../models/item/rubber_log_stripped.json | 3 ++ .../block/stripped_rubber_log_side.png | Bin 0 -> 435 bytes .../block/stripped_rubber_log_top.png | Bin 0 -> 400 bytes 9 files changed, 54 insertions(+), 18 deletions(-) create mode 100644 src/main/resources/assets/techreborn/blockstates/rubber_log_stripped.json create mode 100644 src/main/resources/assets/techreborn/models/block/rubber/rubber_log_stripped.json create mode 100644 src/main/resources/assets/techreborn/models/item/rubber_log_stripped.json create mode 100644 src/main/resources/assets/techreborn/textures/block/stripped_rubber_log_side.png create mode 100644 src/main/resources/assets/techreborn/textures/block/stripped_rubber_log_top.png diff --git a/src/main/java/techreborn/blocks/misc/BlockRubberLog.java b/src/main/java/techreborn/blocks/misc/BlockRubberLog.java index f99d6b231..0582a685e 100644 --- a/src/main/java/techreborn/blocks/misc/BlockRubberLog.java +++ b/src/main/java/techreborn/blocks/misc/BlockRubberLog.java @@ -26,11 +26,14 @@ package techreborn.blocks.misc; import net.fabricmc.fabric.api.block.FabricBlockSettings; import net.minecraft.block.*; +import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.AxeItem; import net.minecraft.item.ItemStack; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvents; import net.minecraft.state.StateFactory; import net.minecraft.state.property.BooleanProperty; import net.minecraft.state.property.DirectionProperty; @@ -110,32 +113,45 @@ public class BlockRubberLog extends LogBlock { } @Override - public boolean activate(BlockState state, World worldIn, BlockPos pos, PlayerEntity playerIn, - Hand hand, BlockHitResult hitResult) { + public boolean activate(BlockState state, World worldIn, BlockPos pos, PlayerEntity playerIn, Hand hand, BlockHitResult hitResult) { super.activate(state, worldIn, pos, playerIn, hand, hitResult); ItemStack stack = playerIn.getStackInHand(Hand.MAIN_HAND); if (stack.isEmpty()) { return false; } + + if (stack.getItem() instanceof AxeItem) { + worldIn.playSound(playerIn, pos, SoundEvents.ITEM_AXE_STRIP, SoundCategory.BLOCKS, 1.0F, 1.0F); + if (worldIn.isClient) { + return true; + } + worldIn.setBlockState(pos, TRContent.RUBBER_LOG_STRIPPED.getDefaultState().with(PillarBlock.AXIS, state.get(PillarBlock.AXIS)), 11); + if (playerIn instanceof LivingEntity) { + LivingEntity playerEntity = (LivingEntity) playerIn; + stack.damage(1, playerEntity, player -> { player.sendToolBreakStatus(hand); }); + } + return true; + } if ((Energy.valid(stack) && Energy.of(stack).getEnergy() > 20) || stack.getItem() instanceof ItemTreeTap) { if (state.get(HAS_SAP) && state.get(SAP_SIDE) == hitResult.getSide()) { worldIn.setBlockState(pos, state.with(HAS_SAP, false).with(SAP_SIDE, Direction.fromHorizontal(0))); - worldIn.playSound(null, pos.getX(), pos.getY(), pos.getZ(), ModSounds.SAP_EXTRACT, SoundCategory.BLOCKS, - 0.6F, 1F); - if (!worldIn.isClient) { - if (Energy.valid(stack)) { - Energy.of(stack).use(20); - } else { - playerIn.getStackInHand(Hand.MAIN_HAND).damage(1, playerIn, playerEntity -> {}); - } - if (!playerIn.inventory.insertStack(TRContent.Parts.SAP.getStack())) { - WorldUtils.dropItem(TRContent.Parts.SAP.getStack(), worldIn, pos.offset(hitResult.getSide())); - } - if (playerIn instanceof ServerPlayerEntity) { - TRRecipeHandler.unlockTRRecipes((ServerPlayerEntity) playerIn); - } + worldIn.playSound(playerIn, pos, ModSounds.SAP_EXTRACT, SoundCategory.BLOCKS, 0.6F, 1F); + if (worldIn.isClient) { + return true; } + if (Energy.valid(stack)) { + Energy.of(stack).use(20); + } else { + stack.damage(1, playerIn, player -> { player.sendToolBreakStatus(hand); }); + } + if (!playerIn.inventory.insertStack(TRContent.Parts.SAP.getStack())) { + WorldUtils.dropItem(TRContent.Parts.SAP.getStack(), worldIn, pos.offset(hitResult.getSide())); + } + if (playerIn instanceof ServerPlayerEntity) { + TRRecipeHandler.unlockTRRecipes((ServerPlayerEntity) playerIn); + } + return true; } } diff --git a/src/main/java/techreborn/events/ModRegistry.java b/src/main/java/techreborn/events/ModRegistry.java index 5cc459537..c773fa117 100644 --- a/src/main/java/techreborn/events/ModRegistry.java +++ b/src/main/java/techreborn/events/ModRegistry.java @@ -26,6 +26,8 @@ package techreborn.events; import net.minecraft.block.FenceBlock; import net.minecraft.block.FenceGateBlock; +import net.minecraft.block.LogBlock; +import net.minecraft.block.MaterialColor; import net.minecraft.block.SlabBlock; import net.minecraft.entity.EquipmentSlot; import net.minecraft.item.Item; @@ -111,6 +113,7 @@ public class ModRegistry { RebornRegistry.registerBlock(TRContent.REINFORCED_GLASS = InitUtils.setup(new BlockReinforcedGlass(), "reinforced_glass"), itemGroup); RebornRegistry.registerBlock(TRContent.RUBBER_LEAVES = InitUtils.setup(new BlockRubberLeaves(), "rubber_leaves"), itemGroup); RebornRegistry.registerBlock(TRContent.RUBBER_LOG = InitUtils.setup(new BlockRubberLog(), "rubber_log"), itemGroup); + RebornRegistry.registerBlock(TRContent.RUBBER_LOG_STRIPPED = InitUtils.setup(new LogBlock(MaterialColor.SPRUCE, InitUtils.setupRubberBlockSettings(2.0F, 15.0F)), "rubber_log_stripped"), itemGroup); RebornRegistry.registerBlock(TRContent.RUBBER_PLANKS = InitUtils.setup(new BlockRubberPlank(), "rubber_planks"), itemGroup); RebornRegistry.registerBlock(TRContent.RUBBER_SAPLING = InitUtils.setup(new BlockRubberSapling(), "rubber_sapling"), itemGroup); RebornRegistry.registerBlock(TRContent.RUBBER_PLANK_SLAB = InitUtils.setup(new SlabBlock(InitUtils.setupRubberBlockSettings(2.0F, 15.0F)), "rubber_plank_slab"), itemGroup); diff --git a/src/main/java/techreborn/init/TRContent.java b/src/main/java/techreborn/init/TRContent.java index 3cea2a8ce..8c8d77fe7 100644 --- a/src/main/java/techreborn/init/TRContent.java +++ b/src/main/java/techreborn/init/TRContent.java @@ -93,6 +93,7 @@ public class TRContent { public static Block RUBBER_BUTTON; public static Block RUBBER_PRESSURE_PLATE; public static Block RUBBER_DOOR; + public static Block RUBBER_LOG_STRIPPED; // Armor public static Item CLOAKING_DEVICE; diff --git a/src/main/java/techreborn/items/tool/ItemChainsaw.java b/src/main/java/techreborn/items/tool/ItemChainsaw.java index 0d751ef27..0441f1608 100644 --- a/src/main/java/techreborn/items/tool/ItemChainsaw.java +++ b/src/main/java/techreborn/items/tool/ItemChainsaw.java @@ -79,9 +79,8 @@ public class ItemChainsaw extends AxeItem implements EnergyHolder, ItemDurabilit if (Energy.of(stack).getEnergy() >= cost && (state.getMaterial() == Material.WOOD)) { return this.poweredSpeed; - } else { - return super.getMiningSpeed(stack, state); } + return super.getMiningSpeed(stack, state); } // ItemTool diff --git a/src/main/resources/assets/techreborn/blockstates/rubber_log_stripped.json b/src/main/resources/assets/techreborn/blockstates/rubber_log_stripped.json new file mode 100644 index 000000000..10d3296d9 --- /dev/null +++ b/src/main/resources/assets/techreborn/blockstates/rubber_log_stripped.json @@ -0,0 +1,7 @@ +{ + "variants": { + "axis=y": { "model": "techreborn:block/rubber/rubber_log_stripped" }, + "axis=z": { "model": "techreborn:block/rubber/rubber_log_stripped", "x": 90 }, + "axis=x": { "model": "techreborn:block/rubber/rubber_log_stripped", "x": 90, "y": 90 } + } +} diff --git a/src/main/resources/assets/techreborn/models/block/rubber/rubber_log_stripped.json b/src/main/resources/assets/techreborn/models/block/rubber/rubber_log_stripped.json new file mode 100644 index 000000000..8095c723f --- /dev/null +++ b/src/main/resources/assets/techreborn/models/block/rubber/rubber_log_stripped.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "techreborn:block/stripped_rubber_log_top", + "side": "techreborn:block/stripped_rubber_log_side" + } +} diff --git a/src/main/resources/assets/techreborn/models/item/rubber_log_stripped.json b/src/main/resources/assets/techreborn/models/item/rubber_log_stripped.json new file mode 100644 index 000000000..1c6dda87b --- /dev/null +++ b/src/main/resources/assets/techreborn/models/item/rubber_log_stripped.json @@ -0,0 +1,3 @@ +{ + "parent": "techreborn:block/rubber/rubber_log_stripped" +} diff --git a/src/main/resources/assets/techreborn/textures/block/stripped_rubber_log_side.png b/src/main/resources/assets/techreborn/textures/block/stripped_rubber_log_side.png new file mode 100644 index 0000000000000000000000000000000000000000..69bd0f1387b9585ce7fc14f4b389e00335fe7fb5 GIT binary patch literal 435 zcmV;k0ZjghP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0Z2(iK~y+TWs~hn z12Ggt<64=Gf%)O9fxbfhr)`4VDPTxWPm`dvS=VH$1@eQdZ z07b1%Q4sRS@iQhk*zLyYHlCgjv7xde?T9nZ0B+#!reAu13Ljv*8KSB} zT4rpWK?dPKGPXQ~PzxK{uH!l!F!4@-hZQul{on?OVBxO5!lnm47Gd^yBXcAR)+VBe z2+$^1N>$g5$2yOwz5^yGT7~M8b%H4FjN%P|kl*c(F(Dt2>~EvJ0YTB)L_Q=7$vQI{ dVnkk$(l1x-=wlKeD5?Me002ovPDHLkV1hpMv}XVS literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/block/stripped_rubber_log_top.png b/src/main/resources/assets/techreborn/textures/block/stripped_rubber_log_top.png new file mode 100644 index 0000000000000000000000000000000000000000..e350563c050de4b0f60c64d83777bb8414d1bc39 GIT binary patch literal 400 zcmV;B0dM|^P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0VPR9K~y+Tjgvu3 z0#Ojh$44w|AZiBIA%yhcscToi|7WO!bPyvg5nJ2><2U-(*)63Xyq$UT-kbTq+1H)Ayxo2QC8F&o^&t