diff --git a/src/main/generated/data/minecraft/advancement/nec/got_lapis_golden_apple.json b/src/main/generated/data/minecraft/advancement/nec/got_lapis_golden_apple.json index 3d3b90d..c519311 100644 --- a/src/main/generated/data/minecraft/advancement/nec/got_lapis_golden_apple.json +++ b/src/main/generated/data/minecraft/advancement/nec/got_lapis_golden_apple.json @@ -1,7 +1,7 @@ { "parent": "minecraft:nec/root", "criteria": { - "got_fletching_stairs": { + "got_lapis_golden_apple": { "conditions": { "items": [ { @@ -27,7 +27,7 @@ }, "requirements": [ [ - "got_fletching_stairs" + "got_lapis_golden_apple" ] ], "sends_telemetry_event": true diff --git a/src/main/generated/data/minecraft/advancement/nec/got_thick_end_rod.json b/src/main/generated/data/minecraft/advancement/nec/got_thick_end_rod.json new file mode 100644 index 0000000..3369756 --- /dev/null +++ b/src/main/generated/data/minecraft/advancement/nec/got_thick_end_rod.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:nec/root", + "criteria": { + "got_thick_end_rod": { + "conditions": { + "items": [ + { + "items": "nec:thick_end_rod" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "description": { + "translate": "advancements.nec.thick_end_rod.description" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "nec:thick_end_rod" + }, + "title": { + "translate": "advancements.nec.thick_end_rod.title" + } + }, + "requirements": [ + [ + "got_thick_end_rod" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file 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/datagen/NecDataGen.java b/src/main/java/me/jonasjones/nec/datagen/NecDataGen.java index 0f07193..829d6db 100644 --- a/src/main/java/me/jonasjones/nec/datagen/NecDataGen.java +++ b/src/main/java/me/jonasjones/nec/datagen/NecDataGen.java @@ -135,6 +135,20 @@ public class NecDataGen implements DataGeneratorEntrypoint { .criterion("got_fletching_stairs", InventoryChangedCriterion.Conditions.items(FLETCHING_STAIRS_TIEM)) .build(consumer, "nec" + "/got_fletching_stairs"); + AdvancementEntry gotThickEndRodAdvancement = Advancement.Builder.create().parent(rootAdvancement) + .display( + THICK_END_ROD_ITEM, + Text.translatable("advancements.nec.thick_end_rod.title"), + Text.translatable("advancements.nec.thick_end_rod.description"), + null, // children to parent advancements don't need a background set + AdvancementFrame.TASK, + true, + true, + true + ) + .criterion("got_thick_end_rod", InventoryChangedCriterion.Conditions.items(THICK_END_ROD_ITEM)) + .build(consumer, "nec" + "/got_thick_end_rod"); + AdvancementEntry gotLapisGoldenAppleAdvancement = Advancement.Builder.create().parent(rootAdvancement) .display( LAPIS_GOLDEN_APPLE_ITEM, @@ -146,7 +160,7 @@ public class NecDataGen implements DataGeneratorEntrypoint { true, true ) - .criterion("got_fletching_stairs", InventoryChangedCriterion.Conditions.items(LAPIS_GOLDEN_APPLE_ITEM)) + .criterion("got_lapis_golden_apple", InventoryChangedCriterion.Conditions.items(LAPIS_GOLDEN_APPLE_ITEM)) .build(consumer, "nec" + "/got_lapis_golden_apple"); } } diff --git a/src/main/java/me/jonasjones/nec/util/ModRegistries.java b/src/main/java/me/jonasjones/nec/util/ModRegistries.java index 02a0526..0d7f1b5 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 77c69c1..a34f960 100644 --- a/src/main/resources/assets/nec/lang/de_de.json +++ b/src/main/resources/assets/nec/lang/de_de.json @@ -14,6 +14,8 @@ "advancements.nec.java_block.title": "Du Depp, das ist falsch!", "advancements.nec.root.description": "Was? Du dachtest, dass ich dir einen Blick auf die Fortschritte geben würde?", "advancements.nec.root.title": "Not Enough Cursedness", + "advancements.nec.thick_end_rod.title": "Du bist dicker als sonst!", + "advancements.nec.thick_end_rod.description": "Bekomme einen dicken Endstab", "advancements.nec.lapis_golden_apple.title": "Verdammt, du bist geizig!", "advancements.nec.lapis_golden_apple.description": "Crafte einen Wenn du nicht genug Gold hast, also benutzt du Lapis stattdessen Goldener Apfel", @@ -28,6 +30,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 ad1c8f7..4ce19f7 100644 --- a/src/main/resources/assets/nec/lang/en_us.json +++ b/src/main/resources/assets/nec/lang/en_us.json @@ -14,6 +14,8 @@ "advancements.nec.java_block.title": "You Idiot, this is wrong!", "advancements.nec.root.description": "What? You thought that I would give you a look at the achievements?", "advancements.nec.root.title": "Not Enough Cursedness", + "advancements.nec.thick_end_rod.title": "You're thicker than usual!", + "advancements.nec.thick_end_rod.description": "Obtain a Thick End Rod", "advancements.nec.lapis_golden_apple.title": "Damn You're cheap!", "advancements.nec.lapis_golden_apple.description": "Craft a When You Don't Have Enough Gold So You Use Lapis Instead Golden Apple", @@ -28,6 +30,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 0000000..90aa8d8 Binary files /dev/null and b/src/main/resources/assets/nec/textures/block/thick_end_rod.png differ 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