diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 5d9f32c4a..3b361aae8 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -4152,6 +4152,7 @@ c4a88166bb906a88b986c37a002057a86d2ece00 data/create/recipes/crafting/schematics c60542c99008f7abecdd03c47137b51e20a4747b data/create/recipes/crimsite_pillar_from_stone_types_crimsite_stonecutting.json 4629d9a1a8a98a6b5b8b82c4507ca9e321c3a210 data/create/recipes/crimson_window.json 72cffde4281a1e34d77aa91c847e811833b68f21 data/create/recipes/crimson_window_pane.json +03f2a05276bdb94ad68ecc65870bb881f405cebc data/create/recipes/crushing/amethyst_block.json 63a5543dbd89b250664fee43c036f2a29fef3fe1 data/create/recipes/crushing/amethyst_cluster.json ace6ea5ed1828f4cbb1be0ae8ef10049bd4a07fc data/create/recipes/crushing/asurine.json 11fb7eaaf31336e0b2d7b0bba217a40bd37bf057 data/create/recipes/crushing/asurine_recycling.json diff --git a/src/generated/resources/data/create/recipes/crushing/amethyst_block.json b/src/generated/resources/data/create/recipes/crushing/amethyst_block.json new file mode 100644 index 000000000..3e6e27a7e --- /dev/null +++ b/src/generated/resources/data/create/recipes/crushing/amethyst_block.json @@ -0,0 +1,19 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:amethyst_block" + } + ], + "results": [ + { + "item": "minecraft:amethyst_shard", + "count": 3 + }, + { + "item": "minecraft:amethyst_shard", + "chance": 0.5 + } + ], + "processingTime": 150 +} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index aa39f37cd..96295fd63 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -267,6 +267,7 @@ public class AllBlocks { public static final BlockEntry SCHEMATICANNON = REGISTRATE.block("schematicannon", SchematicannonBlock::new) .initialProperties(() -> Blocks.DISPENSER) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .transform(pickaxeOnly()) .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) .loot((lt, block) -> { @@ -287,6 +288,7 @@ public class AllBlocks { public static final BlockEntry SCHEMATIC_TABLE = REGISTRATE.block("schematic_table", SchematicTableBlock::new) .initialProperties(() -> Blocks.LECTERN) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(axeOrPickaxe()) .blockstate((ctx, prov) -> prov.horizontalBlock(ctx.getEntry(), prov.models() .getExistingFile(ctx.getId()), 0)) @@ -301,6 +303,7 @@ public class AllBlocks { public static final BlockEntry SHAFT = REGISTRATE.block("shaft", ShaftBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.METAL)) .transform(BlockStressDefaults.setNoImpact()) .transform(pickaxeOnly()) .blockstate(BlockStateGen.axisBlockProvider(false)) @@ -311,6 +314,7 @@ public class AllBlocks { public static final BlockEntry COGWHEEL = REGISTRATE.block("cogwheel", CogWheelBlock::small) .initialProperties(SharedProperties::stone) .properties(p -> p.sound(SoundType.WOOD)) + .properties(p -> p.color(MaterialColor.DIRT)) .transform(BlockStressDefaults.setNoImpact()) .transform(axeOrPickaxe()) .blockstate(BlockStateGen.axisBlockProvider(false)) @@ -323,6 +327,7 @@ public class AllBlocks { REGISTRATE.block("large_cogwheel", CogWheelBlock::large) .initialProperties(SharedProperties::stone) .properties(p -> p.sound(SoundType.WOOD)) + .properties(p -> p.color(MaterialColor.DIRT)) .transform(axeOrPickaxe()) .transform(BlockStressDefaults.setNoImpact()) .blockstate(BlockStateGen.axisBlockProvider(false)) @@ -333,18 +338,21 @@ public class AllBlocks { public static final BlockEntry ANDESITE_ENCASED_SHAFT = REGISTRATE.block("andesite_encased_shaft", EncasedShaftBlock::andesite) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(BuilderTransformers.encasedShaft("andesite", () -> AllSpriteShifts.ANDESITE_CASING)) .transform(axeOrPickaxe()) .register(); public static final BlockEntry BRASS_ENCASED_SHAFT = REGISTRATE.block("brass_encased_shaft", EncasedShaftBlock::brass) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) .transform(BuilderTransformers.encasedShaft("brass", () -> AllSpriteShifts.BRASS_CASING)) .transform(axeOrPickaxe()) .register(); public static final BlockEntry ANDESITE_ENCASED_COGWHEEL = REGISTRATE .block("andesite_encased_cogwheel", p -> EncasedCogwheelBlock.andesite(false, p)) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(BuilderTransformers.encasedCogwheel("andesite", () -> AllSpriteShifts.ANDESITE_CASING)) .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCogCTBehaviour(AllSpriteShifts.ANDESITE_CASING, Couple.create(AllSpriteShifts.ANDESITE_ENCASED_COGWHEEL_SIDE, @@ -354,6 +362,7 @@ public class AllBlocks { public static final BlockEntry BRASS_ENCASED_COGWHEEL = REGISTRATE.block("brass_encased_cogwheel", p -> EncasedCogwheelBlock.brass(false, p)) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) .transform(BuilderTransformers.encasedCogwheel("brass", () -> AllSpriteShifts.BRASS_CASING)) .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCogCTBehaviour(AllSpriteShifts.BRASS_CASING, Couple.create(AllSpriteShifts.BRASS_ENCASED_COGWHEEL_SIDE, @@ -363,12 +372,14 @@ public class AllBlocks { public static final BlockEntry ANDESITE_ENCASED_LARGE_COGWHEEL = REGISTRATE.block("andesite_encased_large_cogwheel", p -> EncasedCogwheelBlock.andesite(true, p)) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(BuilderTransformers.encasedLargeCogwheel("andesite", () -> AllSpriteShifts.ANDESITE_CASING)) .transform(axeOrPickaxe()) .register(); public static final BlockEntry BRASS_ENCASED_LARGE_COGWHEEL = REGISTRATE.block("brass_encased_large_cogwheel", p -> EncasedCogwheelBlock.brass(true, p)) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) .transform(BuilderTransformers.encasedLargeCogwheel("brass", () -> AllSpriteShifts.BRASS_CASING)) .transform(axeOrPickaxe()) .register(); @@ -376,6 +387,7 @@ public class AllBlocks { public static final BlockEntry GEARBOX = REGISTRATE.block("gearbox", GearboxBlock::new) .initialProperties(SharedProperties::stone) .properties(BlockBehaviour.Properties::noOcclusion) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(BlockStressDefaults.setNoImpact()) .transform(axeOrPickaxe()) .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.ANDESITE_CASING))) @@ -389,6 +401,7 @@ public class AllBlocks { public static final BlockEntry CLUTCH = REGISTRATE.block("clutch", ClutchBlock::new) .initialProperties(SharedProperties::stone) .properties(BlockBehaviour.Properties::noOcclusion) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(BlockStressDefaults.setNoImpact()) .transform(axeOrPickaxe()) .blockstate((c, p) -> BlockStateGen.axisBlock(c, p, AssetLookup.forPowered(c, p))) @@ -399,6 +412,7 @@ public class AllBlocks { public static final BlockEntry GEARSHIFT = REGISTRATE.block("gearshift", GearshiftBlock::new) .initialProperties(SharedProperties::stone) .properties(BlockBehaviour.Properties::noOcclusion) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(BlockStressDefaults.setNoImpact()) .transform(axeOrPickaxe()) .blockstate((c, p) -> BlockStateGen.axisBlock(c, p, AssetLookup.forPowered(c, p))) @@ -410,6 +424,7 @@ public class AllBlocks { REGISTRATE.block("encased_chain_drive", EncasedBeltBlock::new) .initialProperties(SharedProperties::stone) .properties(BlockBehaviour.Properties::noOcclusion) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(BlockStressDefaults.setNoImpact()) .transform(axeOrPickaxe()) .blockstate((c, p) -> new EncasedBeltGenerator((state, suffix) -> p.models() @@ -422,6 +437,7 @@ public class AllBlocks { REGISTRATE.block("adjustable_chain_gearshift", AdjustablePulleyBlock::new) .initialProperties(SharedProperties::stone) .properties(BlockBehaviour.Properties::noOcclusion) + .properties(p -> p.color(MaterialColor.NETHER)) .transform(BlockStressDefaults.setNoImpact()) .transform(axeOrPickaxe()) .blockstate((c, p) -> new EncasedBeltGenerator((state, suffix) -> { @@ -441,6 +457,7 @@ public class AllBlocks { .initialProperties(SharedProperties.BELT_MATERIAL, MaterialColor.COLOR_GRAY) .properties(p -> p.sound(SoundType.WOOL)) .properties(p -> p.strength(0.8F)) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .transform(axeOrPickaxe()) .blockstate(new BeltGenerator()::generate) .transform(BlockStressDefaults.setImpact(0)) @@ -451,6 +468,7 @@ public class AllBlocks { public static final BlockEntry CREATIVE_MOTOR = REGISTRATE.block("creative_motor", CreativeMotorBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.COLOR_PURPLE)) .tag(AllBlockTags.SAFE_NBT.tag) .transform(pickaxeOnly()) .blockstate(new CreativeMotorGenerator()::generate) @@ -462,6 +480,7 @@ public class AllBlocks { public static final BlockEntry WATER_WHEEL = REGISTRATE.block("water_wheel", WaterWheelBlock::new) .initialProperties(SharedProperties::wooden) + .properties(p -> p.color(MaterialColor.DIRT)) .properties(BlockBehaviour.Properties::noOcclusion) .transform(axeOrPickaxe()) .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(false)) @@ -472,6 +491,7 @@ public class AllBlocks { public static final BlockEntry ENCASED_FAN = REGISTRATE.block("encased_fan", EncasedFanBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.PODZOL)) .blockstate(BlockStateGen.directionalBlockProvider(true)) .addLayer(() -> RenderType::cutoutMipped) .transform(axeOrPickaxe()) @@ -482,6 +502,7 @@ public class AllBlocks { public static final BlockEntry NOZZLE = REGISTRATE.block("nozzle", NozzleBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) .tag(AllBlockTags.BRITTLE.tag) .transform(axeOrPickaxe()) .blockstate(BlockStateGen.directionalBlockProvider(true)) @@ -492,6 +513,7 @@ public class AllBlocks { public static final BlockEntry TURNTABLE = REGISTRATE.block("turntable", TurntableBlock::new) .initialProperties(SharedProperties::wooden) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(axeOrPickaxe()) .blockstate((c, p) -> p.simpleBlock(c.getEntry(), AssetLookup.standardModel(c, p))) .transform(BlockStressDefaults.setImpact(4.0)) @@ -500,6 +522,7 @@ public class AllBlocks { public static final BlockEntry HAND_CRANK = REGISTRATE.block("hand_crank", HandCrankBlock::new) .initialProperties(SharedProperties::wooden) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(axeOrPickaxe()) .blockstate(BlockStateGen.directionalBlockProvider(true)) .transform(BlockStressDefaults.setCapacity(8.0)) @@ -511,6 +534,7 @@ public class AllBlocks { public static final BlockEntry CUCKOO_CLOCK = REGISTRATE.block("cuckoo_clock", CuckooClockBlock::regular) + .properties(p -> p.color(MaterialColor.TERRACOTTA_YELLOW)) .transform(axeOrPickaxe()) .transform(BuilderTransformers.cuckooClock()) .onRegister(assignDataBehaviour(new TimeOfDayDisplaySource(), "time_of_day")) @@ -519,6 +543,7 @@ public class AllBlocks { public static final BlockEntry MYSTERIOUS_CUCKOO_CLOCK = REGISTRATE.block("mysterious_cuckoo_clock", CuckooClockBlock::mysterious) + .properties(p -> p.color(MaterialColor.TERRACOTTA_YELLOW)) .transform(axeOrPickaxe()) .transform(BuilderTransformers.cuckooClock()) .lang("Cuckoo Clock") @@ -527,6 +552,7 @@ public class AllBlocks { public static final BlockEntry MILLSTONE = REGISTRATE.block("millstone", MillstoneBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.METAL)) .transform(pickaxeOnly()) .blockstate((c, p) -> p.simpleBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p))) .transform(BlockStressDefaults.setImpact(4.0)) @@ -536,6 +562,7 @@ public class AllBlocks { public static final BlockEntry CRUSHING_WHEEL = REGISTRATE.block("crushing_wheel", CrushingWheelBlock::new) + .properties(p -> p.color(MaterialColor.METAL)) .initialProperties(SharedProperties::stone) .properties(BlockBehaviour.Properties::noOcclusion) .transform(pickaxeOnly()) @@ -548,6 +575,7 @@ public class AllBlocks { public static final BlockEntry CRUSHING_WHEEL_CONTROLLER = REGISTRATE.block("crushing_wheel_controller", CrushingWheelControllerBlock::new) .initialProperties(SharedProperties.CRUSHING_WHEEL_CONTROLLER_MATERIAL) + .properties(p -> p.color(MaterialColor.STONE)) .properties(p -> p.noOcclusion() .noDrops() .air()) @@ -561,6 +589,7 @@ public class AllBlocks { public static final BlockEntry MECHANICAL_PRESS = REGISTRATE.block("mechanical_press", MechanicalPressBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.PODZOL)) .properties(BlockBehaviour.Properties::noOcclusion) .transform(axeOrPickaxe()) .blockstate(BlockStateGen.horizontalBlockProvider(true)) @@ -572,6 +601,7 @@ public class AllBlocks { public static final BlockEntry MECHANICAL_MIXER = REGISTRATE.block("mechanical_mixer", MechanicalMixerBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.STONE)) .properties(BlockBehaviour.Properties::noOcclusion) .transform(axeOrPickaxe()) .blockstate((c, p) -> p.simpleBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p))) @@ -583,6 +613,7 @@ public class AllBlocks { public static final BlockEntry BASIN = REGISTRATE.block("basin", BasinBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .properties(p -> p.sound(SoundType.NETHERITE_BLOCK)) .transform(pickaxeOnly()) .blockstate(new BasinGenerator()::generate) @@ -594,6 +625,7 @@ public class AllBlocks { public static final BlockEntry BLAZE_BURNER = REGISTRATE.block("blaze_burner", BlazeBurnerBlock::new) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .properties(p -> p.lightLevel(BlazeBurnerBlock::getLight)) .transform(pickaxeOnly()) .addLayer(() -> RenderType::cutoutMipped) @@ -609,6 +641,7 @@ public class AllBlocks { public static final BlockEntry LIT_BLAZE_BURNER = REGISTRATE.block("lit_blaze_burner", LitBlazeBurnerBlock::new) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) .properties(p -> p.lightLevel(LitBlazeBurnerBlock::getLight)) .transform(pickaxeOnly()) .addLayer(() -> RenderType::cutoutMipped) @@ -626,6 +659,7 @@ public class AllBlocks { public static final BlockEntry DEPOT = REGISTRATE.block("depot", DepotBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .transform(axeOrPickaxe()) .blockstate((c, p) -> p.simpleBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p))) .onRegister(assignDataBehaviour(new ItemNameDisplaySource(), "combine_item_names")) @@ -636,6 +670,7 @@ public class AllBlocks { public static final BlockEntry WEIGHTED_EJECTOR = REGISTRATE.block("weighted_ejector", EjectorBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .properties(BlockBehaviour.Properties::noOcclusion) .transform(axeOrPickaxe()) .blockstate((c, p) -> p.horizontalBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p), 180)) @@ -647,6 +682,7 @@ public class AllBlocks { public static final BlockEntry CHUTE = REGISTRATE.block("chute", ChuteBlock::new) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .properties(p -> p.sound(SoundType.NETHERITE_BLOCK)) .transform(pickaxeOnly()) .addLayer(() -> RenderType::cutoutMipped) @@ -657,6 +693,7 @@ public class AllBlocks { public static final BlockEntry SMART_CHUTE = REGISTRATE.block("smart_chute", SmartChuteBlock::new) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .properties(p -> p.sound(SoundType.NETHERITE_BLOCK)) .transform(pickaxeOnly()) .blockstate((c, p) -> BlockStateGen.simpleBlock(c, p, AssetLookup.forPowered(c, p))) @@ -666,6 +703,7 @@ public class AllBlocks { public static final BlockEntry SPEEDOMETER = REGISTRATE.block("speedometer", GaugeBlock::speed) .initialProperties(SharedProperties::wooden) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(axeOrPickaxe()) .transform(BlockStressDefaults.setNoImpact()) .blockstate(new GaugeGenerator()::generate) @@ -675,6 +713,7 @@ public class AllBlocks { public static final BlockEntry STRESSOMETER = REGISTRATE.block("stressometer", GaugeBlock::stress) .initialProperties(SharedProperties::wooden) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(axeOrPickaxe()) .transform(BlockStressDefaults.setNoImpact()) .blockstate(new GaugeGenerator()::generate) @@ -700,6 +739,7 @@ public class AllBlocks { public static final BlockEntry METAL_GIRDER = REGISTRATE.block("metal_girder", GirderBlock::new) .blockstate(GirderBlockStateGenerator::blockState) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .properties(p -> p.sound(SoundType.NETHERITE_BLOCK)) .transform(pickaxeOnly()) .onRegister(CreateRegistrate.blockModel(() -> ConnectedGirderModel::new)) @@ -710,6 +750,7 @@ public class AllBlocks { public static final BlockEntry METAL_GIRDER_ENCASED_SHAFT = REGISTRATE.block("metal_girder_encased_shaft", GirderEncasedShaftBlock::new) .blockstate(GirderBlockStateGenerator::blockStateWithShaft) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .properties(p -> p.sound(SoundType.NETHERITE_BLOCK)) .transform(pickaxeOnly()) .loot((p, b) -> p.add(b, RegistrateBlockLootTables.createSingleItemTable(METAL_GIRDER.get()) @@ -733,6 +774,7 @@ public class AllBlocks { public static final BlockEntry ENCASED_FLUID_PIPE = REGISTRATE.block("encased_fluid_pipe", EncasedPipeBlock::new) .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) .properties(BlockBehaviour.Properties::noOcclusion) .transform(axeOrPickaxe()) .blockstate(BlockStateGen.encasedPipe()) @@ -767,6 +809,7 @@ public class AllBlocks { public static final BlockEntry MECHANICAL_PUMP = REGISTRATE.block("mechanical_pump", PumpBlock::new) .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.STONE)) .transform(pickaxeOnly()) .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::opaque)) @@ -778,6 +821,7 @@ public class AllBlocks { public static final BlockEntry SMART_FLUID_PIPE = REGISTRATE.block("smart_fluid_pipe", SmartFluidPipeBlock::new) .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_YELLOW)) .transform(pickaxeOnly()) .blockstate(new SmartFluidPipeGenerator()::generate) .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::transparent)) @@ -805,6 +849,7 @@ public class AllBlocks { public static final DyedBlockList DYED_VALVE_HANDLES = new DyedBlockList<>(colour -> { String colourName = colour.getSerializedName(); return REGISTRATE.block(colourName + "_valve_handle", p -> ValveHandleBlock.dyed(p, colour)) + .properties(p -> p.color(colour.getMaterialColor())) .transform(pickaxeOnly()) .transform(BuilderTransformers.valveHandle(colour)) .recipe((c, p) -> ShapelessRecipeBuilder.shapeless(c.get()) @@ -831,6 +876,7 @@ public class AllBlocks { REGISTRATE.block("creative_fluid_tank", FluidTankBlock::creative) .initialProperties(SharedProperties::copperMetal) .properties(BlockBehaviour.Properties::noOcclusion) + .properties(p -> p.color(MaterialColor.COLOR_PURPLE)) .transform(pickaxeOnly()) .tag(AllBlockTags.SAFE_NBT.tag) .blockstate(new FluidTankGenerator("creative_")::generate) @@ -875,6 +921,7 @@ public class AllBlocks { public static final BlockEntry PORTABLE_FLUID_INTERFACE = REGISTRATE.block("portable_fluid_interface", PortableStorageInterfaceBlock::forFluids) .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) .transform(axeOrPickaxe()) .blockstate((c, p) -> p.directionalBlock(c.get(), AssetLookup.partialBaseModel(c, p))) .onRegister(addMovementBehaviour(new PortableStorageInterfaceMovement())) @@ -894,6 +941,7 @@ public class AllBlocks { public static final BlockEntry STEAM_WHISTLE = REGISTRATE.block("steam_whistle", WhistleBlock::new) .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.GOLD)) .transform(pickaxeOnly()) .blockstate(new WhistleGenerator()::generate) .item() @@ -903,6 +951,7 @@ public class AllBlocks { public static final BlockEntry STEAM_WHISTLE_EXTENSION = REGISTRATE.block("steam_whistle_extension", WhistleExtenderBlock::new) .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.GOLD)) .transform(pickaxeOnly()) .blockstate(BlockStateGen.whistleExtender()) .register(); @@ -910,6 +959,7 @@ public class AllBlocks { public static final BlockEntry POWERED_SHAFT = REGISTRATE.block("powered_shaft", PoweredShaftBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.METAL)) .transform(pickaxeOnly()) .blockstate(BlockStateGen.axisBlockProvider(false)) .loot((lt, block) -> lt.dropOther(block, AllBlocks.SHAFT.get())) @@ -919,6 +969,7 @@ public class AllBlocks { public static final BlockEntry MECHANICAL_PISTON = REGISTRATE.block("mechanical_piston", MechanicalPistonBlock::normal) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(axeOrPickaxe()) .transform(BuilderTransformers.mechanicalPiston(PistonType.DEFAULT)) .tag(AllBlockTags.SAFE_NBT.tag) @@ -926,6 +977,7 @@ public class AllBlocks { public static final BlockEntry STICKY_MECHANICAL_PISTON = REGISTRATE.block("sticky_mechanical_piston", MechanicalPistonBlock::sticky) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(axeOrPickaxe()) .transform(BuilderTransformers.mechanicalPiston(PistonType.STICKY)) .tag(AllBlockTags.SAFE_NBT.tag) @@ -935,6 +987,7 @@ public class AllBlocks { REGISTRATE.block("piston_extension_pole", PistonExtensionPoleBlock::new) .initialProperties(() -> Blocks.PISTON_HEAD) .properties(p -> p.sound(SoundType.SCAFFOLDING)) + .properties(p -> p.color(MaterialColor.DIRT)) .transform(axeOrPickaxe()) .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(false)) .simpleItem() @@ -943,6 +996,7 @@ public class AllBlocks { public static final BlockEntry MECHANICAL_PISTON_HEAD = REGISTRATE.block("mechanical_piston_head", MechanicalPistonHeadBlock::new) .initialProperties(() -> Blocks.PISTON_HEAD) + .properties(p -> p.color(MaterialColor.DIRT)) .transform(axeOrPickaxe()) .loot((p, b) -> p.dropOther(b, PISTON_EXTENSION_POLE.get())) .blockstate((c, p) -> BlockStateGen.directionalBlockIgnoresWaterlogged(c, p, state -> p.models() @@ -953,6 +1007,7 @@ public class AllBlocks { public static final BlockEntry GANTRY_CARRIAGE = REGISTRATE.block("gantry_carriage", GantryCarriageBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.PODZOL)) .properties(BlockBehaviour.Properties::noOcclusion) .transform(axeOrPickaxe()) .blockstate(BlockStateGen.directionalAxisBlockProvider()) @@ -963,6 +1018,7 @@ public class AllBlocks { public static final BlockEntry GANTRY_SHAFT = REGISTRATE.block("gantry_shaft", GantryShaftBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.NETHER)) .transform(axeOrPickaxe()) .blockstate((c, p) -> p.directionalBlock(c.get(), s -> { boolean isPowered = s.getValue(GantryShaftBlock.POWERED); @@ -988,6 +1044,7 @@ public class AllBlocks { public static final BlockEntry WINDMILL_BEARING = REGISTRATE.block("windmill_bearing", WindmillBearingBlock::new) .transform(axeOrPickaxe()) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(BuilderTransformers.bearing("windmill", "gearbox", true)) .transform(BlockStressDefaults.setCapacity(512.0)) .tag(AllBlockTags.SAFE_NBT.tag) @@ -995,6 +1052,7 @@ public class AllBlocks { public static final BlockEntry MECHANICAL_BEARING = REGISTRATE.block("mechanical_bearing", MechanicalBearingBlock::new) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(axeOrPickaxe()) .transform(BuilderTransformers.bearing("mechanical", "gearbox", false)) .transform(BlockStressDefaults.setImpact(4.0)) @@ -1004,6 +1062,7 @@ public class AllBlocks { public static final BlockEntry CLOCKWORK_BEARING = REGISTRATE.block("clockwork_bearing", ClockworkBearingBlock::new) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) .transform(axeOrPickaxe()) .transform(BuilderTransformers.bearing("clockwork", "brass_gearbox", false)) .transform(BlockStressDefaults.setImpact(4.0)) @@ -1012,6 +1071,7 @@ public class AllBlocks { public static final BlockEntry ROPE_PULLEY = REGISTRATE.block("rope_pulley", PulleyBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(axeOrPickaxe()) .tag(AllBlockTags.SAFE_NBT.tag) .blockstate(BlockStateGen.horizontalAxisBlockProvider(true)) @@ -1039,6 +1099,7 @@ public class AllBlocks { public static final BlockEntry CART_ASSEMBLER = REGISTRATE.block("cart_assembler", CartAssemblerBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .properties(BlockBehaviour.Properties::noOcclusion) .transform(axeOrPickaxe()) .blockstate(BlockStateGen.cartAssembler()) @@ -1071,6 +1132,7 @@ public class AllBlocks { public static final BlockEntry LINEAR_CHASSIS = REGISTRATE.block("linear_chassis", LinearChassisBlock::new) .initialProperties(SharedProperties::wooden) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) .transform(axeOrPickaxe()) .tag(AllBlockTags.SAFE_NBT.tag) .blockstate(BlockStateGen.linearChassis()) @@ -1082,6 +1144,7 @@ public class AllBlocks { public static final BlockEntry SECONDARY_LINEAR_CHASSIS = REGISTRATE.block("secondary_linear_chassis", LinearChassisBlock::new) .initialProperties(SharedProperties::wooden) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(axeOrPickaxe()) .tag(AllBlockTags.SAFE_NBT.tag) .blockstate(BlockStateGen.linearChassis()) @@ -1092,6 +1155,7 @@ public class AllBlocks { public static final BlockEntry RADIAL_CHASSIS = REGISTRATE.block("radial_chassis", RadialChassisBlock::new) .initialProperties(SharedProperties::wooden) + .properties(p -> p.color(MaterialColor.DIRT)) .transform(axeOrPickaxe()) .tag(AllBlockTags.SAFE_NBT.tag) .blockstate(BlockStateGen.radialChassis()) @@ -1115,6 +1179,7 @@ public class AllBlocks { public static final BlockEntry MECHANICAL_DRILL = REGISTRATE.block("mechanical_drill", DrillBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(axeOrPickaxe()) .blockstate(BlockStateGen.directionalBlockProvider(true)) .transform(BlockStressDefaults.setImpact(4.0)) @@ -1125,6 +1190,7 @@ public class AllBlocks { public static final BlockEntry MECHANICAL_SAW = REGISTRATE.block("mechanical_saw", SawBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(axeOrPickaxe()) .blockstate(new SawGenerator()::generate) .transform(BlockStressDefaults.setImpact(4.0)) @@ -1136,6 +1202,7 @@ public class AllBlocks { public static final BlockEntry DEPLOYER = REGISTRATE.block("deployer", DeployerBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(axeOrPickaxe()) .blockstate(BlockStateGen.directionalAxisBlockProvider()) .transform(BlockStressDefaults.setImpact(4.0)) @@ -1148,6 +1215,7 @@ public class AllBlocks { public static final BlockEntry PORTABLE_STORAGE_INTERFACE = REGISTRATE.block("portable_storage_interface", PortableStorageInterfaceBlock::forItems) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(axeOrPickaxe()) .blockstate((c, p) -> p.directionalBlock(c.get(), AssetLookup.partialBaseModel(c, p))) .onRegister(addMovementBehaviour(new PortableStorageInterfaceMovement())) @@ -1158,6 +1226,7 @@ public class AllBlocks { public static final BlockEntry REDSTONE_CONTACT = REGISTRATE.block("redstone_contact", RedstoneContactBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .transform(axeOrPickaxe()) .onRegister(addMovementBehaviour(new ContactMovementBehaviour())) .blockstate((c, p) -> p.directionalBlock(c.get(), AssetLookup.forPowered(c, p))) @@ -1168,6 +1237,7 @@ public class AllBlocks { public static final BlockEntry MECHANICAL_HARVESTER = REGISTRATE.block("mechanical_harvester", HarvesterBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.METAL)) .transform(axeOrPickaxe()) .onRegister(addMovementBehaviour(new HarvesterMovementBehaviour())) .blockstate(BlockStateGen.horizontalBlockProvider(true)) @@ -1179,6 +1249,7 @@ public class AllBlocks { public static final BlockEntry MECHANICAL_PLOUGH = REGISTRATE.block("mechanical_plough", PloughBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .transform(axeOrPickaxe()) .onRegister(addMovementBehaviour(new PloughMovementBehaviour())) .blockstate(BlockStateGen.horizontalBlockProvider(false)) @@ -1191,6 +1262,7 @@ public class AllBlocks { SeatInteractionBehaviour interactionBehaviour = new SeatInteractionBehaviour(); return REGISTRATE.block(colourName + "_seat", p -> new SeatBlock(p, colour, colour == DyeColor.RED)) .initialProperties(SharedProperties::wooden) + .properties(p -> p.color(colour.getMaterialColor())) .transform(axeOnly()) .onRegister(addMovementBehaviour(movementBehaviour)) .onRegister(addInteractionBehaviour(interactionBehaviour)) @@ -1222,6 +1294,7 @@ public class AllBlocks { public static final BlockEntry SAIL_FRAME = REGISTRATE.block("sail_frame", p -> SailBlock.frame(p)) .initialProperties(SharedProperties::wooden) + .properties(p -> p.color(MaterialColor.DIRT)) .properties(p -> p.sound(SoundType.SCAFFOLDING) .noOcclusion()) .transform(axeOnly()) @@ -1234,6 +1307,7 @@ public class AllBlocks { public static final BlockEntry SAIL = REGISTRATE.block("white_sail", p -> SailBlock.withCanvas(p, DyeColor.WHITE)) .initialProperties(SharedProperties::wooden) + .properties(p -> p.color(MaterialColor.SNOW)) .properties(p -> p.sound(SoundType.SCAFFOLDING) .noOcclusion()) .transform(axeOnly()) @@ -1250,6 +1324,7 @@ public class AllBlocks { String colourName = colour.getSerializedName(); return REGISTRATE.block(colourName + "_sail", p -> SailBlock.withCanvas(p, colour)) .initialProperties(SharedProperties::wooden) + .properties(p -> p.color(colour.getMaterialColor())) .properties(p -> p.sound(SoundType.SCAFFOLDING) .noOcclusion()) .transform(axeOnly()) @@ -1262,26 +1337,31 @@ public class AllBlocks { }); public static final BlockEntry ANDESITE_CASING = REGISTRATE.block("andesite_casing", CasingBlock::new) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(BuilderTransformers.casing(() -> AllSpriteShifts.ANDESITE_CASING)) .register(); public static final BlockEntry BRASS_CASING = REGISTRATE.block("brass_casing", CasingBlock::new) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) .transform(BuilderTransformers.casing(() -> AllSpriteShifts.BRASS_CASING)) .register(); public static final BlockEntry COPPER_CASING = REGISTRATE.block("copper_casing", CasingBlock::new) - .transform(BuilderTransformers.casing(() -> AllSpriteShifts.COPPER_CASING)) + .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) .properties(p -> p.sound(SoundType.COPPER)) + .transform(BuilderTransformers.casing(() -> AllSpriteShifts.COPPER_CASING)) .register(); public static final BlockEntry SHADOW_STEEL_CASING = REGISTRATE.block("shadow_steel_casing", CasingBlock::deprecated) + .properties(p -> p.color(MaterialColor.COLOR_BLACK)) .transform(BuilderTransformers.casing(() -> AllSpriteShifts.SHADOW_STEEL_CASING)) .lang("Shadow Casing") .register(); public static final BlockEntry REFINED_RADIANCE_CASING = REGISTRATE.block("refined_radiance_casing", CasingBlock::deprecated) + .properties(p -> p.color(MaterialColor.SNOW)) .transform(BuilderTransformers.casing(() -> AllSpriteShifts.REFINED_RADIANCE_CASING)) .properties(p -> p.lightLevel($ -> 12)) .lang("Radiant Casing") @@ -1290,6 +1370,7 @@ public class AllBlocks { public static final BlockEntry MECHANICAL_CRAFTER = REGISTRATE.block("mechanical_crafter", MechanicalCrafterBlock::new) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_YELLOW)) .properties(BlockBehaviour.Properties::noOcclusion) .transform(axeOrPickaxe()) .blockstate(BlockStateGen.horizontalBlockProvider(true)) @@ -1303,6 +1384,7 @@ public class AllBlocks { public static final BlockEntry SEQUENCED_GEARSHIFT = REGISTRATE.block("sequenced_gearshift", SequencedGearshiftBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) .transform(axeOrPickaxe()) .tag(AllBlockTags.SAFE_NBT.tag) .properties(BlockBehaviour.Properties::noOcclusion) @@ -1314,6 +1396,7 @@ public class AllBlocks { public static final BlockEntry FLYWHEEL = REGISTRATE.block("flywheel", FlywheelBlock::new) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_YELLOW)) .properties(BlockBehaviour.Properties::noOcclusion) .transform(axeOrPickaxe()) .transform(BlockStressDefaults.setNoImpact()) @@ -1325,6 +1408,7 @@ public class AllBlocks { public static final BlockEntry ROTATION_SPEED_CONTROLLER = REGISTRATE.block("rotation_speed_controller", SpeedControllerBlock::new) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_YELLOW)) .transform(axeOrPickaxe()) .tag(AllBlockTags.SAFE_NBT.tag) .transform(BlockStressDefaults.setNoImpact()) @@ -1341,6 +1425,7 @@ public class AllBlocks { public static final BlockEntry MECHANICAL_ARM = REGISTRATE.block("mechanical_arm", ArmBlock::new) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_YELLOW)) .transform(axeOrPickaxe()) .blockstate((c, p) -> p.getVariantBuilder(c.get()) .forAllStates(s -> ConfiguredModel.builder() @@ -1354,6 +1439,7 @@ public class AllBlocks { public static final BlockEntry TRACK = REGISTRATE.block("track", TrackBlock::new) .initialProperties(Material.DECORATION) + .properties(p -> p.color(MaterialColor.NONE)) .properties(p -> p.strength(0.8F) .sound(SoundType.METAL) .noOcclusion()) @@ -1370,11 +1456,13 @@ public class AllBlocks { public static final BlockEntry RAILWAY_CASING = REGISTRATE.block("railway_casing", CasingBlock::new) .transform(BuilderTransformers.layeredCasing(() -> AllSpriteShifts.RAILWAY_CASING_SIDE, () -> AllSpriteShifts.RAILWAY_CASING)) + .properties(p -> p.color(MaterialColor.TERRACOTTA_CYAN)) .properties(p -> p.sound(SoundType.NETHERITE_BLOCK)) .register(); public static final BlockEntry TRACK_STATION = REGISTRATE.block("track_station", StationBlock::new) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.PODZOL)) .properties(p -> p.sound(SoundType.NETHERITE_BLOCK)) .transform(axeOrPickaxe()) .blockstate((c, p) -> p.simpleBlock(c.get(), AssetLookup.partialBaseModel(c, p))) @@ -1386,6 +1474,7 @@ public class AllBlocks { public static final BlockEntry TRACK_SIGNAL = REGISTRATE.block("track_signal", SignalBlock::new) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.PODZOL)) .properties(p -> p.sound(SoundType.NETHERITE_BLOCK)) .properties(BlockBehaviour.Properties::noOcclusion) .transform(pickaxeOnly()) @@ -1401,16 +1490,19 @@ public class AllBlocks { public static final BlockEntry SMALL_BOGEY = REGISTRATE.block("small_bogey", p -> new StandardBogeyBlock(p, false)) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(BuilderTransformers.bogey()) .register(); public static final BlockEntry LARGE_BOGEY = REGISTRATE.block("large_bogey", p -> new StandardBogeyBlock(p, true)) + .properties(p -> p.color(MaterialColor.PODZOL)) .transform(BuilderTransformers.bogey()) .register(); public static final BlockEntry CONTROLS = REGISTRATE.block("controls", ControlsBlock::new) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) .properties(p -> p.sound(SoundType.NETHERITE_BLOCK)) .blockstate((c, p) -> p.horizontalBlock(c.get(), s -> AssetLookup.partialBaseModel(c, p, s.getValue(ControlsBlock.OPEN) ? "open" : "closed"))) @@ -1423,6 +1515,7 @@ public class AllBlocks { public static final BlockEntry ITEM_VAULT = REGISTRATE.block("item_vault", ItemVaultBlock::new) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BLUE)) .properties(p -> p.sound(SoundType.NETHERITE_BLOCK) .explosionResistance(1200)) .transform(pickaxeOnly()) @@ -1439,6 +1532,7 @@ public class AllBlocks { public static final BlockEntry ANDESITE_FUNNEL = REGISTRATE.block("andesite_funnel", AndesiteFunnelBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.STONE)) .transform(pickaxeOnly()) .tag(AllBlockTags.SAFE_NBT.tag) .onRegister(addMovementBehaviour(FunnelMovementBehaviour.andesite())) @@ -1451,6 +1545,7 @@ public class AllBlocks { public static final BlockEntry ANDESITE_BELT_FUNNEL = REGISTRATE.block("andesite_belt_funnel", p -> new BeltFunnelBlock(AllBlocks.ANDESITE_FUNNEL, p)) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.STONE)) .transform(pickaxeOnly()) .tag(AllBlockTags.SAFE_NBT.tag) .blockstate(new BeltFunnelGenerator("andesite", new ResourceLocation("block/polished_andesite"))::generate) @@ -1460,6 +1555,7 @@ public class AllBlocks { public static final BlockEntry BRASS_FUNNEL = REGISTRATE.block("brass_funnel", BrassFunnelBlock::new) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_YELLOW)) .transform(pickaxeOnly()) .tag(AllBlockTags.SAFE_NBT.tag) .onRegister(addMovementBehaviour(FunnelMovementBehaviour.brass())) @@ -1472,6 +1568,7 @@ public class AllBlocks { public static final BlockEntry BRASS_BELT_FUNNEL = REGISTRATE.block("brass_belt_funnel", p -> new BeltFunnelBlock(AllBlocks.BRASS_FUNNEL, p)) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_YELLOW)) .transform(pickaxeOnly()) .tag(AllBlockTags.SAFE_NBT.tag) .blockstate(new BeltFunnelGenerator("brass", Create.asResource("block/brass_block"))::generate) @@ -1480,12 +1577,14 @@ public class AllBlocks { public static final BlockEntry ANDESITE_TUNNEL = REGISTRATE.block("andesite_tunnel", BeltTunnelBlock::new) + .properties(p -> p.color(MaterialColor.STONE)) .transform(BuilderTransformers.beltTunnel("andesite", new ResourceLocation("block/polished_andesite"))) .onRegister(assignDataBehaviour(new AccumulatedItemCountDisplaySource(), "accumulate_items")) .register(); public static final BlockEntry BRASS_TUNNEL = REGISTRATE.block("brass_tunnel", BrassTunnelBlock::new) + .properties(p -> p.color(MaterialColor.TERRACOTTA_YELLOW)) .transform(BuilderTransformers.beltTunnel("brass", Create.asResource("block/brass_block"))) .onRegister(assignDataBehaviour(new ItemThoughputDisplaySource(), "item_throughput")) .onRegister(connectedTextures(BrassTunnelCTBehaviour::new)) @@ -1494,6 +1593,7 @@ public class AllBlocks { public static final BlockEntry CONTENT_OBSERVER = REGISTRATE.block("content_observer", ContentObserverBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) .transform(axeOrPickaxe()) .blockstate((c, p) -> p.horizontalBlock(c.get(), AssetLookup.forPowered(c, p))) .onRegister(assignDataBehaviour(new ItemCountDisplaySource(), "count_items")) @@ -1505,6 +1605,7 @@ public class AllBlocks { public static final BlockEntry STOCKPILE_SWITCH = REGISTRATE.block("stockpile_switch", StockpileSwitchBlock::new) .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) .transform(axeOrPickaxe()) .blockstate((c, p) -> p.horizontalBlock(c.get(), AssetLookup.withIndicator(c, p, $ -> AssetLookup.standardModel(c, p), StockpileSwitchBlock.INDICATOR))) @@ -1515,12 +1616,14 @@ public class AllBlocks { public static final BlockEntry CREATIVE_CRATE = REGISTRATE.block("creative_crate", CreativeCrateBlock::new) .transform(BuilderTransformers.crate("creative")) + .properties(p -> p.color(MaterialColor.COLOR_PURPLE)) .tag(AllBlockTags.SAFE_NBT.tag) .register(); public static final BlockEntry DISPLAY_LINK = REGISTRATE.block("display_link", DisplayLinkBlock::new) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) .addLayer(() -> RenderType::translucent) .blockstate((c, p) -> p.directionalBlock(c.get(), AssetLookup.forPowered(c, p))) .item(DisplayLinkBlockItem::new) @@ -1530,6 +1633,7 @@ public class AllBlocks { public static final BlockEntry DISPLAY_BOARD = REGISTRATE.block("display_board", FlapDisplayBlock::new) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .addLayer(() -> RenderType::cutoutMipped) .transform(pickaxeOnly()) .transform(BlockStressDefaults.setImpact(0)) @@ -1544,6 +1648,7 @@ public class AllBlocks { REGISTRATE.block("nixie_tube", p -> new NixieTubeBlock(p, DyeColor.ORANGE)) .initialProperties(SharedProperties::softMetal) .properties(p -> p.lightLevel($ -> 5)) + .properties(p -> p.color(DyeColor.ORANGE.getMaterialColor())) .transform(axeOrPickaxe()) .blockstate(new NixieTubeGenerator()::generate) .addLayer(() -> RenderType::translucent) @@ -1557,6 +1662,7 @@ public class AllBlocks { String colourName = colour.getSerializedName(); return REGISTRATE.block(colourName + "_nixie_tube", p -> new NixieTubeBlock(p, colour)) .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(colour.getMaterialColor())) .properties(p -> p.lightLevel($ -> 5)) .transform(axeOrPickaxe()) .blockstate(new NixieTubeGenerator()::generate) @@ -1568,6 +1674,7 @@ public class AllBlocks { public static final BlockEntry REDSTONE_LINK = REGISTRATE.block("redstone_link", RedstoneLinkBlock::new) .initialProperties(SharedProperties::wooden) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) .transform(axeOrPickaxe()) .tag(AllBlockTags.BRITTLE.tag, AllBlockTags.SAFE_NBT.tag) .blockstate(new RedstoneLinkGenerator()::generate) @@ -1665,12 +1772,14 @@ public class AllBlocks { public static final BlockEntry PECULIAR_BELL = REGISTRATE.block("peculiar_bell", PeculiarBellBlock::new) + .properties(p -> p.color(MaterialColor.GOLD)) .transform(BuilderTransformers.bell()) .onRegister(addMovementBehaviour(new BellMovementBehaviour())) .register(); public static final BlockEntry HAUNTED_BELL = REGISTRATE.block("haunted_bell", HauntedBellBlock::new) + .properties(p -> p.color(MaterialColor.SAND)) .transform(BuilderTransformers.bell()) .onRegister(addMovementBehaviour(new HauntedBellMovementBehaviour())) .register(); @@ -1680,6 +1789,7 @@ public class AllBlocks { return REGISTRATE.block(colourName + "_toolbox", p -> new ToolboxBlock(p, colour)) .initialProperties(SharedProperties::wooden) .properties(p -> p.sound(SoundType.WOOD)) + .properties(p -> p.color(colour.getMaterialColor())) .addLayer(() -> RenderType::cutoutMipped) .loot((lt, block) -> { Builder builder = LootTable.lootTable(); @@ -1717,6 +1827,7 @@ public class AllBlocks { public static final BlockEntry ZINC_ORE = REGISTRATE.block("zinc_ore", Block::new) .initialProperties(() -> Blocks.GOLD_ORE) + .properties(p -> p.color(MaterialColor.METAL)) .properties(p -> p.requiresCorrectToolForDrops() .sound(SoundType.STONE)) .transform(pickaxeOnly()) @@ -1733,6 +1844,7 @@ public class AllBlocks { public static final BlockEntry DEEPSLATE_ZINC_ORE = REGISTRATE.block("deepslate_zinc_ore", Block::new) .initialProperties(() -> Blocks.DEEPSLATE_GOLD_ORE) + .properties(p -> p.color(MaterialColor.STONE)) .properties(p -> p.requiresCorrectToolForDrops() .sound(SoundType.DEEPSLATE)) .transform(pickaxeOnly()) @@ -1749,6 +1861,7 @@ public class AllBlocks { public static final BlockEntry RAW_ZINC_BLOCK = REGISTRATE.block("raw_zinc_block", Block::new) .initialProperties(() -> Blocks.RAW_GOLD_BLOCK) + .properties(p -> p.color(MaterialColor.GLOW_LICHEN)) .properties(p -> p.requiresCorrectToolForDrops()) .transform(pickaxeOnly()) .tag(Tags.Blocks.STORAGE_BLOCKS) @@ -1761,6 +1874,7 @@ public class AllBlocks { public static final BlockEntry ZINC_BLOCK = REGISTRATE.block("zinc_block", p -> new Block(p)) .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.GLOW_LICHEN)) .properties(p -> p.requiresCorrectToolForDrops()) .transform(pickaxeOnly()) .tag(BlockTags.NEEDS_IRON_TOOL) @@ -1774,6 +1888,7 @@ public class AllBlocks { public static final BlockEntry BRASS_BLOCK = REGISTRATE.block("brass_block", p -> new Block(p)) .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.TERRACOTTA_YELLOW)) .properties(p -> p.requiresCorrectToolForDrops()) .transform(pickaxeOnly()) .blockstate((c, p) -> p.simpleBlock(c.get(), p.models() diff --git a/src/main/java/com/simibubi/create/content/palettes/AllPaletteBlocks.java b/src/main/java/com/simibubi/create/content/palettes/AllPaletteBlocks.java index 84c97a77d..80446ffba 100644 --- a/src/main/java/com/simibubi/create/content/palettes/AllPaletteBlocks.java +++ b/src/main/java/com/simibubi/create/content/palettes/AllPaletteBlocks.java @@ -25,6 +25,7 @@ import net.minecraft.tags.BlockTags; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.GlassBlock; import net.minecraft.world.level.block.state.properties.WoodType; +import net.minecraft.world.level.material.MaterialColor; import net.minecraftforge.common.Tags; public class AllPaletteBlocks { @@ -50,8 +51,8 @@ public class AllPaletteBlocks { framedGlass("framed_glass", () -> new StandardCTBehaviour(AllSpriteShifts.FRAMED_GLASS)), HORIZONTAL_FRAMED_GLASS = framedGlass("horizontal_framed_glass", () -> new HorizontalCTBehaviour(AllSpriteShifts.HORIZONTAL_FRAMED_GLASS, AllSpriteShifts.FRAMED_GLASS)), - VERTICAL_FRAMED_GLASS = - framedGlass("vertical_framed_glass", () -> new HorizontalCTBehaviour(AllSpriteShifts.VERTICAL_FRAMED_GLASS)); + VERTICAL_FRAMED_GLASS = framedGlass("vertical_framed_glass", + () -> new HorizontalCTBehaviour(AllSpriteShifts.VERTICAL_FRAMED_GLASS)); public static final BlockEntry TILED_GLASS_PANE = WindowGen.standardGlassPane("tiled_glass", TILED_GLASS, Create.asResource("block/palettes/tiled_glass"), @@ -61,8 +62,8 @@ public class AllPaletteBlocks { framedGlassPane("framed_glass", FRAMED_GLASS, () -> AllSpriteShifts.FRAMED_GLASS), HORIZONTAL_FRAMED_GLASS_PANE = framedGlassPane("horizontal_framed_glass", HORIZONTAL_FRAMED_GLASS, () -> AllSpriteShifts.HORIZONTAL_FRAMED_GLASS), - VERTICAL_FRAMED_GLASS_PANE = - framedGlassPane("vertical_framed_glass", VERTICAL_FRAMED_GLASS, () -> AllSpriteShifts.VERTICAL_FRAMED_GLASS); + VERTICAL_FRAMED_GLASS_PANE = framedGlassPane("vertical_framed_glass", VERTICAL_FRAMED_GLASS, + () -> AllSpriteShifts.VERTICAL_FRAMED_GLASS); public static final BlockEntry OAK_WINDOW = woodenWindowBlock(WoodType.OAK, Blocks.OAK_PLANKS), SPRUCE_WINDOW = woodenWindowBlock(WoodType.SPRUCE, Blocks.SPRUCE_PLANKS), @@ -72,8 +73,9 @@ public class AllPaletteBlocks { DARK_OAK_WINDOW = woodenWindowBlock(WoodType.DARK_OAK, Blocks.DARK_OAK_PLANKS), CRIMSON_WINDOW = woodenWindowBlock(WoodType.CRIMSON, Blocks.CRIMSON_PLANKS), WARPED_WINDOW = woodenWindowBlock(WoodType.WARPED, Blocks.WARPED_PLANKS), - ORNATE_IRON_WINDOW = customWindowBlock("ornate_iron_window", AllItems.ANDESITE_ALLOY, - () -> AllSpriteShifts.ORNATE_IRON_WINDOW, () -> RenderType::cutoutMipped); + ORNATE_IRON_WINDOW = + customWindowBlock("ornate_iron_window", AllItems.ANDESITE_ALLOY, () -> AllSpriteShifts.ORNATE_IRON_WINDOW, + () -> RenderType::cutoutMipped, () -> MaterialColor.TERRACOTTA_LIGHT_GRAY); public static final BlockEntry OAK_WINDOW_PANE = woodenWindowPane(WoodType.OAK, OAK_WINDOW), @@ -90,7 +92,7 @@ public class AllPaletteBlocks { static { AllPaletteStoneTypes.register(REGISTRATE); } - + public static void register() {} } diff --git a/src/main/java/com/simibubi/create/content/palettes/AllPaletteStoneTypes.java b/src/main/java/com/simibubi/create/content/palettes/AllPaletteStoneTypes.java index 290617f1f..c39513849 100644 --- a/src/main/java/com/simibubi/create/content/palettes/AllPaletteStoneTypes.java +++ b/src/main/java/com/simibubi/create/content/palettes/AllPaletteStoneTypes.java @@ -15,6 +15,7 @@ import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.material.MaterialColor; import net.minecraftforge.registries.ForgeRegistries; public enum AllPaletteStoneTypes { @@ -28,29 +29,36 @@ public enum AllPaletteStoneTypes { TUFF(VANILLA_RANGE, r -> () -> Blocks.TUFF), ASURINE(STANDARD_RANGE, r -> r.paletteStoneBlock("asurine", () -> Blocks.DEEPSLATE, true) - .properties(p -> p.destroyTime(1.25f)) + .properties(p -> p.destroyTime(1.25f) + .color(MaterialColor.COLOR_BLUE)) .register()), CRIMSITE(STANDARD_RANGE, r -> r.paletteStoneBlock("crimsite", () -> Blocks.DEEPSLATE, true) - .properties(p -> p.destroyTime(1.25f)) + .properties(p -> p.destroyTime(1.25f) + .color(MaterialColor.COLOR_RED)) .register()), LIMESTONE(STANDARD_RANGE, r -> r.paletteStoneBlock("limestone", () -> Blocks.SANDSTONE, true) - .properties(p -> p.destroyTime(1.25f)) + .properties(p -> p.destroyTime(1.25f) + .color(MaterialColor.SAND)) .register()), OCHRUM(STANDARD_RANGE, r -> r.paletteStoneBlock("ochrum", () -> Blocks.CALCITE, true) - .properties(p -> p.destroyTime(1.25f)) + .properties(p -> p.destroyTime(1.25f) + .color(MaterialColor.TERRACOTTA_YELLOW)) .register()), SCORIA(STANDARD_RANGE, r -> r.paletteStoneBlock("scoria", () -> Blocks.BLACKSTONE, true) + .properties(p -> p.color(MaterialColor.COLOR_BROWN)) .register()), SCORCHIA(STANDARD_RANGE, r -> r.paletteStoneBlock("scorchia", () -> Blocks.BLACKSTONE, true) + .properties(p -> p.color(MaterialColor.TERRACOTTA_GRAY)) .register()), VERIDIUM(STANDARD_RANGE, r -> r.paletteStoneBlock("veridium", () -> Blocks.TUFF, true) - .properties(p -> p.destroyTime(1.25f)) + .properties(p -> p.destroyTime(1.25f) + .color(MaterialColor.WARPED_NYLIUM)) .register()) ; @@ -81,7 +89,8 @@ public enum AllPaletteStoneTypes { NonNullSupplier baseBlock = paletteStoneVariants.factory.apply(registrate); paletteStoneVariants.baseBlock = baseBlock; String id = Lang.asId(paletteStoneVariants.name()); - paletteStoneVariants.materialTag = AllTags.optionalTag(ForgeRegistries.ITEMS, Create.asResource("stone_types/" + id)); + paletteStoneVariants.materialTag = + AllTags.optionalTag(ForgeRegistries.ITEMS, Create.asResource("stone_types/" + id)); paletteStoneVariants.variants = new PalettesVariantEntry(id, paletteStoneVariants); } } diff --git a/src/main/java/com/simibubi/create/foundation/data/WindowGen.java b/src/main/java/com/simibubi/create/foundation/data/WindowGen.java index 86df5b333..4e0dbad0b 100644 --- a/src/main/java/com/simibubi/create/foundation/data/WindowGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/WindowGen.java @@ -37,6 +37,7 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockBehaviour.Properties; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.WoodType; +import net.minecraft.world.level.material.MaterialColor; import net.minecraftforge.client.model.generators.ModelFile; import net.minecraftforge.common.Tags; @@ -65,10 +66,10 @@ public class WindowGen { } public static BlockEntry customWindowBlock(String name, Supplier ingredient, - Supplier ct, Supplier> renderType) { + Supplier ct, Supplier> renderType, Supplier color) { NonNullFunction end_texture = n -> Create.asResource(palettesDir() + name + "_end"); NonNullFunction side_texture = n -> Create.asResource(palettesDir() + n); - return windowBlock(name, ingredient, ct, renderType, end_texture, side_texture); + return windowBlock(name, ingredient, ct, renderType, end_texture, side_texture, color); } public static BlockEntry woodenWindowBlock(WoodType woodType, Block planksBlock, @@ -78,13 +79,14 @@ public class WindowGen { NonNullFunction end_texture = $ -> new ResourceLocation("block/" + woodName + "_planks"); NonNullFunction side_texture = n -> Create.asResource(palettesDir() + n); - return windowBlock(name, () -> planksBlock, () -> AllSpriteShifts.getWoodenWindow(woodType), renderType, end_texture, - side_texture); + return windowBlock(name, () -> planksBlock, () -> AllSpriteShifts.getWoodenWindow(woodType), renderType, + end_texture, side_texture, planksBlock::defaultMaterialColor); } public static BlockEntry windowBlock(String name, Supplier ingredient, Supplier ct, Supplier> renderType, - NonNullFunction endTexture, NonNullFunction sideTexture) { + NonNullFunction endTexture, NonNullFunction sideTexture, + Supplier color) { return REGISTRATE.block(name, WindowBlock::new) .onRegister(connectedTextures(() -> new HorizontalCTBehaviour(ct.get()))) .addLayer(renderType) @@ -97,6 +99,7 @@ public class WindowGen { .save(p::accept)) .initialProperties(() -> Blocks.GLASS) .properties(WindowGen::glassProperties) + .properties(p -> p.color(color.get())) .loot((t, g) -> t.dropWhenSilkTouch(g)) .blockstate((c, p) -> p.simpleBlock(c.get(), p.models() .cubeColumn(c.getName(), sideTexture.apply(c.getName()), endTexture.apply(c.getName())))) @@ -105,7 +108,8 @@ public class WindowGen { .register(); } - public static BlockEntry framedGlass(String name, Supplier behaviour) { + public static BlockEntry framedGlass(String name, + Supplier behaviour) { return REGISTRATE.block(name, ConnectedGlassBlock::new) .onRegister(connectedTextures(behaviour)) .addLayer(() -> RenderType::translucent) @@ -150,8 +154,8 @@ public class WindowGen { String name = woodName + "_window"; ResourceLocation topTexture = new ResourceLocation("block/" + woodName + "_planks"); ResourceLocation sideTexture = Create.asResource(palettesDir() + name); - return connectedGlassPane(name, parent, () -> AllSpriteShifts.getWoodenWindow(woodType), sideTexture, sideTexture, - topTexture, renderType); + return connectedGlassPane(name, parent, () -> AllSpriteShifts.getWoodenWindow(woodType), sideTexture, + sideTexture, topTexture, renderType); } public static BlockEntry standardGlassPane(String name, Supplier parent, @@ -203,6 +207,8 @@ public class WindowGen { .onRegister(connectedTextures) .addLayer(renderType) .initialProperties(() -> Blocks.GLASS_PANE) + .properties(p -> p.color(parent.get() + .defaultMaterialColor())) .blockstate(stateProvider) .recipe((c, p) -> ShapedRecipeBuilder.shaped(c.get(), 16) .pattern("###") diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/CrushingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/CrushingRecipeGen.java index 65f37968c..e39471da7 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/CrushingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/CrushingRecipeGen.java @@ -139,6 +139,10 @@ public class CrushingRecipeGen extends ProcessingRecipeGen { GLOWSTONE = create(() -> Blocks.GLOWSTONE, b -> b.duration(150) .output(Items.GLOWSTONE_DUST, 3) .output(.5f, Items.GLOWSTONE_DUST)), + + AMETHYST_BLOCK = create(() -> Blocks.AMETHYST_BLOCK, b -> b.duration(150) + .output(Items.AMETHYST_SHARD, 3) + .output(.5f, Items.AMETHYST_SHARD)), LEATHER_HORSE_ARMOR = create(() -> Items.LEATHER_HORSE_ARMOR, b -> b.duration(200) .output(Items.LEATHER, 2)