Added Behaviours for all relevant Blocks
This commit is contained in:
parent
91fe9d5042
commit
4f7d9de7be
83 changed files with 1329 additions and 373 deletions
|
@ -1,16 +1,25 @@
|
|||
package org.betterx.bclib.blocks;
|
||||
|
||||
import org.betterx.bclib.behaviours.BehaviourHelper;
|
||||
import org.betterx.bclib.behaviours.interfaces.BehaviourMetal;
|
||||
import org.betterx.bclib.behaviours.interfaces.BehaviourObsidian;
|
||||
import org.betterx.bclib.behaviours.interfaces.BehaviourStone;
|
||||
import org.betterx.bclib.behaviours.interfaces.BehaviourWood;
|
||||
import org.betterx.bclib.client.models.BasePatterns;
|
||||
import org.betterx.bclib.client.models.ModelsHelper;
|
||||
import org.betterx.bclib.client.models.PatternsHelper;
|
||||
import org.betterx.bclib.interfaces.BlockModelProvider;
|
||||
import org.betterx.bclib.interfaces.CustomItemProvider;
|
||||
import org.betterx.bclib.interfaces.TagProvider;
|
||||
|
||||
import net.minecraft.client.renderer.block.model.BlockModel;
|
||||
import net.minecraft.client.resources.model.BlockModelRotation;
|
||||
import net.minecraft.client.resources.model.UnbakedModel;
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.tags.TagKey;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
@ -30,15 +39,13 @@ import java.util.Map;
|
|||
import java.util.Optional;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class BaseStairsBlock extends StairBlock implements BlockModelProvider, CustomItemProvider {
|
||||
public abstract class BaseStairsBlock extends StairBlock implements BlockModelProvider, CustomItemProvider, TagProvider {
|
||||
|
||||
|
||||
private final Block parent;
|
||||
public final boolean fireproof;
|
||||
|
||||
public BaseStairsBlock(Block source) {
|
||||
this(source, false);
|
||||
}
|
||||
|
||||
public BaseStairsBlock(Block source, boolean fireproof) {
|
||||
protected BaseStairsBlock(Block source, boolean fireproof) {
|
||||
super(source.defaultBlockState(), Properties.copy(source));
|
||||
this.parent = source;
|
||||
this.fireproof = fireproof;
|
||||
|
@ -117,4 +124,69 @@ public class BaseStairsBlock extends StairBlock implements BlockModelProvider, C
|
|||
if (fireproof) settings = settings.fireResistant();
|
||||
return new BlockItem(this, settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addTags(List<TagKey<Block>> blockTags, List<TagKey<Item>> itemTags) {
|
||||
blockTags.add(BlockTags.STAIRS);
|
||||
itemTags.add(ItemTags.STAIRS);
|
||||
}
|
||||
|
||||
public static class Stone extends BaseStairsBlock implements BehaviourStone {
|
||||
public Stone(Block source) {
|
||||
this(source, true);
|
||||
}
|
||||
|
||||
public Stone(Block source, boolean fireproof) {
|
||||
super(source, fireproof);
|
||||
}
|
||||
}
|
||||
|
||||
public static class Metal extends BaseStairsBlock implements BehaviourMetal {
|
||||
public Metal(Block source) {
|
||||
this(source, true);
|
||||
}
|
||||
|
||||
public Metal(Block source, boolean fireproof) {
|
||||
super(source, fireproof);
|
||||
}
|
||||
}
|
||||
|
||||
public static class Wood extends BaseStairsBlock implements BehaviourWood {
|
||||
public Wood(Block source) {
|
||||
this(source, false);
|
||||
}
|
||||
|
||||
public Wood(Block source, boolean fireproof) {
|
||||
super(source, fireproof);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addTags(List<TagKey<Block>> blockTags, List<TagKey<Item>> itemTags) {
|
||||
super.addTags(blockTags, itemTags);
|
||||
blockTags.add(BlockTags.WOODEN_STAIRS);
|
||||
itemTags.add(ItemTags.WOODEN_STAIRS);
|
||||
}
|
||||
}
|
||||
|
||||
public static class Obsidian extends BaseStairsBlock implements BehaviourObsidian {
|
||||
public Obsidian(Block source) {
|
||||
this(source, true);
|
||||
}
|
||||
|
||||
public Obsidian(Block source, boolean fireproof) {
|
||||
super(source, fireproof);
|
||||
}
|
||||
}
|
||||
|
||||
public static BaseStairsBlock from(Block source, boolean flammable) {
|
||||
return BehaviourHelper.from(
|
||||
source,
|
||||
(block) -> new Wood(block, flammable),
|
||||
(block) -> new Stone(block, !flammable),
|
||||
(block) -> new Metal(block, !flammable),
|
||||
(block) -> new Obsidian(block, !flammable),
|
||||
null
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue