From 2c0c31a964c3d0db457adaa522e8dac34c27ed75 Mon Sep 17 00:00:00 2001 From: J-onasJones Date: Sun, 6 Oct 2024 14:35:57 +0200 Subject: [PATCH] added thick end rod --- .../me/jonasjones/nec/block/ModBlocks.java | 10 ++++- .../nec/block/util/ThickEndRodBlock.java | 36 +++++++++++++++ .../me/jonasjones/nec/util/ModRegistries.java | 1 + .../assets/nec/blockstates/thick_end_rod.json | 30 +++++++++++++ src/main/resources/assets/nec/lang/de_de.json | 1 + src/main/resources/assets/nec/lang/en_us.json | 1 + .../nec/models/block/thick_end_rod.json | 41 ++++++++++++++++++ .../assets/nec/models/item/thick_end_rod.json | 3 ++ .../nec/textures/block/thick_end_rod.png | Bin 0 -> 159 bytes .../nec/loot_table/blocks/thick_end_rod.json | 19 ++++++++ 10 files changed, 141 insertions(+), 1 deletion(-) create mode 100644 src/main/java/me/jonasjones/nec/block/util/ThickEndRodBlock.java create mode 100644 src/main/resources/assets/nec/blockstates/thick_end_rod.json create mode 100644 src/main/resources/assets/nec/models/block/thick_end_rod.json create mode 100644 src/main/resources/assets/nec/models/item/thick_end_rod.json create mode 100644 src/main/resources/assets/nec/textures/block/thick_end_rod.png create mode 100644 src/main/resources/data/nec/loot_table/blocks/thick_end_rod.json diff --git a/src/main/java/me/jonasjones/nec/block/ModBlocks.java b/src/main/java/me/jonasjones/nec/block/ModBlocks.java index d6313dd..e7485f9 100644 --- a/src/main/java/me/jonasjones/nec/block/ModBlocks.java +++ b/src/main/java/me/jonasjones/nec/block/ModBlocks.java @@ -1,5 +1,6 @@ package me.jonasjones.nec.block; +import me.jonasjones.nec.block.util.ThickEndRodBlock; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.*; import net.minecraft.item.BlockItem; @@ -19,7 +20,8 @@ public class ModBlocks { public static Block DEEPSLATE_DIAMOND_ORE_ORE; public static Block JAVA_BLOCK; public static Block POCKET_BLOCK; - public static Block FLETCHING_STAIRS_BLOCK = null; + public static Block FLETCHING_STAIRS_BLOCK; + public static Block THICK_END_ROD; public static BlockItem GUN_BLOCK_ITEM; public static Block GUN_BLOCK_BLOCK; public static BlockItem BLAZE_BLOCK_ITEM; @@ -36,6 +38,8 @@ public class ModBlocks { public static Block POCKET_BLOCK_BLOCK; public static BlockItem FLETCHING_STAIRS_TIEM; public static Block FLETCHING_STAIRS_BLOCK_BLOCK; + public static BlockItem THICK_END_ROD_ITEM; + public static Block THICK_END_ROD_BLOCK; public static void register() { BLAZE_BLOCK = new Block(FabricBlockSettings.copyOf(Blocks.DIAMOND_BLOCK).strength(5.0F)); @@ -69,5 +73,9 @@ public class ModBlocks { FLETCHING_STAIRS_BLOCK = new StairsBlock(GREEEN_BIRCH_LOG_BLOCK.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS).strength(1.0F)); FLETCHING_STAIRS_BLOCK_BLOCK = Registry.register(BLOCK, Identifier.of(MOD_ID, "fletching_stairs"), FLETCHING_STAIRS_BLOCK); FLETCHING_STAIRS_TIEM = Registry.register(ITEM, Identifier.of(MOD_ID, "fletching_stairs"), new BlockItem(FLETCHING_STAIRS_BLOCK, new Item.Settings())); + + THICK_END_ROD = new ThickEndRodBlock(FabricBlockSettings.copyOf(Blocks.END_ROD).strength(0.0F)); + THICK_END_ROD_BLOCK = Registry.register(BLOCK, Identifier.of(MOD_ID, "thick_end_rod"), THICK_END_ROD); + THICK_END_ROD_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "thick_end_rod"), new BlockItem(THICK_END_ROD, new Item.Settings())); } } diff --git a/src/main/java/me/jonasjones/nec/block/util/ThickEndRodBlock.java b/src/main/java/me/jonasjones/nec/block/util/ThickEndRodBlock.java new file mode 100644 index 0000000..f4abe0c --- /dev/null +++ b/src/main/java/me/jonasjones/nec/block/util/ThickEndRodBlock.java @@ -0,0 +1,36 @@ +package me.jonasjones.nec.block.util; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.EndRodBlock; +import net.minecraft.block.ShapeContext; +import net.minecraft.particle.ParticleTypes; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.world.BlockView; +import net.minecraft.world.World; + +public class ThickEndRodBlock extends EndRodBlock { + public ThickEndRodBlock(Settings settings) { + super(settings); + } + + protected static final VoxelShape Y_SHAPE = Block.createCuboidShape(5.0, 0.0, 5.0, 11.0, 16.0, 11.0); + protected static final VoxelShape Z_SHAPE = Block.createCuboidShape(5.0, 5.0, 0.0, 11.0, 11.0, 16.0); + protected static final VoxelShape X_SHAPE = Block.createCuboidShape(0.0, 5.0, 5.0, 16.0, 11.0, 11.0); + + @Override + protected VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + switch (((Direction)state.get(FACING)).getAxis()) { + case X: + default: + return X_SHAPE; + case Z: + return Z_SHAPE; + case Y: + return Y_SHAPE; + } + } +} diff --git a/src/main/java/me/jonasjones/nec/util/ModRegistries.java b/src/main/java/me/jonasjones/nec/util/ModRegistries.java index fd1fc0c..f369182 100644 --- a/src/main/java/me/jonasjones/nec/util/ModRegistries.java +++ b/src/main/java/me/jonasjones/nec/util/ModRegistries.java @@ -46,6 +46,7 @@ public class ModRegistries { entries.add(new ItemStack(ModBlocks.JAVA_BLOCK)); entries.add(new ItemStack(ModBlocks.POCKET_BLOCK)); entries.add(new ItemStack(ModBlocks.FLETCHING_STAIRS_BLOCK)); + entries.add(new ItemStack(ModBlocks.THICK_END_ROD)); entries.add(new ItemStack(ModItems.STEEL_ITEM)); entries.add(new ItemStack(ModItems.NEGATIVE_FLINT_ITEM)); diff --git a/src/main/resources/assets/nec/blockstates/thick_end_rod.json b/src/main/resources/assets/nec/blockstates/thick_end_rod.json new file mode 100644 index 0000000..27a94e6 --- /dev/null +++ b/src/main/resources/assets/nec/blockstates/thick_end_rod.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "nec:block/thick_end_rod", + "x": 180 + }, + "facing=east": { + "model": "nec:block/thick_end_rod", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "nec:block/thick_end_rod", + "x": 90 + }, + "facing=south": { + "model": "nec:block/thick_end_rod", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "nec:block/thick_end_rod" + }, + "facing=west": { + "model": "nec:block/thick_end_rod", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/nec/lang/de_de.json b/src/main/resources/assets/nec/lang/de_de.json index 7aaf8a9..4ac922c 100644 --- a/src/main/resources/assets/nec/lang/de_de.json +++ b/src/main/resources/assets/nec/lang/de_de.json @@ -26,6 +26,7 @@ "block.nec.gun_block": "Schießblock", "block.nec.java_block": "Javablock", "block.nec.pocket_block": "Pocketblock", + "block.nec.thick_end_rod": "Dicker Endstab", "item.nec.ak_47": "AK-47", "item.nec.chainmail": "Kettenbrief", "item.nec.dirt_sword": "Erdschwert", diff --git a/src/main/resources/assets/nec/lang/en_us.json b/src/main/resources/assets/nec/lang/en_us.json index f90a099..a4f0b53 100644 --- a/src/main/resources/assets/nec/lang/en_us.json +++ b/src/main/resources/assets/nec/lang/en_us.json @@ -26,6 +26,7 @@ "block.nec.gun_block": "Gun Block", "block.nec.java_block": "Java Block", "block.nec.pocket_block": "Pocket Block", + "block.nec.thick_end_rod": "Thick End Rod", "item.nec.ak_47": "AK-47", "item.nec.chainmail": "Chainmail", "item.nec.dirt_sword": "Dirt Sword", diff --git a/src/main/resources/assets/nec/models/block/thick_end_rod.json b/src/main/resources/assets/nec/models/block/thick_end_rod.json new file mode 100644 index 0000000..0589bff --- /dev/null +++ b/src/main/resources/assets/nec/models/block/thick_end_rod.json @@ -0,0 +1,41 @@ +{ + "parent": "block/block", + "textures": { + "0": "nec:block/thick_end_rod", + "particle": "nec:block/thick_end_rod" + }, + "elements": [ + { + "from": [4, 0, 4], + "to": [12, 1, 12], + "faces": { + "north": {"uv": [2, 6, 6, 7], "texture": "#0"}, + "east": {"uv": [2, 6, 6, 7], "texture": "#0"}, + "south": {"uv": [2, 6, 6, 7], "texture": "#0"}, + "west": {"uv": [2, 6, 6, 7], "texture": "#0"}, + "up": {"uv": [2, 2, 6, 6], "texture": "#0"}, + "down": {"uv": [6, 8, 2, 7], "texture": "#0", "cullface": "down"} + } + }, + { + "from": [5, 1, 5], + "to": [11, 16, 11], + "faces": { + "north": {"uv": [0, 0, 2, 15], "texture": "#0"}, + "east": {"uv": [0, 0, 2, 15], "texture": "#0"}, + "south": {"uv": [0, 0, 2, 15], "texture": "#0"}, + "west": {"uv": [0, 0, 2, 15], "texture": "#0"}, + "up": {"uv": [2, 0, 4, 2], "texture": "#0", "cullface": "up"} + } + } + ], + "display": { + "thirdperson_righthand": { + "scale": [0.375, 0.375, 0.375] + }, + "head": { + "rotation": [-60, 0, 0], + "translation": [0, 5, -9] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/nec/models/item/thick_end_rod.json b/src/main/resources/assets/nec/models/item/thick_end_rod.json new file mode 100644 index 0000000..9df833d --- /dev/null +++ b/src/main/resources/assets/nec/models/item/thick_end_rod.json @@ -0,0 +1,3 @@ +{ + "parent": "nec:block/thick_end_rod" +} \ No newline at end of file diff --git a/src/main/resources/assets/nec/textures/block/thick_end_rod.png b/src/main/resources/assets/nec/textures/block/thick_end_rod.png new file mode 100644 index 0000000000000000000000000000000000000000..90aa8d84f58e6af87d0eefb1fa28b8285c16fc79 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`X`U{QAr_~Te|&rKratA2gVv94 zTq{0`sbP0 Hl+XkK+%GiJ literal 0 HcmV?d00001 diff --git a/src/main/resources/data/nec/loot_table/blocks/thick_end_rod.json b/src/main/resources/data/nec/loot_table/blocks/thick_end_rod.json new file mode 100644 index 0000000..69154a6 --- /dev/null +++ b/src/main/resources/data/nec/loot_table/blocks/thick_end_rod.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "nec:thick_end_rod" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file