diff --git a/gradle.properties b/gradle.properties index fc767a4..0271495 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,7 +12,7 @@ registrate_version = MC1.19-1.1.5 maven_group = me.duquee archives_base_name = createutilities -mod_version = 0.2.0 +mod_version = 0.3.0 forge_version = 43.2.3 minecraft_version = 1.19.2 diff --git a/src/main/java/me/duquee/createutilities/blocks/CUBlocks.java b/src/main/java/me/duquee/createutilities/blocks/CUBlocks.java index ef1c521..8b06b32 100644 --- a/src/main/java/me/duquee/createutilities/blocks/CUBlocks.java +++ b/src/main/java/me/duquee/createutilities/blocks/CUBlocks.java @@ -1,12 +1,19 @@ package me.duquee.createutilities.blocks; import com.simibubi.create.AllSpriteShifts; +import com.simibubi.create.AllTags; +import com.simibubi.create.Create; +import com.simibubi.create.content.decoration.MetalLadderBlock; +import com.simibubi.create.content.decoration.MetalScaffoldingBlock; import com.simibubi.create.content.decoration.encasing.CasingBlock; import com.simibubi.create.content.decoration.encasing.EncasedCTBehaviour; import com.simibubi.create.content.kinetics.BlockStressDefaults; import com.simibubi.create.foundation.data.BuilderTransformers; import com.simibubi.create.foundation.data.CreateRegistrate; +import com.simibubi.create.foundation.data.MetalBarsGen; import com.simibubi.create.foundation.data.SharedProperties; +import com.simibubi.create.foundation.data.TagGen; +import com.tterrag.registrate.util.DataIngredient; import com.tterrag.registrate.util.entry.BlockEntry; import me.duquee.createutilities.blocks.lgearbox.LShapedGearboxBlock; @@ -15,12 +22,20 @@ import me.duquee.createutilities.blocks.voidtypes.motor.VoidMotorBlock; import me.duquee.createutilities.blocks.gearcube.GearcubeBlock; import me.duquee.createutilities.blocks.voidtypes.tank.VoidTankBlock; +import me.duquee.createutilities.items.CUItems; import me.duquee.createutilities.tabs.CUCreativeTabs; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Rarity; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.IronBarsBlock; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.material.MaterialColor; +import java.util.function.Supplier; + import static com.simibubi.create.foundation.data.ModelGen.customItemModel; import static com.simibubi.create.foundation.data.TagGen.axeOrPickaxe; import static com.simibubi.create.foundation.data.TagGen.pickaxeOnly; @@ -32,6 +47,29 @@ public class CUBlocks { REGISTRATE.creativeModeTab(() -> CUCreativeTabs.BASE); } + public static final BlockEntry VOID_STEEL_BLOCK = REGISTRATE.block("void_steel_block", Block::new) + .initialProperties(() -> Blocks.NETHERITE_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_GREEN)) + .properties(p -> p.strength(55.0F, 1200.0F)) + .properties(p -> p.sound(SoundType.NETHERITE_BLOCK)) + .transform(pickaxeOnly()) + .simpleItem() + .register(); + + public static final BlockEntry VOID_STEEL_SCAFFOLD = REGISTRATE.block("void_steel_scaffolding", MetalScaffoldingBlock::new) + .transform(BuilderTransformers.scaffold("void_steel", + () -> DataIngredient.items(CUItems.VOID_STEEL_INGOT.get()), MaterialColor.COLOR_GREEN, + CUSpriteShifts.VOID_STEEL_SCAFFOLD, CUSpriteShifts.VOID_STEEL_SCAFFOLD_INSIDE, CUSpriteShifts.VOID_CASING)) + .register(); + + public static final BlockEntry VOID_STEEL_LADDER = REGISTRATE.block("void_steel_ladder", MetalLadderBlock::new) + .transform(BuilderTransformers.ladder("void_steel", + () -> DataIngredient.items(CUItems.VOID_STEEL_INGOT.get()), MaterialColor.COLOR_GREEN)) + .register(); + + public static final BlockEntry VOID_STEEL_BARS = createBars("void_steel", true, + () -> DataIngredient.items(CUItems.VOID_STEEL_INGOT.get()), MaterialColor.COLOR_GREEN); + public static final BlockEntry VOID_CASING = REGISTRATE.block("void_casing", CasingBlock::new) .transform(BuilderTransformers.casing(() -> CUSpriteShifts.VOID_CASING)) .properties(p -> p.color(MaterialColor.COLOR_BLACK)) @@ -106,6 +144,47 @@ public class CUBlocks { .simpleItem() .register(); + public static final BlockEntry AMETHYST_TILES = REGISTRATE.block("amethyst_tiles", Block::new) + .initialProperties(() -> Blocks.DEEPSLATE) + .properties(p -> p.color(MaterialColor.TERRACOTTA_PURPLE).requiresCorrectToolForDrops()) + .properties(p -> p.sound(SoundType.AMETHYST_CLUSTER)) + .transform(pickaxeOnly()) + .simpleItem() + .register(); + + public static final BlockEntry SMALL_AMETHYST_TILES = REGISTRATE.block("small_amethyst_tiles", Block::new) + .initialProperties(() -> Blocks.DEEPSLATE) + .properties(p -> p.color(MaterialColor.TERRACOTTA_PURPLE).requiresCorrectToolForDrops()) + .properties(p -> p.sound(SoundType.AMETHYST_CLUSTER)) + .transform(pickaxeOnly()) + .simpleItem() + .register(); + + private static BlockEntry createBars(String name, boolean specialEdge, + Supplier ingredient, MaterialColor color) { + + return REGISTRATE.block(name + "_bars", IronBarsBlock::new) + .addLayer(() -> RenderType::cutoutMipped) + .initialProperties(() -> Blocks.IRON_BARS) + .properties(p -> p.sound(SoundType.COPPER) + .color(color)) + .tag(AllTags.AllBlockTags.WRENCH_PICKUP.tag) + .tag(AllTags.AllBlockTags.FAN_TRANSPARENT.tag) + .transform(TagGen.pickaxeOnly()) + .blockstate(MetalBarsGen.barsBlockState(name, specialEdge)) + .item() + .model((c, p) -> { + ResourceLocation barsTexture = p.modLoc("block/bars/" + name + "_bars"); + p.withExistingParent(c.getName(), Create.asResource("item/bars")) + .texture("bars", barsTexture) + .texture("edge", specialEdge ? p.modLoc("block/bars/" + name + "_bars_edge") : barsTexture); + }) + .recipe((c, p) -> p.stonecutting(ingredient.get(), c::get, 4)) + .build() + .register(); + + } + public static void register() {} } diff --git a/src/main/java/me/duquee/createutilities/blocks/CUSpriteShifts.java b/src/main/java/me/duquee/createutilities/blocks/CUSpriteShifts.java index 20da2ca..6b0bdac 100644 --- a/src/main/java/me/duquee/createutilities/blocks/CUSpriteShifts.java +++ b/src/main/java/me/duquee/createutilities/blocks/CUSpriteShifts.java @@ -9,18 +9,25 @@ public class CUSpriteShifts { - public static final CTSpriteShiftEntry VOID_CASING = omni("void_casing"); + public static final CTSpriteShiftEntry + VOID_CASING = omni("void_casing"), + VOID_STEEL_SCAFFOLD = horizontal("scaffold/void_steel_scaffold"), + VOID_STEEL_SCAFFOLD_INSIDE = horizontal("scaffold/void_steel_scaffold_inside"); private static CTSpriteShiftEntry omni(String name) { return getCT(AllCTTypes.OMNIDIRECTIONAL, name); } - private static CTSpriteShiftEntry getCT(CTType type, String blockTextureName, String connectedTextureName) { - return CTSpriteShifter.getCT(type, CreateUtilities.asResource("block/" + blockTextureName), CreateUtilities.asResource("block/" + connectedTextureName + "_connected")); + private static CTSpriteShiftEntry horizontal(String name) { + return getCT(AllCTTypes.HORIZONTAL, name); } private static CTSpriteShiftEntry getCT(CTType type, String blockTextureName) { return getCT(type, blockTextureName, blockTextureName); } + private static CTSpriteShiftEntry getCT(CTType type, String blockTextureName, String connectedTextureName) { + return CTSpriteShifter.getCT(type, CreateUtilities.asResource("block/" + blockTextureName), CreateUtilities.asResource("block/" + connectedTextureName + "_connected")); + } + } diff --git a/src/main/java/me/duquee/createutilities/blocks/voidtypes/chest/VoidChestContainer.java b/src/main/java/me/duquee/createutilities/blocks/voidtypes/chest/VoidChestContainer.java index af6234b..5b31aac 100644 --- a/src/main/java/me/duquee/createutilities/blocks/voidtypes/chest/VoidChestContainer.java +++ b/src/main/java/me/duquee/createutilities/blocks/voidtypes/chest/VoidChestContainer.java @@ -53,7 +53,7 @@ protected void initAndReadInventory(VoidChestTileEntity contentHolder) {} @Override protected void addSlots() { addChestSlots(); - addPlayerSlots(8, 85); + addPlayerSlots(8, 90); } private void addChestSlots() { diff --git a/src/main/java/me/duquee/createutilities/blocks/voidtypes/chest/VoidChestScreen.java b/src/main/java/me/duquee/createutilities/blocks/voidtypes/chest/VoidChestScreen.java index 7f65ec9..b2f3d52 100644 --- a/src/main/java/me/duquee/createutilities/blocks/voidtypes/chest/VoidChestScreen.java +++ b/src/main/java/me/duquee/createutilities/blocks/voidtypes/chest/VoidChestScreen.java @@ -17,6 +17,7 @@ public class VoidChestScreen extends AbstractSimiContainerScreen