2021-09-02 19:11:51 +02:00
|
|
|
package com.minelittlepony.unicopia.block;
|
|
|
|
|
2022-09-25 01:55:29 +02:00
|
|
|
import java.util.ArrayList;
|
2023-10-14 02:43:46 +02:00
|
|
|
import java.util.Collections;
|
2022-09-25 01:55:29 +02:00
|
|
|
import java.util.List;
|
|
|
|
|
2022-08-27 15:14:00 +02:00
|
|
|
import com.minelittlepony.unicopia.Unicopia;
|
2023-10-18 19:52:59 +02:00
|
|
|
import com.minelittlepony.unicopia.block.cloud.CloudPillarBlock;
|
2023-10-18 20:41:58 +02:00
|
|
|
import com.minelittlepony.unicopia.block.cloud.CloudSlabBlock;
|
2023-10-20 00:13:41 +02:00
|
|
|
import com.minelittlepony.unicopia.block.cloud.CloudStairsBlock;
|
2023-10-19 22:37:19 +02:00
|
|
|
import com.minelittlepony.unicopia.block.cloud.CompactedCloudBlock;
|
|
|
|
import com.minelittlepony.unicopia.block.cloud.NaturalCloudBlock;
|
2023-10-31 17:45:41 +01:00
|
|
|
import com.minelittlepony.unicopia.block.cloud.OrientedCloudBlock;
|
2023-11-02 18:24:18 +01:00
|
|
|
import com.minelittlepony.unicopia.block.cloud.PoreousCloudStairsBlock;
|
2023-10-20 21:12:13 +02:00
|
|
|
import com.minelittlepony.unicopia.block.cloud.CloudBedBlock;
|
2023-10-19 00:15:48 +02:00
|
|
|
import com.minelittlepony.unicopia.block.cloud.CloudBlock;
|
|
|
|
import com.minelittlepony.unicopia.block.cloud.SoggyCloudBlock;
|
|
|
|
import com.minelittlepony.unicopia.block.cloud.SoggyCloudSlabBlock;
|
2023-11-02 18:24:18 +01:00
|
|
|
import com.minelittlepony.unicopia.block.cloud.SoggyCloudStairsBlock;
|
2023-10-19 02:41:22 +02:00
|
|
|
import com.minelittlepony.unicopia.block.cloud.UnstableCloudBlock;
|
2022-09-25 00:14:29 +02:00
|
|
|
import com.minelittlepony.unicopia.item.UItems;
|
2023-10-20 00:13:41 +02:00
|
|
|
import com.minelittlepony.unicopia.item.cloud.CloudBlockItem;
|
2022-12-19 00:12:49 +01:00
|
|
|
import com.minelittlepony.unicopia.item.group.ItemGroupRegistry;
|
2023-05-23 10:48:29 +02:00
|
|
|
import com.minelittlepony.unicopia.server.world.UTreeGen;
|
2021-09-02 19:11:51 +02:00
|
|
|
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
2023-05-23 19:49:56 +02:00
|
|
|
import net.fabricmc.fabric.api.registry.FlammableBlockRegistry;
|
2022-09-25 00:14:29 +02:00
|
|
|
import net.fabricmc.fabric.api.registry.StrippableBlockRegistry;
|
2022-09-23 23:25:00 +02:00
|
|
|
import net.minecraft.block.*;
|
2023-05-23 19:49:56 +02:00
|
|
|
import net.minecraft.block.AbstractBlock.Settings;
|
2023-08-14 21:31:33 +02:00
|
|
|
import net.minecraft.block.entity.BlockEntityType;
|
|
|
|
import net.minecraft.block.enums.Instrument;
|
2023-06-03 13:40:54 +02:00
|
|
|
import net.minecraft.block.piston.PistonBehavior;
|
2022-09-25 00:14:29 +02:00
|
|
|
import net.minecraft.item.*;
|
2021-09-02 19:11:51 +02:00
|
|
|
import net.minecraft.sound.BlockSoundGroup;
|
2022-09-25 00:14:29 +02:00
|
|
|
import net.minecraft.util.Identifier;
|
2022-09-23 23:25:00 +02:00
|
|
|
import net.minecraft.util.math.Direction;
|
2023-05-23 19:49:56 +02:00
|
|
|
import net.minecraft.util.shape.VoxelShapes;
|
2022-12-18 22:07:24 +01:00
|
|
|
import net.minecraft.registry.Registry;
|
2023-06-03 13:40:54 +02:00
|
|
|
import net.minecraft.registry.RegistryKey;
|
2022-12-18 22:07:24 +01:00
|
|
|
import net.minecraft.registry.Registries;
|
2021-09-02 19:11:51 +02:00
|
|
|
|
|
|
|
public interface UBlocks {
|
2022-09-25 01:55:29 +02:00
|
|
|
List<Block> TRANSLUCENT_BLOCKS = new ArrayList<>();
|
2023-10-20 00:13:41 +02:00
|
|
|
List<Block> SEMI_TRANSPARENT_BLOCKS = new ArrayList<>();
|
2022-09-25 01:55:29 +02:00
|
|
|
|
2023-06-03 13:40:54 +02:00
|
|
|
Block ROCKS = register("rocks", new RockCropBlock(Settings.create()
|
|
|
|
.mapColor(MapColor.STONE_GRAY)
|
|
|
|
.nonOpaque()
|
|
|
|
.pistonBehavior(PistonBehavior.DESTROY)
|
2021-09-03 00:47:48 +02:00
|
|
|
.requiresTool()
|
2021-09-02 19:11:51 +02:00
|
|
|
.ticksRandomly()
|
|
|
|
.strength(2)
|
|
|
|
.sounds(BlockSoundGroup.STONE)));
|
|
|
|
|
2021-12-31 13:54:51 +01:00
|
|
|
Block FROSTED_OBSIDIAN = register("frosted_obsidian", new FrostedObsidianBlock(FabricBlockSettings.copy(Blocks.OBSIDIAN).ticksRandomly()));
|
|
|
|
|
2022-12-19 00:12:49 +01:00
|
|
|
Block ZAP_LOG = register("zap_log", new ZapAppleLogBlock(Blocks.OAK_LOG, MapColor.GRAY, MapColor.DEEPSLATE_GRAY), ItemGroups.BUILDING_BLOCKS);
|
|
|
|
Block ZAP_WOOD = register("zap_wood", new ZapAppleLogBlock(Blocks.OAK_WOOD, MapColor.DEEPSLATE_GRAY, MapColor.DEEPSLATE_GRAY), ItemGroups.BUILDING_BLOCKS);
|
2022-09-25 00:14:29 +02:00
|
|
|
|
2022-12-19 00:12:49 +01:00
|
|
|
Block STRIPPED_ZAP_LOG = register("stripped_zap_log", new ZapAppleLogBlock(Blocks.STRIPPED_OAK_LOG, MapColor.LIGHT_GRAY, MapColor.GRAY), ItemGroups.BUILDING_BLOCKS);
|
|
|
|
Block STRIPPED_ZAP_WOOD = register("stripped_zap_wood", new ZapAppleLogBlock(Blocks.STRIPPED_OAK_WOOD, MapColor.GRAY, MapColor.GRAY), ItemGroups.BUILDING_BLOCKS);
|
2022-09-23 23:25:00 +02:00
|
|
|
|
2022-12-19 00:12:49 +01:00
|
|
|
Block ZAP_LEAVES = register("zap_leaves", new ZapAppleLeavesBlock(), ItemGroups.NATURAL);
|
2023-05-25 12:56:18 +02:00
|
|
|
Block FLOWERING_ZAP_LEAVES = register("flowering_zap_leaves", new BaseZapAppleLeavesBlock(), ItemGroups.NATURAL);
|
2023-05-23 20:30:21 +02:00
|
|
|
Block ZAP_LEAVES_PLACEHOLDER = register("zap_leaves_placeholder", new ZapAppleLeavesPlaceholderBlock());
|
2023-06-03 13:40:54 +02:00
|
|
|
Block ZAP_BULB = register("zap_bulb", new FruitBlock(Settings.create().mapColor(MapColor.GRAY).strength(500, 1200).sounds(BlockSoundGroup.AZALEA_LEAVES), Direction.DOWN, ZAP_LEAVES, FruitBlock.DEFAULT_SHAPE, false));
|
|
|
|
Block ZAP_APPLE = register("zap_apple", new FruitBlock(Settings.create().mapColor(MapColor.GRAY).sounds(BlockSoundGroup.AZALEA_LEAVES), Direction.DOWN, ZAP_LEAVES, FruitBlock.DEFAULT_SHAPE, false));
|
2022-09-23 23:25:00 +02:00
|
|
|
|
2023-05-25 20:02:08 +02:00
|
|
|
Block PALM_LOG = register("palm_log", BlockConstructionUtils.createLogBlock(MapColor.OFF_WHITE, MapColor.SPRUCE_BROWN), ItemGroups.BUILDING_BLOCKS);
|
|
|
|
Block PALM_WOOD = register("palm_wood", BlockConstructionUtils.createWoodBlock(MapColor.OFF_WHITE), ItemGroups.BUILDING_BLOCKS);
|
|
|
|
Block STRIPPED_PALM_LOG = register("stripped_palm_log", BlockConstructionUtils.createLogBlock(MapColor.OFF_WHITE, MapColor.OFF_WHITE), ItemGroups.BUILDING_BLOCKS);
|
|
|
|
Block STRIPPED_PALM_WOOD = register("stripped_palm_wood", BlockConstructionUtils.createWoodBlock(MapColor.OFF_WHITE), ItemGroups.BUILDING_BLOCKS);
|
2023-05-23 19:49:56 +02:00
|
|
|
|
2023-06-03 13:40:54 +02:00
|
|
|
Block PALM_PLANKS = register("palm_planks", new Block(Settings.create().mapColor(MapColor.OFF_WHITE).strength(2, 3).sounds(BlockSoundGroup.WOOD).pistonBehavior(PistonBehavior.NORMAL)), ItemGroups.BUILDING_BLOCKS);
|
|
|
|
Block PALM_STAIRS = register("palm_stairs", new StairsBlock(PALM_PLANKS.getDefaultState(), Settings.copy(PALM_PLANKS).pistonBehavior(PistonBehavior.NORMAL)), ItemGroups.BUILDING_BLOCKS);
|
|
|
|
Block PALM_SLAB = register("palm_slab", new SlabBlock(Settings.create().mapColor(PALM_PLANKS.getDefaultMapColor()).strength(2, 3).sounds(BlockSoundGroup.WOOD).pistonBehavior(PistonBehavior.NORMAL)), ItemGroups.BUILDING_BLOCKS);
|
|
|
|
Block PALM_FENCE = register("palm_fence", new FenceBlock(Settings.create().mapColor(PALM_PLANKS.getDefaultMapColor()).strength(2, 3).sounds(BlockSoundGroup.WOOD).pistonBehavior(PistonBehavior.NORMAL)), ItemGroups.BUILDING_BLOCKS);
|
|
|
|
Block PALM_FENCE_GATE = register("palm_fence_gate", new FenceGateBlock(Settings.create().mapColor(PALM_PLANKS.getDefaultMapColor()).strength(2, 3).sounds(BlockSoundGroup.WOOD).pistonBehavior(PistonBehavior.NORMAL), WoodType.OAK), ItemGroups.BUILDING_BLOCKS);
|
2023-08-14 21:31:33 +02:00
|
|
|
Block PALM_DOOR = register("palm_door", new DoorBlock(Settings.create().mapColor(PALM_PLANKS.getDefaultMapColor()).instrument(Instrument.BASS).strength(3.0f).nonOpaque().burnable().pistonBehavior(PistonBehavior.DESTROY), UWoodTypes.PALM.setType()), ItemGroups.FUNCTIONAL);
|
|
|
|
Block PALM_TRAPDOOR = register("palm_trapdoor", new TrapdoorBlock(Settings.create().mapColor(PALM_PLANKS.getDefaultMapColor()).instrument(Instrument.BASS).strength(3).nonOpaque().allowsSpawning(BlockConstructionUtils::never).burnable(), UWoodTypes.PALM.setType()), ItemGroups.FUNCTIONAL);
|
2023-06-03 13:40:54 +02:00
|
|
|
Block PALM_PRESSURE_PLATE = register("palm_pressure_plate", new PressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, Settings.create().mapColor(PALM_PLANKS.getDefaultMapColor()).noCollision().strength(0.5f).sounds(BlockSoundGroup.WOOD).pistonBehavior(PistonBehavior.DESTROY), BlockSetType.OAK), ItemGroups.BUILDING_BLOCKS);
|
2023-05-25 20:02:08 +02:00
|
|
|
Block PALM_BUTTON = register("palm_button", BlockConstructionUtils.woodenButton(), ItemGroups.BUILDING_BLOCKS);
|
2023-08-14 21:31:33 +02:00
|
|
|
Block PALM_SIGN = register("palm_sign", new SignBlock(Settings.create().mapColor(PALM_PLANKS.getDefaultMapColor()).solid().instrument(Instrument.BASS).noCollision().strength(1).burnable().sounds(BlockSoundGroup.WOOD), UWoodTypes.PALM), ItemGroups.FUNCTIONAL);
|
|
|
|
Block PALM_WALL_SIGN = register("palm_wall_sign", new WallSignBlock(Settings.create().mapColor(PALM_PLANKS.getDefaultMapColor()).solid().instrument(Instrument.BASS).noCollision().strength(1).dropsLike(PALM_SIGN).burnable(), UWoodTypes.PALM));
|
|
|
|
Block PALM_HANGING_SIGN = register("palm_hanging_sign", new HangingSignBlock(Settings.create().mapColor(PALM_LOG.getDefaultMapColor()).solid().instrument(Instrument.BASS).noCollision().strength(1).burnable(), UWoodTypes.PALM), ItemGroups.FUNCTIONAL);
|
|
|
|
Block PALM_WALL_HANGING_SIGN = register("palm_wall_hanging_sign", new WallHangingSignBlock(Settings.create().mapColor(PALM_LOG.getDefaultMapColor()).solid().instrument(Instrument.BASS).noCollision().strength(1.0f).burnable().dropsLike(PALM_HANGING_SIGN), UWoodTypes.PALM));
|
2023-05-25 20:02:08 +02:00
|
|
|
|
|
|
|
Block PALM_LEAVES = register("palm_leaves", BlockConstructionUtils.createLeavesBlock(BlockSoundGroup.GRASS), ItemGroups.BUILDING_BLOCKS);
|
2023-09-08 22:26:38 +02:00
|
|
|
Block BANANAS = register("bananas", new FruitBlock(Settings.create().mapColor(MapColor.YELLOW).sounds(BlockSoundGroup.WOOD).noCollision().ticksRandomly().breakInstantly().pistonBehavior(PistonBehavior.DESTROY), Direction.DOWN, PALM_LEAVES, VoxelShapes.fullCube()));
|
|
|
|
|
2023-09-09 15:32:27 +02:00
|
|
|
PineappleCropBlock PINEAPPLE = register("pineapple", new PineappleCropBlock(Settings.create().sounds(BlockSoundGroup.GRASS).noCollision().breakInstantly().pistonBehavior(PistonBehavior.DESTROY)));
|
2023-05-23 19:49:56 +02:00
|
|
|
|
2023-09-08 13:36:37 +02:00
|
|
|
Block MANGO_LEAVES = register("mango_leaves", new FruitBearingBlock(FabricBlockSettings.copy(Blocks.JUNGLE_LEAVES),
|
|
|
|
0xCCFFAA00,
|
|
|
|
() -> UBlocks.MANGO,
|
|
|
|
() -> UItems.MANGO.getDefaultStack()
|
|
|
|
), ItemGroups.NATURAL);
|
|
|
|
Block MANGO = register("mango", new FruitBlock(Settings.create().mapColor(MapColor.ORANGE), Direction.DOWN, MANGO_LEAVES, FruitBlock.DEFAULT_SHAPE));
|
|
|
|
|
2023-06-03 13:40:54 +02:00
|
|
|
Block WEATHER_VANE = register("weather_vane", new WeatherVaneBlock(Settings.create().mapColor(MapColor.BLACK).requiresTool().strength(3.0f, 6.0f).sounds(BlockSoundGroup.METAL).nonOpaque().pistonBehavior(PistonBehavior.BLOCK)), ItemGroups.TOOLS);
|
2022-10-12 15:46:15 +02:00
|
|
|
|
2022-09-25 00:14:29 +02:00
|
|
|
Block GREEN_APPLE_LEAVES = register("green_apple_leaves", new FruitBearingBlock(FabricBlockSettings.copy(Blocks.OAK_LEAVES),
|
|
|
|
0xE5FFFF88,
|
|
|
|
() -> UBlocks.GREEN_APPLE,
|
|
|
|
() -> UItems.GREEN_APPLE.getDefaultStack()
|
2022-12-19 00:12:49 +01:00
|
|
|
), ItemGroups.NATURAL);
|
2023-06-03 13:40:54 +02:00
|
|
|
Block GREEN_APPLE = register("green_apple", new FruitBlock(Settings.create().mapColor(MapColor.GREEN), Direction.DOWN, GREEN_APPLE_LEAVES, FruitBlock.DEFAULT_SHAPE));
|
2022-09-25 01:55:29 +02:00
|
|
|
Block GREEN_APPLE_SPROUT = register("green_apple_sprout", new SproutBlock(0xE5FFFF88, () -> UItems.GREEN_APPLE_SEEDS, () -> UTreeGen.GREEN_APPLE_TREE.sapling().map(Block::getDefaultState).get()));
|
2022-09-25 00:14:29 +02:00
|
|
|
|
2022-09-25 15:39:07 +02:00
|
|
|
Block SWEET_APPLE_LEAVES = register("sweet_apple_leaves", new FruitBearingBlock(FabricBlockSettings.copy(Blocks.OAK_LEAVES),
|
|
|
|
0xE5FFCC88,
|
|
|
|
() -> UBlocks.SWEET_APPLE,
|
|
|
|
() -> UItems.SWEET_APPLE.getDefaultStack()
|
2022-12-19 00:12:49 +01:00
|
|
|
), ItemGroups.NATURAL);
|
2023-06-03 13:40:54 +02:00
|
|
|
Block SWEET_APPLE = register("sweet_apple", new FruitBlock(Settings.create().mapColor(MapColor.GREEN), Direction.DOWN, SWEET_APPLE_LEAVES, FruitBlock.DEFAULT_SHAPE));
|
2022-09-25 15:39:07 +02:00
|
|
|
Block SWEET_APPLE_SPROUT = register("sweet_apple_sprout", new SproutBlock(0xE5FFCC88, () -> UItems.SWEET_APPLE_SEEDS, () -> UTreeGen.SWEET_APPLE_TREE.sapling().map(Block::getDefaultState).get()));
|
|
|
|
|
2022-09-25 16:23:10 +02:00
|
|
|
Block SOUR_APPLE_LEAVES = register("sour_apple_leaves", new FruitBearingBlock(FabricBlockSettings.copy(Blocks.OAK_LEAVES),
|
|
|
|
0xE5FFCCCC,
|
|
|
|
() -> UBlocks.SOUR_APPLE,
|
|
|
|
() -> UItems.SOUR_APPLE.getDefaultStack()
|
2022-12-19 00:12:49 +01:00
|
|
|
), ItemGroups.NATURAL);
|
2023-06-03 13:40:54 +02:00
|
|
|
Block SOUR_APPLE = register("sour_apple", new FruitBlock(Settings.create().mapColor(MapColor.GREEN), Direction.DOWN, SOUR_APPLE_LEAVES, FruitBlock.DEFAULT_SHAPE));
|
2022-09-25 16:23:10 +02:00
|
|
|
Block SOUR_APPLE_SPROUT = register("sour_apple_sprout", new SproutBlock(0xE5FFCC88, () -> UItems.SOUR_APPLE_SEEDS, () -> UTreeGen.SOUR_APPLE_TREE.sapling().map(Block::getDefaultState).get()));
|
|
|
|
|
2023-08-16 18:56:34 +02:00
|
|
|
Block APPLE_PIE = register("apple_pie", new PieBlock(Settings.create().solid().mapColor(MapColor.ORANGE).strength(0.5F).sounds(BlockSoundGroup.WOOL).pistonBehavior(PistonBehavior.DESTROY),
|
|
|
|
() -> UItems.APPLE_PIE_SLICE,
|
|
|
|
() -> UItems.APPLE_PIE,
|
|
|
|
() -> UItems.APPLE_PIE_HOOF
|
|
|
|
));
|
2022-09-29 22:01:56 +02:00
|
|
|
|
2023-10-20 00:13:41 +02:00
|
|
|
SegmentedCropBlock OATS = register("oats", SegmentedCropBlock.create(11, 5, AbstractBlock.Settings.copy(Blocks.WHEAT), () -> UItems.OAT_SEEDS, null, null));
|
|
|
|
SegmentedCropBlock OATS_STEM = register("oats_stem", OATS.createNext(5));
|
|
|
|
SegmentedCropBlock OATS_CROWN = register("oats_crown", OATS_STEM.createNext(5));
|
|
|
|
|
2023-10-14 03:37:52 +02:00
|
|
|
Block CHITIN = register("chitin", new SnowyBlock(Settings.create().mapColor(MapColor.PALE_PURPLE).hardness(5).requiresTool().ticksRandomly().sounds(BlockSoundGroup.CORAL)), ItemGroups.NATURAL);
|
2023-10-13 00:57:31 +02:00
|
|
|
Block SURFACE_CHITIN = register("surface_chitin", new GrowableBlock(Settings.copy(CHITIN), () -> CHITIN), ItemGroups.NATURAL);
|
|
|
|
Block CHISELLED_CHITIN = register("chiselled_chitin", new Block(Settings.create().mapColor(MapColor.PALE_PURPLE).hardness(5).requiresTool()), ItemGroups.BUILDING_BLOCKS);
|
2023-10-14 03:37:52 +02:00
|
|
|
Block CHITIN_SPIKES = register("chitin_spikes", new SpikesBlock(Settings.copy(CHISELLED_CHITIN).noCollision().nonOpaque()), ItemGroups.NATURAL);
|
2023-10-13 00:57:31 +02:00
|
|
|
Block CHISELLED_CHITIN_SLAB = register("chiselled_chitin_slab", new SlabBlock(Settings.copy(CHISELLED_CHITIN)), ItemGroups.BUILDING_BLOCKS);
|
|
|
|
Block CHISELLED_CHITIN_STAIRS = register("chiselled_chitin_stairs", new StairsBlock(CHISELLED_CHITIN.getDefaultState(), Settings.copy(CHISELLED_CHITIN)), ItemGroups.BUILDING_BLOCKS);
|
|
|
|
Block CHISELLED_CHITIN_HULL = register("chiselled_chitin_hull", new OrientedBlock(Settings.copy(CHISELLED_CHITIN)), ItemGroups.BUILDING_BLOCKS);
|
2023-10-15 17:51:57 +02:00
|
|
|
Block HIVE = register("hive", new HiveBlock(Settings.create().mapColor(MapColor.PURPLE).hardness(6).ticksRandomly().sounds(BlockSoundGroup.CORAL)), ItemGroups.NATURAL);
|
2023-10-14 23:20:17 +02:00
|
|
|
Block MYSTERIOUS_EGG = register("mysterious_egg", new PileBlock(Settings.copy(Blocks.SLIME_BLOCK), PileBlock.MYSTERIOUS_EGG_SHAPES), ItemGroups.NATURAL);
|
2023-10-15 21:39:43 +02:00
|
|
|
Block SLIME_PUSTULE = register("slime_pustule", new SlimePustuleBlock(Settings.copy(Blocks.SLIME_BLOCK)), ItemGroups.NATURAL);
|
2023-10-13 00:57:31 +02:00
|
|
|
|
2023-10-20 21:12:13 +02:00
|
|
|
Block CLOUD = register("cloud", new NaturalCloudBlock(Settings.create().mapColor(MapColor.OFF_WHITE).hardness(0.3F).resistance(0).sounds(BlockSoundGroup.WOOL), true,
|
|
|
|
() -> UBlocks.SOGGY_CLOUD,
|
|
|
|
() -> UBlocks.COMPACTED_CLOUD), ItemGroups.NATURAL);
|
2023-10-31 17:45:41 +01:00
|
|
|
Block COMPACTED_CLOUD = register("compacted_cloud", new CompactedCloudBlock(Settings.copy(CLOUD)));
|
2023-10-20 00:13:41 +02:00
|
|
|
Block CLOUD_SLAB = register("cloud_slab", new CloudSlabBlock(Settings.copy(CLOUD), true, () -> UBlocks.SOGGY_CLOUD_SLAB), ItemGroups.NATURAL);
|
2023-11-02 18:24:18 +01:00
|
|
|
PoreousCloudStairsBlock CLOUD_STAIRS = register("cloud_stairs", new PoreousCloudStairsBlock(CLOUD.getDefaultState(), Settings.copy(CLOUD), () -> UBlocks.SOGGY_CLOUD_STAIRS), ItemGroups.NATURAL);
|
2023-10-31 17:45:41 +01:00
|
|
|
|
|
|
|
Block CLOUD_PLANKS = register("cloud_planks", new NaturalCloudBlock(Settings.copy(CLOUD).hardness(0.4F).requiresTool(), false,
|
2023-10-20 21:12:13 +02:00
|
|
|
null,
|
|
|
|
() -> UBlocks.COMPACTED_CLOUD_PLANKS), ItemGroups.BUILDING_BLOCKS);
|
|
|
|
Block COMPACTED_CLOUD_PLANKS = register("compacted_cloud_planks", new CompactedCloudBlock(Settings.copy(CLOUD_PLANKS)));
|
2023-10-31 17:45:41 +01:00
|
|
|
Block CLOUD_PLANK_SLAB = register("cloud_plank_slab", new CloudSlabBlock(Settings.copy(CLOUD_PLANKS), false, null), ItemGroups.BUILDING_BLOCKS);
|
2023-11-02 18:24:18 +01:00
|
|
|
Block CLOUD_PLANK_STAIRS = register("cloud_plank_stairs", new CloudStairsBlock(CLOUD_PLANKS.getDefaultState(), Settings.copy(CLOUD_PLANKS)), ItemGroups.BUILDING_BLOCKS);
|
2023-10-31 17:45:41 +01:00
|
|
|
|
|
|
|
Block CLOUD_BRICKS = register("cloud_bricks", new NaturalCloudBlock(Settings.copy(CLOUD).hardness(0.6F).requiresTool(), false,
|
|
|
|
null,
|
|
|
|
() -> UBlocks.COMPACTED_CLOUD_BRICKS), ItemGroups.BUILDING_BLOCKS);
|
|
|
|
Block COMPACTED_CLOUD_BRICKS = register("compacted_cloud_bricks", new CompactedCloudBlock(Settings.copy(CLOUD_BRICKS)));
|
|
|
|
Block CLOUD_BRICK_SLAB = register("cloud_brick_slab", new CloudSlabBlock(Settings.copy(CLOUD_BRICKS), false, null), ItemGroups.BUILDING_BLOCKS);
|
2023-11-02 18:24:18 +01:00
|
|
|
Block CLOUD_BRICK_STAIRS = register("cloud_brick_stairs", new CloudStairsBlock(CLOUD_BRICKS.getDefaultState(), Settings.copy(CLOUD_PLANKS)), ItemGroups.BUILDING_BLOCKS);
|
2023-10-31 17:45:41 +01:00
|
|
|
|
|
|
|
SoggyCloudBlock SOGGY_CLOUD = register("soggy_cloud", new SoggyCloudBlock(Settings.copy(CLOUD).hardness(0.7F), () -> UBlocks.CLOUD));
|
|
|
|
SoggyCloudSlabBlock SOGGY_CLOUD_SLAB = register("soggy_cloud_slab", new SoggyCloudSlabBlock(Settings.copy(SOGGY_CLOUD), () -> UBlocks.CLOUD_SLAB));
|
2023-11-02 18:24:18 +01:00
|
|
|
SoggyCloudStairsBlock SOGGY_CLOUD_STAIRS = register("soggy_cloud_stairs", new SoggyCloudStairsBlock(SOGGY_CLOUD.getDefaultState(), Settings.copy(CLOUD), () -> UBlocks.CLOUD_STAIRS));
|
2023-10-31 17:45:41 +01:00
|
|
|
|
2023-10-20 00:13:41 +02:00
|
|
|
Block DENSE_CLOUD = register("dense_cloud", new CloudBlock(Settings.create().mapColor(MapColor.GRAY).hardness(0.5F).resistance(0).sounds(BlockSoundGroup.WOOL), false), ItemGroups.NATURAL);
|
|
|
|
Block DENSE_CLOUD_SLAB = register("dense_cloud_slab", new CloudSlabBlock(Settings.copy(DENSE_CLOUD), false, null), ItemGroups.NATURAL);
|
2023-11-02 18:24:18 +01:00
|
|
|
Block DENSE_CLOUD_STAIRS = register("dense_cloud_stairs", new CloudStairsBlock(DENSE_CLOUD.getDefaultState(), Settings.copy(DENSE_CLOUD)), ItemGroups.NATURAL);
|
2023-10-31 17:45:41 +01:00
|
|
|
|
|
|
|
Block CARVED_CLOUD = register("carved_cloud", new OrientedCloudBlock(Settings.copy(CLOUD).hardness(0.4F).requiresTool(), false), ItemGroups.BUILDING_BLOCKS);
|
|
|
|
Block UNSTABLE_CLOUD = register("unstable_cloud", new UnstableCloudBlock(Settings.copy(CLOUD)), ItemGroups.NATURAL);
|
2023-10-20 00:13:41 +02:00
|
|
|
Block CLOUD_PILLAR = register("cloud_pillar", new CloudPillarBlock(Settings.create().mapColor(MapColor.GRAY).hardness(0.5F).resistance(0).sounds(BlockSoundGroup.WOOL)), ItemGroups.NATURAL);
|
2023-11-02 16:47:31 +01:00
|
|
|
Block CLOTH_BED = register("cloth_bed", new FancyBedBlock("cloth", Settings.copy(Blocks.WHITE_BED).sounds(BlockSoundGroup.WOOD)));
|
2023-10-31 21:38:28 +01:00
|
|
|
Block CLOUD_BED = register("cloud_bed", new CloudBedBlock("cloud", CLOUD.getDefaultState(), Settings.copy(Blocks.WHITE_BED).sounds(BlockSoundGroup.WOOL)));
|
2022-09-28 22:43:45 +02:00
|
|
|
|
2023-08-16 18:56:34 +02:00
|
|
|
private static <T extends Block> T register(String name, T item) {
|
2022-09-25 00:14:29 +02:00
|
|
|
return register(Unicopia.id(name), item);
|
|
|
|
}
|
|
|
|
|
2023-08-16 18:56:34 +02:00
|
|
|
private static <T extends Block> T register(String name, T block, RegistryKey<ItemGroup> group) {
|
2022-09-25 00:14:29 +02:00
|
|
|
return register(Unicopia.id(name), block, group);
|
2021-09-02 19:11:51 +02:00
|
|
|
}
|
|
|
|
|
2023-06-03 13:40:54 +02:00
|
|
|
static <T extends Block> T register(Identifier id, T block, RegistryKey<ItemGroup> group) {
|
2023-10-20 00:13:41 +02:00
|
|
|
ItemGroupRegistry.register(id,
|
2023-10-20 21:12:13 +02:00
|
|
|
CloudBlock.isCloudBlock(block) ? new CloudBlockItem(block, new Item.Settings()) : new BlockItem(block, new Item.Settings()
|
2023-10-20 00:13:41 +02:00
|
|
|
), group);
|
2022-09-25 00:14:29 +02:00
|
|
|
return register(id, block);
|
|
|
|
}
|
2022-09-23 23:25:00 +02:00
|
|
|
|
2023-08-16 18:56:34 +02:00
|
|
|
private static <T extends Block> T register(Identifier id, T block) {
|
2022-09-25 00:14:29 +02:00
|
|
|
if (block instanceof TintedBlock) {
|
|
|
|
TintedBlock.REGISTRY.add(block);
|
|
|
|
}
|
2023-08-14 21:31:33 +02:00
|
|
|
if (block instanceof SaplingBlock || block instanceof SproutBlock || block instanceof FruitBlock || block instanceof CropBlock || block instanceof DoorBlock || block instanceof TrapdoorBlock) {
|
2022-09-25 01:55:29 +02:00
|
|
|
TRANSLUCENT_BLOCKS.add(block);
|
|
|
|
}
|
2023-10-20 21:12:13 +02:00
|
|
|
if (CloudBlock.isCloudBlock(block) || block instanceof SlimePustuleBlock || block instanceof PileBlock) {
|
2023-10-20 00:13:41 +02:00
|
|
|
SEMI_TRANSPARENT_BLOCKS.add(block);
|
|
|
|
}
|
2022-12-19 00:12:49 +01:00
|
|
|
return Registry.register(Registries.BLOCK, id, block);
|
2022-09-25 00:14:29 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
static void bootstrap() {
|
2023-08-14 21:31:33 +02:00
|
|
|
BlockEntityTypeSupportHelper.of(BlockEntityType.SIGN).addSupportedBlocks(PALM_SIGN, PALM_WALL_SIGN);
|
|
|
|
BlockEntityTypeSupportHelper.of(BlockEntityType.HANGING_SIGN).addSupportedBlocks(PALM_HANGING_SIGN, PALM_WALL_HANGING_SIGN);
|
|
|
|
|
2022-09-25 00:14:29 +02:00
|
|
|
StrippableBlockRegistry.register(ZAP_LOG, STRIPPED_ZAP_LOG);
|
2023-05-23 19:49:56 +02:00
|
|
|
StrippableBlockRegistry.register(PALM_LOG, STRIPPED_PALM_LOG);
|
2022-09-25 00:14:29 +02:00
|
|
|
StrippableBlockRegistry.register(ZAP_WOOD, STRIPPED_ZAP_WOOD);
|
2023-05-23 19:49:56 +02:00
|
|
|
StrippableBlockRegistry.register(PALM_WOOD, STRIPPED_PALM_WOOD);
|
2023-10-14 02:43:46 +02:00
|
|
|
Collections.addAll(TRANSLUCENT_BLOCKS, WEATHER_VANE, CHITIN_SPIKES);
|
2023-05-23 19:49:56 +02:00
|
|
|
TintedBlock.REGISTRY.add(PALM_LEAVES);
|
|
|
|
|
2023-09-09 15:32:27 +02:00
|
|
|
FlammableBlockRegistry.getDefaultInstance().add(GREEN_APPLE_LEAVES, 30, 60);
|
|
|
|
FlammableBlockRegistry.getDefaultInstance().add(SWEET_APPLE_LEAVES, 30, 60);
|
|
|
|
FlammableBlockRegistry.getDefaultInstance().add(SOUR_APPLE_LEAVES, 30, 60);
|
|
|
|
FlammableBlockRegistry.getDefaultInstance().add(MANGO_LEAVES, 30, 60);
|
2023-05-23 19:49:56 +02:00
|
|
|
FlammableBlockRegistry.getDefaultInstance().add(PALM_LEAVES, 30, 60);
|
|
|
|
FlammableBlockRegistry.getDefaultInstance().add(PALM_LOG, 5, 5);
|
|
|
|
FlammableBlockRegistry.getDefaultInstance().add(PALM_WOOD, 5, 5);
|
|
|
|
FlammableBlockRegistry.getDefaultInstance().add(STRIPPED_PALM_LOG, 5, 5);
|
|
|
|
FlammableBlockRegistry.getDefaultInstance().add(STRIPPED_PALM_WOOD, 5, 5);
|
|
|
|
FlammableBlockRegistry.getDefaultInstance().add(PALM_PLANKS, 5, 20);
|
|
|
|
FlammableBlockRegistry.getDefaultInstance().add(BANANAS, 5, 20);
|
2022-10-12 15:46:15 +02:00
|
|
|
|
|
|
|
UBlockEntities.bootstrap();
|
2022-09-25 00:14:29 +02:00
|
|
|
}
|
2021-09-02 19:11:51 +02:00
|
|
|
}
|