Skip to content

Commit

Permalink
feat: Continue implementing WoodSet stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
Zepalesque committed May 21, 2024
1 parent 4b5b07a commit 554b35d
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 7 deletions.
78 changes: 78 additions & 0 deletions src/main/java/net/zepalesque/zenith/api/BaseWoodSet.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
package net.zepalesque.zenith.api;

import net.minecraft.world.entity.EntityType;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.BaseEntityBlock;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.RotatedPillarBlock;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.material.MapColor;
import net.neoforged.neoforge.registries.DeferredBlock;
import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.neoforge.registries.DeferredItem;
import net.neoforged.neoforge.registries.DeferredRegister;

public abstract class BaseWoodSet implements BlockSet {

// Blocks

protected abstract DeferredBlock<?> generateLog(DeferredRegister.Blocks registry, String id, MapColor woodColor, MapColor barkColor, SoundType soundType);

protected abstract DeferredBlock<?> generateStrippedLog(DeferredRegister.Blocks registry, String id, MapColor color, SoundType soundType);

protected abstract DeferredBlock<?> generateWood(DeferredRegister.Blocks registry, String id, MapColor color, SoundType soundType);

protected abstract DeferredBlock<?> generateStrippedWood(DeferredRegister.Blocks registry, String id, MapColor color, SoundType soundType);

protected abstract DeferredBlock<?> generatePlanks(DeferredRegister.Blocks registry, String id, MapColor color, SoundType soundType);

protected abstract DeferredBlock<?> generateStairs(DeferredRegister.Blocks registry, String id, MapColor color, SoundType soundType);

protected abstract DeferredBlock<?> generateSlab(DeferredRegister.Blocks registry, String id, MapColor color, SoundType soundType);

protected abstract DeferredBlock<?> generateFence(DeferredRegister.Blocks registry, String id, MapColor color, SoundType soundType);

protected abstract DeferredBlock<?> generateFenceGate(DeferredRegister.Blocks registry, String id, MapColor color, SoundType soundType);

protected abstract DeferredBlock<?> generateDoor(DeferredRegister.Blocks registry, String id, MapColor color, SoundType soundType);

protected abstract DeferredBlock<?> generateTrapDoor(DeferredRegister.Blocks registry, String id, MapColor color, SoundType soundType);

protected abstract DeferredBlock<?> generatePressurePlate(DeferredRegister.Blocks registry, String id, MapColor color, SoundType soundType);

protected abstract DeferredBlock<?> generateButton(DeferredRegister.Blocks registry, String id, MapColor color, SoundType soundType);

protected abstract DeferredBlock<? extends BaseEntityBlock> generateSignBlock(DeferredRegister.Blocks registry, String id, MapColor color, SoundType soundType);

protected abstract DeferredBlock<? extends BaseEntityBlock> generateWallSignBlock(DeferredRegister.Blocks registry, String id, MapColor color, SoundType soundType);

protected abstract DeferredBlock<? extends BaseEntityBlock> generateHangingSignBlock(DeferredRegister.Blocks registry, String id, MapColor color, SoundType soundType);

protected abstract DeferredBlock<? extends BaseEntityBlock> generateWallHangingSignBlock(DeferredRegister.Blocks registry, String id, MapColor color, SoundType soundType);


// Items

protected abstract DeferredItem<?> generateBoatItem(DeferredRegister.Items registry, String id);

protected abstract DeferredItem<?> generateChestBoatItem(DeferredRegister.Items registry, String id);


// Entities

protected abstract DeferredHolder<EntityType<?>, EntityType<?>> generateBoatEntity(DeferredRegister<EntityType<?>> registry, String id);

protected abstract DeferredHolder<EntityType<?>, EntityType<?>> generateChestBoatEntity(DeferredRegister<EntityType<?>> registry, String id);


// Block Entities

protected abstract DeferredHolder<BlockEntityType<?>, BlockEntityType<?>> generateSign(DeferredRegister<BlockEntityType<?>> registry, String id);

protected abstract DeferredHolder<BlockEntityType<?>, BlockEntityType<?>> generateHangingSign(DeferredRegister<BlockEntityType<?>> registry, String id);



}

30 changes: 23 additions & 7 deletions src/main/java/net/zepalesque/zenith/api/WoodSet.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,26 @@
import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.neoforge.registries.DeferredRegister;

public class WoodSet implements BlockSet {
public class WoodSet extends BaseWoodSet {

public final DeferredBlock<Block> log;
public final DeferredBlock<RotatedPillarBlock> log;

public WoodSet(DeferredRegister.Blocks registry, String id, MapColor barkColor, MapColor woodColor, SoundType soundType) {
protected final MapColor colorPrimary;
protected final MapColor colorSecondary;

this.log = generateLog(registry, id, barkColor, woodColor, soundType);
protected final String id;

public WoodSet(DeferredRegister.Blocks registry, String id, MapColor woodColor, MapColor barkColor, SoundType soundType) {
this.id = id;
this.colorPrimary = woodColor;
this.colorSecondary = barkColor;

this.log = generateLog(registry, id, getPrimaryColor(), getSecondaryColor(), soundType);

}

protected DeferredBlock<Block> generateLog(DeferredRegister.Blocks registry, String id, MapColor barkColor, MapColor woodColor, SoundType soundType) {
return registry.register(id, () -> new RotatedPillarBlock(Properties.of()
protected DeferredBlock<RotatedPillarBlock> generateLog(DeferredRegister.Blocks registry, String id, MapColor woodColor, MapColor barkColor, SoundType soundType) {
return registry.register(id + "_log", () -> new RotatedPillarBlock(Properties.of()
.mapColor(p_152624_ -> p_152624_.getValue(RotatedPillarBlock.AXIS) == Direction.Axis.Y ? woodColor : barkColor)
.instrument(NoteBlockInstrument.BASS)
.strength(2.0F)
Expand All @@ -36,13 +44,21 @@ protected DeferredBlock<Block> generateLog(DeferredRegister.Blocks registry, Str
));
}

protected MapColor getPrimaryColor() {
return this.colorPrimary;
}

protected MapColor getSecondaryColor() {
return this.colorSecondary;
}





@Override
public void blockGen(BlockStateProvider data) {

data.logBlock(this.log.get());
}

@Override
Expand Down

0 comments on commit 554b35d

Please sign in to comment.