Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
3e7874b
Glass textures
BlueMoonJune Apr 14, 2026
31647b9
Pane top textures
BlueMoonJune Apr 14, 2026
47777fc
wip chiseled gemstone glass
DaFuqs Apr 15, 2026
f38a0ca
wip chiseled gemstone glass
DaFuqs Apr 15, 2026
69eb86a
Merge pull request #865 from BlueMoonJune/1.21.1-neoforge
DaFuqs Apr 15, 2026
d0bd966
chiseled glass in creative menu
DaFuqs Apr 15, 2026
2441dbb
rename wood blocks
DaFuqs Apr 15, 2026
a35f3c9
wip wood block deco
DaFuqs Apr 15, 2026
09cbbf3
sign code
DaFuqs Apr 15, 2026
572b6e8
colored block models, tags & loot
DaFuqs Apr 17, 2026
c379436
oh
DaFuqs Apr 17, 2026
e5ba0f4
noxwood signs & hanging signs
DaFuqs Apr 17, 2026
9d26457
dedicated wood type for each colored wood
DaFuqs Apr 17, 2026
17e42a1
noxwood models
DaFuqs Apr 17, 2026
1433d17
lootFrom()
DaFuqs Apr 17, 2026
6d0c5ad
colored grass
DaFuqs Apr 18, 2026
f81dde8
colored grass
DaFuqs Apr 18, 2026
fda7027
Merge branch '1.21.1-neoforge' into 1.21.1-neoforge-decorations
DaFuqs Jul 3, 2026
80e8e2e
sign & grass textures. Ty, GD!
DaFuqs Jul 3, 2026
b6f7d5c
weeping gala sign & hanging sign
DaFuqs Jul 3, 2026
4dd0dee
updated grass textures
DaFuqs Jul 4, 2026
df3534a
sign textures by GD!
DaFuqs Jul 5, 2026
a1b3f32
textures, tags
DaFuqs Jul 5, 2026
4325090
crafting recipes
DaFuqs Jul 5, 2026
a6b5472
updated guidebook with new deco blocks
DaFuqs Jul 5, 2026
4a7a5a6
updated textures
DaFuqs Jul 6, 2026
eeeb16c
block registry and add to creative tab
crazymachinefan Oct 3, 2026
4d014aa
symbolic balcite textures/models/names
crazymachinefan Oct 4, 2026
9d5bfaf
temporary tagging as both `bases` and `chiseled` pending daf telling …
crazymachinefan Oct 4, 2026
9758b85
rotated n/s axis balcite crests so the lighting is correct
crazymachinefan Oct 4, 2026
a93b43e
fixed shading on symbolic basalts
crazymachinefan Oct 4, 2026
f410c23
moved symbolic balcites around to match the spectrum color order
crazymachinefan Oct 4, 2026
472cc82
fixed balcite crest lighting even harder
crazymachinefan Oct 4, 2026
5df8922
Merge branch 'DaFuqs:1.21.1-neoforge' into 1.21.1-neoforge
crazymachinefan Oct 4, 2026
6fecca3
updated textures for the symbolics and added symbols to colored chise…
crazymachinefan Oct 5, 2026
9150463
updated textures for the symbolics and added symbols to colored chise…
crazymachinefan Oct 5, 2026
fd82ce9
loot tables, unlocks, recipes, guidebook
crazymachinefan Oct 5, 2026
bfaea37
Merge branch '1.21.1-neoforge' into 1.21.1-neoforge-decorations
DaFuqs Oct 5, 2026
1b4a757
fix merge conflicts
DaFuqs Oct 5, 2026
538362b
Merge pull request #979 from crazymachinefan/1.21.1-neoforge
DaFuqs Oct 5, 2026
cf36641
door textures
crazymachinefan Oct 8, 2026
b1f6ff9
door functionality
crazymachinefan Oct 8, 2026
49c21fe
trapdoor textures
crazymachinefan Oct 8, 2026
618e9b6
trapdoor texture rotation "fix"
crazymachinefan Oct 8, 2026
27da7f7
fixed sign collision
crazymachinefan Oct 9, 2026
71feef6
Merge pull request #984 from crazymachinefan/1.21.1-neoforge-decorations
DaFuqs Oct 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
411 changes: 409 additions & 2 deletions raw/Generate-BlockFiles.ps1

Large diffs are not rendered by default.

5 changes: 1 addition & 4 deletions raw/colored_lamp_recipes.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

$c | Foreach-Object {
@"
{
"type": "spectrum:pedestal_crafting",
"recipe_id": "spectrum:pedestal/tier2/colored_spore_blossoms/$_"
},
"$_`_hanging_sign",
"@

}
7 changes: 7 additions & 0 deletions src/main/java/de/dafuqs/spectrum/api/ink/color/InkColor.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@
import net.minecraft.tags.*;
import net.minecraft.util.*;
import net.minecraft.world.item.*;
import net.minecraft.world.level.material.*;
import org.jetbrains.annotations.*;
import org.joml.*;
import org.jspecify.annotations.*;
import org.jspecify.annotations.Nullable;

import java.util.*;

Expand Down Expand Up @@ -128,6 +131,10 @@ public Vector3f getTextColorVec() {
return this.textColorVec;
}

public MapColor getMapColor() {
return getDyeColor().orElse(DyeColor.MAGENTA).getMapColor();
}

public ResourceLocation getRequiredAdvancement() {
return requiredAdvancement;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
@NullMarked
@MethodsReturnNonnullByDefault
@FieldsAreNonnullByDefault
package de.dafuqs.spectrum.api.energy.color;
package de.dafuqs.spectrum.api.ink.color;

import net.minecraft.*;
import org.jspecify.annotations.*;
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package de.dafuqs.spectrum.blocks.conditional;

import com.mojang.serialization.*;
import de.dafuqs.spectrum.api.ink.color.*;
import it.unimi.dsi.fastutil.objects.*;
import net.minecraft.core.*;
import net.minecraft.core.registries.*;
import net.minecraft.data.worldgen.placement.*;
import net.minecraft.server.level.*;
import net.minecraft.util.*;
import net.minecraft.world.level.*;
import net.minecraft.world.level.biome.*;
import net.minecraft.world.level.block.*;
import net.minecraft.world.level.block.state.*;
import net.minecraft.world.level.levelgen.feature.*;
import net.minecraft.world.level.levelgen.feature.configurations.*;
import net.minecraft.world.level.levelgen.placement.*;
import org.jetbrains.annotations.*;

import java.util.*;

public class ColoredGrassBlock extends SpreadingSnowyDirtBlock implements BonemealableBlock {

private static final Map<InkColor, ColoredGrassBlock> BLOCKS = new Object2ObjectArrayMap<>();
protected final InkColor color;

public ColoredGrassBlock(Properties settings, InkColor color) {
super(settings);
this.color = color;
BLOCKS.put(color, this);
}

@Override
protected @NotNull MapCodec<ColoredGrassBlock> codec() {
return null;
}

public boolean isValidBonemealTarget(LevelReader level, BlockPos pos, BlockState state) {
return level.getBlockState(pos.above()).isAir();
}

public boolean isBonemealSuccess(Level level, RandomSource random, BlockPos pos, BlockState state) {
return true;
}

public void performBonemeal(ServerLevel level, RandomSource random, BlockPos pos, BlockState state) {
// TODO
}

public BonemealableBlock.Type getType() {
return Type.NEIGHBOR_SPREADER;
}

public InkColor getColor() {
return this.color;
}

public static ColoredGrassBlock byColor(InkColor color) {
return BLOCKS.get(color);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import de.dafuqs.spectrum.blocks.flammable.*;
import de.dafuqs.spectrum.registries.*;
import it.unimi.dsi.fastutil.objects.*;
import net.minecraft.world.level.block.state.properties.*;
import org.jspecify.annotations.Nullable;
import org.jspecify.annotations.*;

import java.util.*;
Expand All @@ -13,8 +15,8 @@ public class ColoredFenceGateBlock extends FlammableFenceGateBlock {
private static final Map<InkColor, ColoredFenceGateBlock> BLOCKS = new Object2ObjectArrayMap<>();
protected final InkColor color;

public ColoredFenceGateBlock(Properties settings, InkColor color) {
super(SpectrumWoodTypes.COLORED_WOOD, settings);
public ColoredFenceGateBlock(Properties settings, WoodType woodType, InkColor color) {
super(woodType, settings);
this.color = color;
BLOCKS.put(color, this);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,25 @@

import java.util.*;

public class ColoredStrippedSpectrumLogBlock extends FlammableRotatedPillarBlock implements RevelationAware, ColoredTree {
public class ColoredStrippedLogBlock extends FlammableRotatedPillarBlock implements RevelationAware, ColoredTree {

public static final MapCodec<ColoredStrippedSpectrumLogBlock> CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group(
public static final MapCodec<ColoredStrippedLogBlock> CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group(
propertiesCodec(),
InkColor.CODEC.fieldOf("color").forGetter(ColoredStrippedSpectrumLogBlock::getColor)
).apply(instance, ColoredStrippedSpectrumLogBlock::new));
InkColor.CODEC.fieldOf("color").forGetter(ColoredStrippedLogBlock::getColor)
).apply(instance, ColoredStrippedLogBlock::new));

private static final Map<InkColor, ColoredStrippedSpectrumLogBlock> LOGS = new Object2ObjectArrayMap<>();
private static final Map<InkColor, ColoredStrippedLogBlock> LOGS = new Object2ObjectArrayMap<>();
protected final InkColor color;

public ColoredStrippedSpectrumLogBlock(Properties settings, InkColor color) {
public ColoredStrippedLogBlock(Properties settings, InkColor color) {
super(settings);
this.color = color;
LOGS.put(color, this);
RevelationAware.register(this);
}

@Override
public MapCodec<? extends ColoredStrippedSpectrumLogBlock> codec() {
public MapCodec<? extends ColoredStrippedLogBlock> codec() {
return CODEC;
}

Expand All @@ -61,12 +61,12 @@ public Tuple<Item, Item> getItemCloak() {
public InkColor getColor() {
return this.color;
}

public static @Nullable ColoredStrippedSpectrumLogBlock byColor(InkColor color) {
public static @Nullable ColoredStrippedLogBlock byColor(InkColor color) {
return LOGS.get(color);
}

public static Collection<ColoredStrippedSpectrumLogBlock> all() {
public static Collection<ColoredStrippedLogBlock> all() {
return LOGS.values();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,25 @@

import java.util.*;

public class ColoredStrippedWoodBlockSpectrum extends FlammableRotatedPillarBlock implements RevelationAware, ColoredTree {
public class ColoredStrippedWoodBlock extends FlammableRotatedPillarBlock implements RevelationAware, ColoredTree {

public static final MapCodec<ColoredStrippedWoodBlockSpectrum> CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group(
public static final MapCodec<ColoredStrippedWoodBlock> CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group(
propertiesCodec(),
InkColor.CODEC.fieldOf("color").forGetter(ColoredStrippedWoodBlockSpectrum::getColor)
).apply(instance, ColoredStrippedWoodBlockSpectrum::new));
InkColor.CODEC.fieldOf("color").forGetter(ColoredStrippedWoodBlock::getColor)
).apply(instance, ColoredStrippedWoodBlock::new));

private static final Map<InkColor, ColoredStrippedWoodBlockSpectrum> WOOD = new Object2ObjectArrayMap<>();
private static final Map<InkColor, ColoredStrippedWoodBlock> WOOD = new Object2ObjectArrayMap<>();
protected final InkColor color;

public ColoredStrippedWoodBlockSpectrum(Properties settings, InkColor color) {
public ColoredStrippedWoodBlock(Properties settings, InkColor color) {
super(settings);
this.color = color;
WOOD.put(color, this);
RevelationAware.register(this);
}

@Override
public MapCodec<? extends ColoredStrippedWoodBlockSpectrum> codec() {
public MapCodec<? extends ColoredStrippedWoodBlock> codec() {
return CODEC;
}

Expand All @@ -61,12 +61,12 @@ public Tuple<Item, Item> getItemCloak() {
public InkColor getColor() {
return this.color;
}

public static @Nullable ColoredStrippedWoodBlockSpectrum byColor(InkColor color) {
public static @Nullable ColoredStrippedWoodBlock byColor(InkColor color) {
return WOOD.get(color);
}

public static Collection<ColoredStrippedWoodBlockSpectrum> all() {
public static Collection<ColoredStrippedWoodBlock> all() {
return WOOD.values();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public class ColoredWoodBlock extends StrippingLootPillarBlock implements Revela
private static final Map<InkColor, ColoredWoodBlock> WOOD = new Object2ObjectArrayMap<>();
protected final InkColor color;

public ColoredWoodBlock(Properties settings, Supplier<? extends ColoredStrippedWoodBlockSpectrum> strippedBlock, InkColor color, ResourceKey<LootTable> strippingLootTableKey) {
public ColoredWoodBlock(Properties settings, Supplier<? extends ColoredStrippedWoodBlock> strippedBlock, InkColor color, ResourceKey<LootTable> strippingLootTableKey) {
super(settings, strippedBlock, strippingLootTableKey);
this.color = color;
WOOD.put(color, this);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public BlockState updateShape(BlockState state, Direction direction, BlockState
}

@Override
public @Nullable VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) {
public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) {
return state.getValue(MIRRORED) ? SHAPES_MIRRORED.get(state.getValue(FACING)) : SHAPES.get(state.getValue(FACING));
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package de.dafuqs.spectrum.registries;

import com.mojang.datafixers.util.*;
import de.dafuqs.spectrum.*;
import de.dafuqs.spectrum.api.ink.color.*;
import de.dafuqs.spectrum.blocks.*;
import de.dafuqs.spectrum.blocks.amphora.*;
import de.dafuqs.spectrum.blocks.block_flooder.*;
Expand Down Expand Up @@ -132,6 +134,58 @@ public static void addBlockEntityTypeBlocks(BlockEntityTypeAddBlocksEvent event)
skullBlocksList.addAll(SpectrumWallSkullBlock.getMobWallHeads());

event.modify(SpectrumBlockEntities.SKULL.get(), skullBlocksList.toArray(new Block[0]));

event.modify(BlockEntityType.SIGN,
SpectrumBlocks.BLACK_SIGN.getFirst().get(), SpectrumBlocks.BLACK_SIGN.getSecond().get(),
SpectrumBlocks.BLUE_SIGN.getFirst().get(), SpectrumBlocks.BLUE_SIGN.getSecond().get(),
SpectrumBlocks.BROWN_SIGN.getFirst().get(), SpectrumBlocks.BROWN_SIGN.getSecond().get(),
SpectrumBlocks.CYAN_SIGN.getFirst().get(), SpectrumBlocks.CYAN_SIGN.getSecond().get(),
SpectrumBlocks.GRAY_SIGN.getFirst().get(), SpectrumBlocks.GRAY_SIGN.getSecond().get(),
SpectrumBlocks.GREEN_SIGN.getFirst().get(), SpectrumBlocks.GREEN_SIGN.getSecond().get(),
SpectrumBlocks.LIGHT_BLUE_SIGN.getFirst().get(), SpectrumBlocks.LIGHT_BLUE_SIGN.getSecond().get(),
SpectrumBlocks.LIGHT_GRAY_SIGN.getFirst().get(), SpectrumBlocks.LIGHT_GRAY_SIGN.getSecond().get(),
SpectrumBlocks.LIME_SIGN.getFirst().get(), SpectrumBlocks.LIME_SIGN.getSecond().get(),
SpectrumBlocks.MAGENTA_SIGN.getFirst().get(), SpectrumBlocks.MAGENTA_SIGN.getSecond().get(),
SpectrumBlocks.ORANGE_SIGN.getFirst().get(), SpectrumBlocks.ORANGE_SIGN.getSecond().get(),
SpectrumBlocks.PINK_SIGN.getFirst().get(), SpectrumBlocks.PINK_SIGN.getSecond().get(),
SpectrumBlocks.PURPLE_SIGN.getFirst().get(), SpectrumBlocks.PURPLE_SIGN.getSecond().get(),
SpectrumBlocks.RED_SIGN.getFirst().get(), SpectrumBlocks.RED_SIGN.getSecond().get(),
SpectrumBlocks.WHITE_SIGN.getFirst().get(), SpectrumBlocks.WHITE_SIGN.getSecond().get(),
SpectrumBlocks.YELLOW_SIGN.getFirst().get(), SpectrumBlocks.YELLOW_SIGN.getSecond().get(),

SpectrumBlocks.EBONY_NOXWOOD_SIGN.getFirst().get(), SpectrumBlocks.EBONY_NOXWOOD_SIGN.getSecond().get(),
SpectrumBlocks.IVORY_NOXWOOD_SIGN.getFirst().get(), SpectrumBlocks.IVORY_NOXWOOD_SIGN.getSecond().get(),
SpectrumBlocks.SLATE_NOXWOOD_SIGN.getFirst().get(), SpectrumBlocks.SLATE_NOXWOOD_SIGN.getSecond().get(),
SpectrumBlocks.CHESTNUT_NOXWOOD_SIGN.getFirst().get(), SpectrumBlocks.CHESTNUT_NOXWOOD_SIGN.getSecond().get(),

SpectrumBlocks.WEEPING_GALA_SIGN.getFirst().get(), SpectrumBlocks.WEEPING_GALA_SIGN.getSecond().get()
);

event.modify(BlockEntityType.HANGING_SIGN,
SpectrumBlocks.BLACK_HANGING_SIGN.getFirst().get(), SpectrumBlocks.BLACK_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.BLUE_HANGING_SIGN.getFirst().get(), SpectrumBlocks.BLUE_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.BROWN_HANGING_SIGN.getFirst().get(), SpectrumBlocks.BROWN_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.CYAN_HANGING_SIGN.getFirst().get(), SpectrumBlocks.CYAN_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.GRAY_HANGING_SIGN.getFirst().get(), SpectrumBlocks.GRAY_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.GREEN_HANGING_SIGN.getFirst().get(), SpectrumBlocks.GREEN_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.LIGHT_BLUE_HANGING_SIGN.getFirst().get(), SpectrumBlocks.LIGHT_BLUE_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.LIGHT_GRAY_HANGING_SIGN.getFirst().get(), SpectrumBlocks.LIGHT_GRAY_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.LIME_HANGING_SIGN.getFirst().get(), SpectrumBlocks.LIME_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.MAGENTA_HANGING_SIGN.getFirst().get(), SpectrumBlocks.MAGENTA_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.ORANGE_HANGING_SIGN.getFirst().get(), SpectrumBlocks.ORANGE_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.PINK_HANGING_SIGN.getFirst().get(), SpectrumBlocks.PINK_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.PURPLE_HANGING_SIGN.getFirst().get(), SpectrumBlocks.PURPLE_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.RED_HANGING_SIGN.getFirst().get(), SpectrumBlocks.RED_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.WHITE_HANGING_SIGN.getFirst().get(), SpectrumBlocks.WHITE_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.YELLOW_HANGING_SIGN.getFirst().get(), SpectrumBlocks.YELLOW_HANGING_SIGN.getSecond().get(),

SpectrumBlocks.EBONY_NOXWOOD_HANGING_SIGN.getFirst().get(), SpectrumBlocks.EBONY_NOXWOOD_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.IVORY_NOXWOOD_HANGING_SIGN.getFirst().get(), SpectrumBlocks.IVORY_NOXWOOD_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.SLATE_NOXWOOD_HANGING_SIGN.getFirst().get(), SpectrumBlocks.SLATE_NOXWOOD_HANGING_SIGN.getSecond().get(),
SpectrumBlocks.CHESTNUT_NOXWOOD_HANGING_SIGN.getFirst().get(), SpectrumBlocks.CHESTNUT_NOXWOOD_HANGING_SIGN.getSecond().get(),

SpectrumBlocks.WEEPING_GALA_HANGING_SIGN.getFirst().get(), SpectrumBlocks.WEEPING_GALA_HANGING_SIGN.getSecond().get()
);
}

public static void registerClient(FMLClientSetupEvent event) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

public class SpectrumBlockSetTypes {

public static final BlockSetType POLISHED_BASALT = new BlockSetType(
public static final BlockSetType POLISHED_BASALT = BlockSetType.register(new BlockSetType(
SpectrumCommon.MOD_ID + "_polished_basalt",
true, true, false,
BlockSetType.PressurePlateSensitivity.MOBS,
Expand All @@ -20,9 +20,9 @@ public class SpectrumBlockSetTypes {
SoundEvents.STONE_PRESSURE_PLATE_CLICK_ON,
SoundEvents.STONE_BUTTON_CLICK_OFF,
SoundEvents.STONE_BUTTON_CLICK_ON
);
));

public static final BlockSetType POLISHED_CALCITE = new BlockSetType(
public static final BlockSetType POLISHED_CALCITE = BlockSetType.register(new BlockSetType(
SpectrumCommon.MOD_ID + "_polished_calcite",
true, true, false,
BlockSetType.PressurePlateSensitivity.MOBS,
Expand All @@ -35,9 +35,9 @@ public class SpectrumBlockSetTypes {
SoundEvents.STONE_PRESSURE_PLATE_CLICK_ON,
SoundEvents.STONE_BUTTON_CLICK_OFF,
SoundEvents.STONE_BUTTON_CLICK_ON
);
));

public static final BlockSetType POLISHED_BLACKSLAG = new BlockSetType(
public static final BlockSetType POLISHED_BLACKSLAG = BlockSetType.register(new BlockSetType(
SpectrumCommon.MOD_ID + "_polished_blackslag",
true, true, false,
BlockSetType.PressurePlateSensitivity.MOBS,
Expand All @@ -50,8 +50,9 @@ public class SpectrumBlockSetTypes {
SoundEvents.STONE_PRESSURE_PLATE_CLICK_ON,
SoundEvents.STONE_BUTTON_CLICK_OFF,
SoundEvents.STONE_BUTTON_CLICK_ON
);
));

public static final BlockSetType NOXWOOD = new BlockSetType(SpectrumCommon.MOD_ID + "_noxwood");
public static final BlockSetType COLORED_WOOD = new BlockSetType(SpectrumCommon.MOD_ID + "_colored_wood");
public static final BlockSetType NOXWOOD = BlockSetType.register(new BlockSetType(SpectrumCommon.MOD_ID + "_noxwood"));
public static final BlockSetType COLORED_WOOD = BlockSetType.register(new BlockSetType(SpectrumCommon.MOD_ID + "_colored_wood"));
public static final BlockSetType WEEPING_GALA = BlockSetType.register(new BlockSetType(SpectrumCommon.MOD_ID + "_weeping_gala"));
}
Loading
Loading