From f59ceb8883125b923749081edce1f538f03bbf13 Mon Sep 17 00:00:00 2001 From: Jottyfan Date: Sat, 30 Nov 2024 00:31:23 +0100 Subject: [PATCH] added drill --- .../jottyfan/quickiemod/block/BlockDrill.java | 111 ++++++++++++++ .../jottyfan/quickiemod/block/ModBlocks.java | 16 ++ .../blockentity/DrillBlockEntity.java | 142 ++++++++++++++++++ .../blockentity/EnumDrillDirection.java | 36 +++++ .../blockentity/ModBlockentity.java | 4 + .../quickiemod/identifier/ModIdentifiers.java | 6 + .../assets/quickiemod/blockstates/drill.json | 7 + .../quickiemod/blockstates/drilleast.json | 7 + .../quickiemod/blockstates/drillnorth.json | 7 + .../quickiemod/blockstates/drillsouth.json | 7 + .../quickiemod/blockstates/drillwest.json | 7 + .../assets/quickiemod/models/block/drill.json | 6 + .../quickiemod/models/block/drilleast.json | 45 ++++++ .../quickiemod/models/block/drillnorth.json | 45 ++++++ .../quickiemod/models/block/drillsouth.json | 45 ++++++ .../quickiemod/models/block/drillwest.json | 45 ++++++ .../assets/quickiemod/models/item/drill.json | 10 ++ .../quickiemod/models/item/drilleast.json | 10 ++ .../quickiemod/models/item/drillnorth.json | 10 ++ .../quickiemod/models/item/drillsouth.json | 10 ++ .../quickiemod/models/item/drillwest.json | 10 ++ .../data/quickiemod/recipe/shaped_drill.json | 17 +++ .../recipe/shapeless_drill2drilleast.json | 10 ++ .../shapeless_drilleast2drillsouth.json | 10 ++ .../recipe/shapeless_drillnorth2drill.json | 10 ++ .../shapeless_drillsouth2drillwest.json | 10 ++ .../shapeless_drillwest2drillnorth.json | 10 ++ 27 files changed, 653 insertions(+) create mode 100644 src/main/java/de/jottyfan/quickiemod/block/BlockDrill.java create mode 100644 src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockEntity.java create mode 100644 src/main/java/de/jottyfan/quickiemod/blockentity/EnumDrillDirection.java create mode 100644 src/main/resources/assets/quickiemod/blockstates/drill.json create mode 100644 src/main/resources/assets/quickiemod/blockstates/drilleast.json create mode 100644 src/main/resources/assets/quickiemod/blockstates/drillnorth.json create mode 100644 src/main/resources/assets/quickiemod/blockstates/drillsouth.json create mode 100644 src/main/resources/assets/quickiemod/blockstates/drillwest.json create mode 100644 src/main/resources/assets/quickiemod/models/block/drill.json create mode 100644 src/main/resources/assets/quickiemod/models/block/drilleast.json create mode 100644 src/main/resources/assets/quickiemod/models/block/drillnorth.json create mode 100644 src/main/resources/assets/quickiemod/models/block/drillsouth.json create mode 100644 src/main/resources/assets/quickiemod/models/block/drillwest.json create mode 100644 src/main/resources/assets/quickiemod/models/item/drill.json create mode 100644 src/main/resources/assets/quickiemod/models/item/drilleast.json create mode 100644 src/main/resources/assets/quickiemod/models/item/drillnorth.json create mode 100644 src/main/resources/assets/quickiemod/models/item/drillsouth.json create mode 100644 src/main/resources/assets/quickiemod/models/item/drillwest.json create mode 100644 src/main/resources/data/quickiemod/recipe/shaped_drill.json create mode 100644 src/main/resources/data/quickiemod/recipe/shapeless_drill2drilleast.json create mode 100644 src/main/resources/data/quickiemod/recipe/shapeless_drilleast2drillsouth.json create mode 100644 src/main/resources/data/quickiemod/recipe/shapeless_drillnorth2drill.json create mode 100644 src/main/resources/data/quickiemod/recipe/shapeless_drillsouth2drillwest.json create mode 100644 src/main/resources/data/quickiemod/recipe/shapeless_drillwest2drillnorth.json diff --git a/src/main/java/de/jottyfan/quickiemod/block/BlockDrill.java b/src/main/java/de/jottyfan/quickiemod/block/BlockDrill.java new file mode 100644 index 0000000..acd0d33 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockDrill.java @@ -0,0 +1,111 @@ +package de.jottyfan.quickiemod.block; + +import java.util.HashMap; +import java.util.Map; + +import com.mojang.serialization.MapCodec; + +import de.jottyfan.quickiemod.blockentity.DrillBlockEntity; +import de.jottyfan.quickiemod.blockentity.EnumDrillDirection; +import de.jottyfan.quickiemod.item.ModItems; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockEntityProvider; +import net.minecraft.block.BlockState; +import net.minecraft.block.FallingBlock; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.block.entity.BlockEntityTicker; +import net.minecraft.block.entity.BlockEntityType; +import net.minecraft.entity.ItemEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.state.StateManager.Builder; +import net.minecraft.state.property.IntProperty; +import net.minecraft.text.Text; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Identifier; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +/** + * + * @author jotty + * + */ +public class BlockDrill extends FallingBlock implements BlockEntityProvider { + private static final Integer MAX_FUEL = 255; + public static final IntProperty FUEL = IntProperty.of("fuel", 0, MAX_FUEL); + public static final IntProperty DIRECTION = IntProperty.of("direction", 0, 4); + + public BlockDrill(Identifier identifier, EnumDrillDirection direction) { + super(AbstractBlock.Settings.create().hardness(2.5f).registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); + setDefaultState(getDefaultState().with(FUEL, 0).with(DIRECTION, direction.get())); + } + + @Override + public BlockEntity createBlockEntity(BlockPos pos, BlockState blockState) { + return new DrillBlockEntity(pos, blockState); + } + + @Override + public BlockEntityTicker getTicker(World world, BlockState state, + BlockEntityType type) { + return (world1, pos, state1, be) -> DrillBlockEntity.tick(world1, pos, state1, be); + } + + @Override + protected MapCodec getCodec() { + // TODO Auto-generated method stub + return null; + } + + @Override + public BlockState onBreak(World world, BlockPos pos, BlockState state, PlayerEntity player) { + Integer fuelLeft = state.get(FUEL); + world.spawnEntity( + new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(ModItems.ITEM_CANOLABOTTLE, fuelLeft))); + return super.onBreak(world, pos, state, player); + } + + @Override + protected void appendProperties(Builder builder) { + builder.add(FUEL).add(DIRECTION); + } + + @Override + protected ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit) { + Map loadings = new HashMap<>(); + loadings.put(ModItems.ITEM_CANOLABOTTLE, 8); + loadings.put(ModItems.ITEM_CANOLABOTTLESTACK, 72); + ItemStack stack = player.getStackInHand(player.getActiveHand()); + Item item = stack.getItem(); + if (stack.isEmpty() || !loadings.containsKey(item)) { + if (world.isClient()) { + player.sendMessage(Text.translatable("msg.drill.fuelinfo", state.get(FUEL)), false); + } + } else { + Integer fuelWeight = loadings.get(item); + if (fuelWeight != null) { + Integer load = MAX_FUEL - state.get(FUEL); + if (load < fuelWeight) { + fuelWeight = load; + } + world.setBlockState(pos, state.with(FUEL, state.get(FUEL) + fuelWeight)); + if (item.equals(ModItems.ITEM_CANOLABOTTLE)) { + world.spawnEntity( + new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.GLASS_BOTTLE, 1))); + } else if (item.equals(ModItems.ITEM_CANOLABOTTLESTACK)) { + world.spawnEntity( + new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.GLASS_BOTTLE, 9))); + } + stack.decrement(1); + } + } + return ActionResult.PASS; + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/block/ModBlocks.java b/src/main/java/de/jottyfan/quickiemod/block/ModBlocks.java index e2974b6..3b2216d 100644 --- a/src/main/java/de/jottyfan/quickiemod/block/ModBlocks.java +++ b/src/main/java/de/jottyfan/quickiemod/block/ModBlocks.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import de.jottyfan.quickiemod.Quickiemod; +import de.jottyfan.quickiemod.blockentity.EnumDrillDirection; import de.jottyfan.quickiemod.identifier.ModIdentifiers; import de.jottyfan.quickiemod.item.ModItems; import net.minecraft.block.Block; @@ -60,6 +61,16 @@ public class ModBlocks { new BlockPlant(ModIdentifiers.BLOCK_COTTONPLANT, ModItems.ITEM_COTTONSEED, ModItems.ITEM_COTTON), false); public static final Block BLOCK_CANOLAPLANT = registerBlock(ModIdentifiers.BLOCK_CANOLAPLANT, new BlockPlant(ModIdentifiers.BLOCK_CANOLAPLANT, ModItems.ITEM_CANOLASEED, ModItems.ITEM_CANOLA), false); + public static final Block BLOCK_DRILL_DOWN = registerBlock(ModIdentifiers.BLOCK_DRILLDOWN, + new BlockDrill(ModIdentifiers.BLOCK_DRILLDOWN, EnumDrillDirection.DOWN)); + public static final Block BLOCK_DRILL_EAST = registerBlock(ModIdentifiers.BLOCK_DRILLEAST, + new BlockDrill(ModIdentifiers.BLOCK_DRILLEAST, EnumDrillDirection.EAST)); + public static final Block BLOCK_DRILL_SOUTH = registerBlock(ModIdentifiers.BLOCK_DRILLSOUTH, + new BlockDrill(ModIdentifiers.BLOCK_DRILLSOUTH, EnumDrillDirection.SOUTH)); + public static final Block BLOCK_DRILL_WEST = registerBlock(ModIdentifiers.BLOCK_DRILLWEST, + new BlockDrill(ModIdentifiers.BLOCK_DRILLWEST, EnumDrillDirection.WEST)); + public static final Block BLOCK_DRILL_NORTH = registerBlock(ModIdentifiers.BLOCK_DRILLNORTH, + new BlockDrill(ModIdentifiers.BLOCK_DRILLNORTH, EnumDrillDirection.NORTH)); private static final Block registerBlock(Identifier identifier, Block block) { return registerBlock(identifier, block, true); @@ -93,6 +104,11 @@ public class ModBlocks { blocks.add(BLOCK_ORESULFOR); blocks.add(BLOCK_SANDSALPETER); blocks.add(BLOCK_KELPSTACK); + blocks.add(BLOCK_DRILL_DOWN); + blocks.add(BLOCK_DRILL_EAST); + blocks.add(BLOCK_DRILL_SOUTH); + blocks.add(BLOCK_DRILL_WEST); + blocks.add(BLOCK_DRILL_NORTH); return blocks; } } diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockEntity.java b/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockEntity.java new file mode 100644 index 0000000..fc4ffd6 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockEntity.java @@ -0,0 +1,142 @@ +package de.jottyfan.quickiemod.blockentity; + +import java.util.ArrayList; +import java.util.List; + +import de.jottyfan.quickiemod.block.BlockDrill; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +/** + * + * @author jotty + * + */ +public class DrillBlockEntity extends BlockEntity { + + private static final Integer MAXDRILLSTEP = 20; + + private Integer drillstep; + private final Integer maxDrillStep; + + public DrillBlockEntity(BlockPos pos, BlockState state) { + super(ModBlockentity.DRILL_BLOCKENTITY, pos, state); + this.maxDrillStep = MAXDRILLSTEP; + } + + public static void tick(World world, BlockPos pos, BlockState state, BlockEntity be) { + if (be instanceof DrillBlockEntity dbe) { + Integer dir = state.get(BlockDrill.DIRECTION); + List list = new ArrayList<>(); + if (EnumDrillDirection.DOWN.get().equals(dir)) { + list = downFrom(pos); + } else if (EnumDrillDirection.EAST.get().equals(dir)) { + list = directedFrom(pos.east()); + } else if (EnumDrillDirection.SOUTH.get().equals(dir)) { + list = directedFrom(pos.south()); + } else if (EnumDrillDirection.WEST.get().equals(dir)) { + list = directedFrom(pos.west()); + } else if (EnumDrillDirection.NORTH.get().equals(dir)) { + list = directedFrom(pos.north()); + } + DrillBlockEntity.tick(world, pos, state, dbe, MAXDRILLSTEP, list); + } + } + + public static final List directedFrom(BlockPos pos) { +// Quickiemod.LOGGER.info("directed"); + List list = new ArrayList<>(); + list.add(pos); + list.add(pos.up()); + list.add(pos.up().up()); + list.add(pos.up().up().up()); + list.add(pos.down()); // must be last position + return list; + } + + public static final List downFrom(BlockPos pos) { +// Quickiemod.LOGGER.info("down"); + List list = new ArrayList<>(); + Integer tracesMod = pos.getY() % 8; + tracesMod = tracesMod < 0 ? tracesMod * -1 : tracesMod; // lower that 0 makes it negative + if (tracesMod != 0) { + list.add(pos.north()); + } + if (tracesMod != 1) { + list.add(pos.north().west()); + } + if (tracesMod != 2) { + list.add(pos.west()); + } + if (tracesMod != 3) { + list.add(pos.south().west()); + } + if (tracesMod != 4) { + list.add(pos.south()); + } + if (tracesMod != 5) { + list.add(pos.south().east()); + } + if (tracesMod != 6) { + list.add(pos.east()); + } + if (tracesMod != 7) { + list.add(pos.north().east()); + } + list.add(pos.down()); // must be last position + return list; + } + + protected static final void moveBlockWithEntity(BlockPos from, BlockPos to, World world) { + BlockEntity be = world.getBlockEntity(from); + BlockState bs = world.getBlockState(from); + if (be != null) { + world.setBlockState(from, Blocks.AIR.getDefaultState()); + Integer newFuel = bs.get(BlockDrill.FUEL) - 1; + world.setBlockState(to, bs.with(BlockDrill.FUEL, newFuel)); + world.removeBlockEntity(from); + } + } + + protected static final Boolean drill(BlockPos pos, List toList, World world) { + Boolean lastSuccess = false; + for (BlockPos to : toList) { + if (!world.getBlockState(to).isOf(Blocks.BEDROCK)) { + world.breakBlock(to, true); + lastSuccess = pos.down() != to; // no need for the falling one + } else { + lastSuccess = false; // in case that the last one is a bedrock + } + } + return lastSuccess; + } + + public static void tick(World world, BlockPos pos, BlockState state, DrillBlockEntity be, Integer maxDrillStep, + List drillPosition) { + if (state.get(BlockDrill.FUEL) > 0) { + if (be.getDrillstep() < 1) { + be.setDrillstep(maxDrillStep); + if (drill(pos, drillPosition, world)) { + moveBlockWithEntity(pos, drillPosition.get(drillPosition.size() - 1), world); + } + } else { + be.doDrillstep(); + } + } + } + + public void doDrillstep() { + setDrillstep(getDrillstep() - 1); + } + + public Integer getDrillstep() { + return drillstep == null ? maxDrillStep : drillstep; + } + + public void setDrillstep(Integer drillstep) { + this.drillstep = drillstep; + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/EnumDrillDirection.java b/src/main/java/de/jottyfan/quickiemod/blockentity/EnumDrillDirection.java new file mode 100644 index 0000000..0f07cb7 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/blockentity/EnumDrillDirection.java @@ -0,0 +1,36 @@ +package de.jottyfan.quickiemod.blockentity; + +/** + * + * @author jotty + * + */ +public enum EnumDrillDirection { + DOWN(0), EAST(1), SOUTH(2), WEST(3), NORTH(4); + + private final Integer value; + + private EnumDrillDirection(Integer value) { + this.value = value; + } + + @Override + public String toString() { + return String.format("%s: %d", EnumDrillDirection.lookupValue(value), value); + } + + public static final String lookupValue(Integer value) { + return switch (value) { + case 0 -> "down"; + case 1 -> "east"; + case 2 -> "south"; + case 3 -> "west"; + case 4 -> "north"; + default -> "not supported"; + }; + } + + public Integer get() { + return value; + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/ModBlockentity.java b/src/main/java/de/jottyfan/quickiemod/blockentity/ModBlockentity.java index 0df2f70..1f011a2 100644 --- a/src/main/java/de/jottyfan/quickiemod/blockentity/ModBlockentity.java +++ b/src/main/java/de/jottyfan/quickiemod/blockentity/ModBlockentity.java @@ -16,6 +16,10 @@ public class ModBlockentity { public static final BlockEntityType ITEM_HOARDER_BLOCKENTITY = Registry.register( Registries.BLOCK_ENTITY_TYPE, ModIdentifiers.BLOCKENTITY_ITEMHOARDER, FabricBlockEntityTypeBuilder.create(ItemHoarderBlockEntity::new, ModBlocks.BLOCK_ITEMHOARDER).build()); + public static final BlockEntityType DRILL_BLOCKENTITY = Registry.register( + Registries.BLOCK_ENTITY_TYPE, ModIdentifiers.BLOCKENTITY_DRILL, + FabricBlockEntityTypeBuilder.create(DrillBlockEntity::new, ModBlocks.BLOCK_DRILL_DOWN, ModBlocks.BLOCK_DRILL_EAST, + ModBlocks.BLOCK_DRILL_SOUTH, ModBlocks.BLOCK_DRILL_WEST, ModBlocks.BLOCK_DRILL_NORTH).build()); public static final void registerModBlockentities() { }; diff --git a/src/main/java/de/jottyfan/quickiemod/identifier/ModIdentifiers.java b/src/main/java/de/jottyfan/quickiemod/identifier/ModIdentifiers.java index fae89bd..79c82dc 100644 --- a/src/main/java/de/jottyfan/quickiemod/identifier/ModIdentifiers.java +++ b/src/main/java/de/jottyfan/quickiemod/identifier/ModIdentifiers.java @@ -58,7 +58,13 @@ public class ModIdentifiers { public static final Identifier BLOCK_KELPSTACK = Identifier.of(Quickiemod.MOD_ID, "kelpstack"); public static final Identifier BLOCK_COTTONPLANT = Identifier.of(Quickiemod.MOD_ID, "blockcottonplant"); public static final Identifier BLOCK_CANOLAPLANT = Identifier.of(Quickiemod.MOD_ID, "blockcanolaplant"); + public static final Identifier BLOCK_DRILLDOWN = Identifier.of(Quickiemod.MOD_ID, "drill"); + public static final Identifier BLOCK_DRILLEAST = Identifier.of(Quickiemod.MOD_ID, "drilleast"); + public static final Identifier BLOCK_DRILLSOUTH = Identifier.of(Quickiemod.MOD_ID, "drillsouth"); + public static final Identifier BLOCK_DRILLWEST = Identifier.of(Quickiemod.MOD_ID, "drillwest"); + public static final Identifier BLOCK_DRILLNORTH = Identifier.of(Quickiemod.MOD_ID, "drillnorth"); public static final Identifier BLOCKENTITY_ITEMHOARDER = Identifier.of(Quickiemod.MOD_ID, "itemhoarderblockentity"); public static final Identifier BLOCKENTITY_BLOCKSTACKER = Identifier.of(Quickiemod.MOD_ID, "blockstackerblockentity"); + public static final Identifier BLOCKENTITY_DRILL = Identifier.of(Quickiemod.MOD_ID, "drillblockentity"); } diff --git a/src/main/resources/assets/quickiemod/blockstates/drill.json b/src/main/resources/assets/quickiemod/blockstates/drill.json new file mode 100644 index 0000000..c2d1382 --- /dev/null +++ b/src/main/resources/assets/quickiemod/blockstates/drill.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiemod:block/drill" + } + } +} diff --git a/src/main/resources/assets/quickiemod/blockstates/drilleast.json b/src/main/resources/assets/quickiemod/blockstates/drilleast.json new file mode 100644 index 0000000..28f23b3 --- /dev/null +++ b/src/main/resources/assets/quickiemod/blockstates/drilleast.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiemod:block/drilleast" + } + } +} diff --git a/src/main/resources/assets/quickiemod/blockstates/drillnorth.json b/src/main/resources/assets/quickiemod/blockstates/drillnorth.json new file mode 100644 index 0000000..011e136 --- /dev/null +++ b/src/main/resources/assets/quickiemod/blockstates/drillnorth.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiemod:block/drillnorth" + } + } +} diff --git a/src/main/resources/assets/quickiemod/blockstates/drillsouth.json b/src/main/resources/assets/quickiemod/blockstates/drillsouth.json new file mode 100644 index 0000000..f8da583 --- /dev/null +++ b/src/main/resources/assets/quickiemod/blockstates/drillsouth.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiemod:block/drillsouth" + } + } +} diff --git a/src/main/resources/assets/quickiemod/blockstates/drillwest.json b/src/main/resources/assets/quickiemod/blockstates/drillwest.json new file mode 100644 index 0000000..eb13963 --- /dev/null +++ b/src/main/resources/assets/quickiemod/blockstates/drillwest.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiemod:block/drillwest" + } + } +} diff --git a/src/main/resources/assets/quickiemod/models/block/drill.json b/src/main/resources/assets/quickiemod/models/block/drill.json new file mode 100644 index 0000000..06483a4 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/drill.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickiemod:block/drill" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/block/drilleast.json b/src/main/resources/assets/quickiemod/models/block/drilleast.json new file mode 100644 index 0000000..a15e036 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/drilleast.json @@ -0,0 +1,45 @@ +{ + "parent": "block/cube", + "textures": { + "bottom": "quickiemod:block/drilleast", + "all": "quickiemod:block/drill" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "down": { + "uv": [0, 0, 16, 16], + "texture": "#bottom", + "cullface": "down" + }, + "up": { + "uv": [0, 0, 16, 16], + "texture": "#bottom", + "cullface": "up" + }, + "north": { + "uv": [0, 0, 16, 16], + "texture": "#all", + "cullface": "north" + }, + "south": { + "uv": [0, 0, 16, 16], + "texture": "#all", + "cullface": "south" + }, + "east": { + "uv": [0, 0, 16, 16], + "texture": "#all", + "cullface": "east" + }, + "west": { + "uv": [0, 0, 16, 16], + "texture": "#all", + "cullface": "west" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/block/drillnorth.json b/src/main/resources/assets/quickiemod/models/block/drillnorth.json new file mode 100644 index 0000000..7d55a46 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/drillnorth.json @@ -0,0 +1,45 @@ +{ + "parent": "block/cube", + "textures": { + "bottom": "quickiemod:block/drillnorth", + "all": "quickiemod:block/drill" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "down": { + "uv": [0, 0, 16, 16], + "texture": "#bottom", + "cullface": "down" + }, + "up": { + "uv": [0, 0, 16, 16], + "texture": "#bottom", + "cullface": "up" + }, + "north": { + "uv": [0, 0, 16, 16], + "texture": "#all", + "cullface": "north" + }, + "south": { + "uv": [0, 0, 16, 16], + "texture": "#all", + "cullface": "south" + }, + "east": { + "uv": [0, 0, 16, 16], + "texture": "#all", + "cullface": "east" + }, + "west": { + "uv": [0, 0, 16, 16], + "texture": "#all", + "cullface": "west" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/block/drillsouth.json b/src/main/resources/assets/quickiemod/models/block/drillsouth.json new file mode 100644 index 0000000..b91de31 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/drillsouth.json @@ -0,0 +1,45 @@ +{ + "parent": "block/cube", + "textures": { + "bottom": "quickiemod:block/drillsouth", + "all": "quickiemod:block/drill" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "down": { + "uv": [0, 0, 16, 16], + "texture": "#bottom", + "cullface": "down" + }, + "up": { + "uv": [0, 0, 16, 16], + "texture": "#bottom", + "cullface": "up" + }, + "north": { + "uv": [0, 0, 16, 16], + "texture": "#all", + "cullface": "north" + }, + "south": { + "uv": [0, 0, 16, 16], + "texture": "#all", + "cullface": "south" + }, + "east": { + "uv": [0, 0, 16, 16], + "texture": "#all", + "cullface": "east" + }, + "west": { + "uv": [0, 0, 16, 16], + "texture": "#all", + "cullface": "west" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/block/drillwest.json b/src/main/resources/assets/quickiemod/models/block/drillwest.json new file mode 100644 index 0000000..243ea98 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/drillwest.json @@ -0,0 +1,45 @@ +{ + "parent": "block/cube", + "textures": { + "bottom": "quickiemod:block/drillwest", + "all": "quickiemod:block/drill" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "down": { + "uv": [0, 0, 16, 16], + "texture": "#bottom", + "cullface": "down" + }, + "up": { + "uv": [0, 0, 16, 16], + "texture": "#bottom", + "cullface": "up" + }, + "north": { + "uv": [0, 0, 16, 16], + "texture": "#all", + "cullface": "north" + }, + "south": { + "uv": [0, 0, 16, 16], + "texture": "#all", + "cullface": "south" + }, + "east": { + "uv": [0, 0, 16, 16], + "texture": "#all", + "cullface": "east" + }, + "west": { + "uv": [0, 0, 16, 16], + "texture": "#all", + "cullface": "west" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/drill.json b/src/main/resources/assets/quickiemod/models/item/drill.json new file mode 100644 index 0000000..7a8559e --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/drill.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/drill", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/drilleast.json b/src/main/resources/assets/quickiemod/models/item/drilleast.json new file mode 100644 index 0000000..faeeee7 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/drilleast.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/drilleast", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/drillnorth.json b/src/main/resources/assets/quickiemod/models/item/drillnorth.json new file mode 100644 index 0000000..f7d3858 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/drillnorth.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/drillnorth", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/drillsouth.json b/src/main/resources/assets/quickiemod/models/item/drillsouth.json new file mode 100644 index 0000000..21e28d4 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/drillsouth.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/drillsouth", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/drillwest.json b/src/main/resources/assets/quickiemod/models/item/drillwest.json new file mode 100644 index 0000000..bab118c --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/drillwest.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/drillwest", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipe/shaped_drill.json b/src/main/resources/data/quickiemod/recipe/shaped_drill.json new file mode 100644 index 0000000..df1cf51 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipe/shaped_drill.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "qbq", + "dqd", + " d " + ], + "key": { + "q": "quickiemod:quickieingot", + "d": "minecraft:diamond", + "b": "minecraft:barrel" + }, + "result": { + "id": "quickiemod:drill", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_drill2drilleast.json b/src/main/resources/data/quickiemod/recipe/shapeless_drill2drilleast.json new file mode 100644 index 0000000..20a3d08 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipe/shapeless_drill2drilleast.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + "quickiemod:drill" + ], + "result": { + "id": "quickiemod:drilleast", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_drilleast2drillsouth.json b/src/main/resources/data/quickiemod/recipe/shapeless_drilleast2drillsouth.json new file mode 100644 index 0000000..9d49d48 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipe/shapeless_drilleast2drillsouth.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + "quickiemod:drilleast" + ], + "result": { + "id": "quickiemod:drillsouth", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_drillnorth2drill.json b/src/main/resources/data/quickiemod/recipe/shapeless_drillnorth2drill.json new file mode 100644 index 0000000..2dc6316 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipe/shapeless_drillnorth2drill.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + "quickiemod:drillnorth" + ], + "result": { + "id": "quickiemod:drill", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_drillsouth2drillwest.json b/src/main/resources/data/quickiemod/recipe/shapeless_drillsouth2drillwest.json new file mode 100644 index 0000000..05721ba --- /dev/null +++ b/src/main/resources/data/quickiemod/recipe/shapeless_drillsouth2drillwest.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + "quickiemod:drillsouth" + ], + "result": { + "id": "quickiemod:drillwest", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_drillwest2drillnorth.json b/src/main/resources/data/quickiemod/recipe/shapeless_drillwest2drillnorth.json new file mode 100644 index 0000000..d454d57 --- /dev/null +++ b/src/main/resources/data/quickiemod/recipe/shapeless_drillwest2drillnorth.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + "quickiemod:drillwest" + ], + "result": { + "id": "quickiemod:drillnorth", + "count": 1 + } +} \ No newline at end of file