Added more Behaviours

This commit is contained in:
Frank 2023-05-24 21:07:51 +02:00
parent e3bc1f17b2
commit f371a562f9
8 changed files with 103 additions and 4 deletions

View file

@ -168,6 +168,19 @@ public class BehaviourBuilders {
return p;
}
public static BlockBehaviour.Properties createGlass() {
return BlockBehaviour.Properties
.of()
.instrument(NoteBlockInstrument.HAT)
.strength(0.3F)
.sound(SoundType.GLASS)
.noOcclusion()
.isValidSpawn(Blocks::never)
.isRedstoneConductor(Blocks::never)
.isSuffocating(Blocks::never)
.isViewBlocking(Blocks::never);
}
public static BlockBehaviour.Properties applyBasePlantSettings() {
return applyBasePlantSettings(false, 0);
}
@ -193,4 +206,13 @@ public class BehaviourBuilders {
if (light > 0) props.lightLevel(s -> light);
return props;
}
public static BlockBehaviour.Properties createSnow() {
return BlockBehaviour.Properties
.of()
.mapColor(MapColor.SNOW)
.requiresCorrectToolForDrops()
.strength(0.2F)
.sound(SoundType.SNOW);
}
}

View file

@ -0,0 +1,6 @@
package org.betterx.bclib.behaviours.interfaces;
import org.betterx.bclib.interfaces.tools.AddMineableHoe;
public interface BehaviourPlant extends AddMineableHoe {
}

View file

@ -0,0 +1,6 @@
package org.betterx.bclib.behaviours.interfaces;
import org.betterx.bclib.interfaces.tools.AddMineableHoe;
public interface BehaviourSeed extends AddMineableHoe {
}

View file

@ -0,0 +1,6 @@
package org.betterx.bclib.behaviours.interfaces;
import org.betterx.bclib.interfaces.tools.AddMineableShovel;
public interface BehaviourSnow extends AddMineableShovel {
}

View file

@ -1,5 +1,9 @@
package org.betterx.bclib.blocks;
import org.betterx.bclib.behaviours.interfaces.BehaviourGlass;
import org.betterx.bclib.behaviours.interfaces.BehaviourMetal;
import org.betterx.bclib.behaviours.interfaces.BehaviourStone;
import org.betterx.bclib.behaviours.interfaces.BehaviourWood;
import org.betterx.bclib.util.BlocksHelper;
import net.minecraft.core.BlockPos;
@ -21,7 +25,7 @@ import net.minecraft.world.level.block.state.properties.DirectionProperty;
public abstract class BaseAttachedBlock extends BaseBlockNotFull {
public static final DirectionProperty FACING = BlockStateProperties.FACING;
public BaseAttachedBlock(Properties settings) {
protected BaseAttachedBlock(Properties settings) {
super(settings);
registerDefaultState(defaultBlockState().setValue(FACING, Direction.UP));
}
@ -80,4 +84,28 @@ public abstract class BaseAttachedBlock extends BaseBlockNotFull {
public BlockState mirror(BlockState state, Mirror mirror) {
return BlocksHelper.mirrorHorizontal(state, mirror, FACING);
}
public static class Wood extends BaseAttachedBlock implements BehaviourWood {
public Wood(Properties settings) {
super(settings);
}
}
public static class Stone extends BaseAttachedBlock implements BehaviourStone {
public Stone(Properties settings) {
super(settings);
}
}
public static class Metal extends BaseAttachedBlock implements BehaviourMetal {
public Metal(Properties settings) {
super(settings);
}
}
public static class Glass extends BaseAttachedBlock implements BehaviourGlass {
public Glass(Properties settings) {
super(settings);
}
}
}

View file

@ -1,5 +1,9 @@
package org.betterx.bclib.blocks;
import org.betterx.bclib.behaviours.interfaces.BehaviourMetal;
import org.betterx.bclib.behaviours.interfaces.BehaviourStone;
import org.betterx.bclib.behaviours.interfaces.BehaviourWood;
import net.minecraft.core.BlockPos;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.BlockGetter;
@ -21,4 +25,22 @@ public class BaseBlockNotFull extends BaseBlock {
public boolean allowsSpawning(BlockState state, BlockGetter view, BlockPos pos, EntityType<?> type) {
return false;
}
public static class Wood extends BaseBlockNotFull implements BehaviourWood {
public Wood(Properties settings) {
super(settings);
}
}
public static class Stone extends BaseBlockNotFull implements BehaviourStone {
public Stone(Properties settings) {
super(settings);
}
}
public static class Metal extends BaseBlockNotFull implements BehaviourMetal {
public Metal(Properties settings) {
super(settings);
}
}
}

View file

@ -1,5 +1,7 @@
package org.betterx.bclib.blocks;
import org.betterx.bclib.behaviours.interfaces.BehaviourStone;
import net.minecraft.core.BlockPos;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.BaseEntityBlock;
@ -10,8 +12,8 @@ import net.minecraft.world.level.storage.loot.LootParams;
import java.util.Collections;
import java.util.List;
public class BaseBlockWithEntity extends BaseEntityBlock {
public BaseBlockWithEntity(Properties settings) {
public abstract class BaseBlockWithEntity extends BaseEntityBlock {
protected BaseBlockWithEntity(Properties settings) {
super(settings);
}
@ -25,4 +27,10 @@ public class BaseBlockWithEntity extends BaseEntityBlock {
public List<ItemStack> getDrops(BlockState state, LootParams.Builder builder) {
return Collections.singletonList(new ItemStack(this));
}
public static class Stone extends BaseBlockWithEntity implements BehaviourStone {
public Stone(Properties settings) {
super(settings);
}
}
}

View file

@ -1,5 +1,6 @@
package org.betterx.bclib.blocks;
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;
@ -124,7 +125,7 @@ public abstract class BaseWallBlock extends WallBlock implements BlockModelProvi
return builder.build();
}
public static class Stone extends BaseWallBlock {
public static class Stone extends BaseWallBlock implements BehaviourWood {
public Stone(Block source) {
super(source);
}