mirror of
https://github.com/TeamMidnightDust/Decorative.git
synced 2025-12-15 12:35:10 +01:00
Bird Bath on Polymer
This commit is contained in:
@@ -8,6 +8,8 @@ import eu.midnightdust.motschen.decorative.blockstates.PoolShape;
|
||||
import eu.midnightdust.motschen.decorative.blockstates.Program;
|
||||
import eu.midnightdust.motschen.decorative.config.DecorativeConfig;
|
||||
import eu.midnightdust.motschen.decorative.init.*;
|
||||
import eu.midnightdust.motschen.decorative.polymer.PolymerSupport;
|
||||
import eu.midnightdust.motschen.decorative.polymer.TexturedSimpleBlock;
|
||||
import eu.midnightdust.motschen.decorative.sound.DecorativeSoundEvents;
|
||||
import eu.midnightdust.motschen.decorative.util.RegistryUtil;
|
||||
import eu.midnightdust.motschen.decorative.world.OreFeatures;
|
||||
@@ -44,14 +46,14 @@ public class DecorativeMain implements ModInitializer {
|
||||
public static final EnumProperty<PoolShape> POOL_SHAPE = EnumProperty.of("shape", PoolShape.class);
|
||||
public static final EnumProperty<Part> PART = EnumProperty.of("part", Part.class);
|
||||
public static final EnumProperty<CeilingFanStage> STAGE = EnumProperty.of("stage", CeilingFanStage.class);
|
||||
public static Block RockyAsphalt = simpleBlock(Blocks.COAL_ORE);
|
||||
public static Block Road = simpleBlock(Blocks.STONE);
|
||||
public static Block RockyAsphalt = new TexturedSimpleBlock(Blocks.COAL_ORE);
|
||||
public static Block Road = new TexturedSimpleBlock(Blocks.STONE);
|
||||
public static Block RoadWhiteShort = new RotatableBlock();
|
||||
public static Block RoadWhiteLong = new RotatableBlock();
|
||||
public static Block TrafficCone = new TrafficCone();
|
||||
public static Block Guardrail = new Guardrail();
|
||||
public static Block SignPost = new SignPost();
|
||||
public static Block KitchenTiles = simpleBlock(Blocks.STONE);
|
||||
public static Block KitchenTiles = new TexturedSimpleBlock(Blocks.STONE);
|
||||
public static Block Television = new Television();
|
||||
public static Block OldTelevision = new OldTelevision();
|
||||
public static Block CeilingFan = new CeilingFan();
|
||||
@@ -68,6 +70,7 @@ public class DecorativeMain implements ModInitializer {
|
||||
@Override
|
||||
public void onInitialize() {
|
||||
MidnightConfig.init(MOD_ID, DecorativeConfig.class);
|
||||
PolymerSupport.init();
|
||||
|
||||
IndoorGroup = createGroup(id("indoor"), DecorativeMain.Television);
|
||||
TrafficGroup = createGroup(id("traffic"), DecorativeMain.TrafficCone);
|
||||
@@ -135,8 +138,4 @@ public class DecorativeMain implements ModInitializer {
|
||||
}
|
||||
return group;
|
||||
}
|
||||
public static Block simpleBlock(Block base) {
|
||||
if (DecorativeConfig.polymerIntegration) return new SimplePolymerBlock(AbstractBlock.Settings.copy(base), base);
|
||||
else return new Block(AbstractBlock.Settings.copy(base));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.ItemDisplayBirdBathModel;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import eu.pb4.polymer.virtualentity.api.ElementHolder;
|
||||
import net.minecraft.block.*;
|
||||
import net.minecraft.block.cauldron.CauldronBehavior;
|
||||
import net.minecraft.block.enums.BlockFace;
|
||||
import net.minecraft.component.ComponentMap;
|
||||
import net.minecraft.component.DataComponentTypes;
|
||||
import net.minecraft.component.type.PotionContentsComponent;
|
||||
@@ -13,9 +17,12 @@ import net.minecraft.item.ItemPlacementContext;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.potion.Potions;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.server.world.ServerWorld;
|
||||
import net.minecraft.sound.BlockSoundGroup;
|
||||
import net.minecraft.state.StateManager;
|
||||
import net.minecraft.state.property.IntProperty;
|
||||
import net.minecraft.state.property.Properties;
|
||||
import net.minecraft.util.Hand;
|
||||
import net.minecraft.util.ItemActionResult;
|
||||
import net.minecraft.util.hit.BlockHitResult;
|
||||
@@ -24,10 +31,11 @@ import net.minecraft.util.shape.VoxelShape;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldView;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class BirdBath extends AbstractCauldronBlock {
|
||||
public class BirdBath extends AbstractCauldronBlock implements FactoryBlock {
|
||||
private static final VoxelShape SHAPE;
|
||||
public static final IntProperty LEVEL = IntProperty.of("level",0,3);
|
||||
|
||||
@@ -119,4 +127,18 @@ public class BirdBath extends AbstractCauldronBlock {
|
||||
return !worldView.isAir(pos.down());
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
@Override
|
||||
public BlockState getPolymerBreakEventBlockState(BlockState state, ServerPlayerEntity player) {
|
||||
return Blocks.COBBLESTONE.getDefaultState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable ElementHolder createElementHolder(ServerWorld world, BlockPos pos, BlockState initialBlockState) {
|
||||
return new ItemDisplayBirdBathModel(initialBlockState, pos, world);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import eu.midnightdust.motschen.decorative.blockstates.CeilingFanStage;
|
||||
import eu.midnightdust.motschen.decorative.DecorativeMain;
|
||||
import eu.midnightdust.motschen.decorative.block.blockentity.CeilingFanBlockEntity;
|
||||
import eu.midnightdust.motschen.decorative.init.BlockEntities;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockEntityProvider;
|
||||
@@ -32,7 +33,7 @@ import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldView;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class CeilingFan extends BlockWithEntity implements BlockEntityProvider {
|
||||
public class CeilingFan extends BlockWithEntity implements BlockEntityProvider, FactoryBlock {
|
||||
private static final VoxelShape SHAPE;
|
||||
private static final EnumProperty<CeilingFanStage> STAGE = DecorativeMain.STAGE;
|
||||
|
||||
@@ -88,4 +89,10 @@ public class CeilingFan extends BlockWithEntity implements BlockEntityProvider {
|
||||
return !worldView.isAir(pos.up());
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package eu.midnightdust.motschen.decorative.block;
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.midnightdust.motschen.decorative.block.blockentity.ChoppingLogBlockEntity;
|
||||
import eu.midnightdust.motschen.decorative.init.BlockEntities;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockEntityProvider;
|
||||
@@ -26,7 +27,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class ChoppingLog extends BlockWithEntity implements BlockEntityProvider {
|
||||
public class ChoppingLog extends BlockWithEntity implements BlockEntityProvider, FactoryBlock {
|
||||
private static final DirectionProperty FACING = HorizontalFacingBlock.FACING;
|
||||
|
||||
public ChoppingLog() {
|
||||
@@ -69,4 +70,10 @@ public class ChoppingLog extends BlockWithEntity implements BlockEntityProvider
|
||||
return BlockRenderType.MODEL;
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -26,7 +27,7 @@ import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldView;
|
||||
|
||||
public class ChristmasLights extends HorizontalFacingBlock {
|
||||
public class ChristmasLights extends HorizontalFacingBlock implements FactoryBlock {
|
||||
|
||||
private static final VoxelShape NORTH_SHAPE;
|
||||
private static final VoxelShape EAST_SHAPE;
|
||||
@@ -95,4 +96,10 @@ public class ChristmasLights extends HorizontalFacingBlock {
|
||||
protected MapCodec<? extends HorizontalFacingBlock> getCodec() {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -11,7 +12,7 @@ import net.minecraft.util.shape.VoxelShape;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.WorldView;
|
||||
|
||||
public class ChristmasTree extends Block {
|
||||
public class ChristmasTree extends Block implements FactoryBlock {
|
||||
private static final VoxelShape SHAPE;
|
||||
|
||||
public ChristmasTree() {
|
||||
@@ -30,4 +31,10 @@ public class ChristmasTree extends Block {
|
||||
return !worldView.isAir(pos.down());
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package eu.midnightdust.motschen.decorative.block;
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.midnightdust.motschen.decorative.block.blockentity.DigitalClockBlockEntity;
|
||||
import eu.midnightdust.motschen.decorative.init.BlockEntities;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockEntityProvider;
|
||||
@@ -27,7 +28,7 @@ import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.World;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class DigitalClock extends BlockWithEntity implements BlockEntityProvider {
|
||||
public class DigitalClock extends BlockWithEntity implements BlockEntityProvider, FactoryBlock {
|
||||
private static final DirectionProperty FACING = HorizontalFacingBlock.FACING;
|
||||
private static final VoxelShape NORTH_SHAPE;
|
||||
private static final VoxelShape EAST_SHAPE;
|
||||
@@ -99,4 +100,10 @@ public class DigitalClock extends BlockWithEntity implements BlockEntityProvider
|
||||
|
||||
return buffer[0];
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -28,7 +29,7 @@ import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldAccess;
|
||||
import net.minecraft.world.WorldView;
|
||||
|
||||
public class DoubleLamp extends Block {
|
||||
public class DoubleLamp extends Block implements FactoryBlock {
|
||||
private static final VoxelShape SHAPE_TOP;
|
||||
private static final VoxelShape SHAPE_BOTTOM;
|
||||
|
||||
@@ -96,4 +97,10 @@ public class DoubleLamp extends Block {
|
||||
SHAPE_TOP = shape_top;
|
||||
SHAPE_BOTTOM = shape_bottom;
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -27,7 +28,7 @@ import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldView;
|
||||
|
||||
public class FireHydrant extends HorizontalFacingBlock {
|
||||
public class FireHydrant extends HorizontalFacingBlock implements FactoryBlock {
|
||||
private static final VoxelShape NORTH_SHAPE;
|
||||
private static final VoxelShape EAST_SHAPE;
|
||||
private static final VoxelShape SOUTH_SHAPE;
|
||||
@@ -97,4 +98,10 @@ public class FireHydrant extends HorizontalFacingBlock {
|
||||
protected MapCodec<? extends HorizontalFacingBlock> getCodec() {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -17,7 +18,7 @@ import net.minecraft.util.shape.VoxelShapes;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.WorldView;
|
||||
|
||||
public class Guardrail extends HorizontalFacingBlock {
|
||||
public class Guardrail extends HorizontalFacingBlock implements FactoryBlock {
|
||||
private static final VoxelShape NORTH_SHAPE;
|
||||
private static final VoxelShape EAST_SHAPE;
|
||||
private static final VoxelShape SOUTH_SHAPE;
|
||||
@@ -76,4 +77,10 @@ public class Guardrail extends HorizontalFacingBlock {
|
||||
protected MapCodec<? extends HorizontalFacingBlock> getCodec() {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -21,7 +22,7 @@ import net.minecraft.util.shape.VoxelShape;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class Lamp extends Block {
|
||||
public class Lamp extends Block implements FactoryBlock {
|
||||
private static final VoxelShape SHAPE;
|
||||
public static final BooleanProperty LIT = RedstoneLampBlock.LIT;
|
||||
|
||||
@@ -51,4 +52,10 @@ public class Lamp extends Block {
|
||||
VoxelShape shape = createCuboidShape(4, 0, 4, 12, 10, 12);
|
||||
SHAPE = shape;
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package eu.midnightdust.motschen.decorative.block;
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.midnightdust.motschen.decorative.DecorativeMain;
|
||||
import eu.midnightdust.motschen.decorative.blockstates.Program;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -28,7 +29,7 @@ import net.minecraft.world.WorldView;
|
||||
|
||||
import java.util.function.ToIntFunction;
|
||||
|
||||
public class OldTelevision extends HorizontalFacingBlock {
|
||||
public class OldTelevision extends HorizontalFacingBlock implements FactoryBlock {
|
||||
|
||||
private static final VoxelShape NORTH_SHAPE;
|
||||
private static final VoxelShape EAST_SHAPE;
|
||||
@@ -107,4 +108,10 @@ public class OldTelevision extends HorizontalFacingBlock {
|
||||
protected MapCodec<? extends HorizontalFacingBlock> getCodec() {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package eu.midnightdust.motschen.decorative.block;
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.midnightdust.motschen.decorative.block.blockentity.PoolSprinklerBlockEntity;
|
||||
import eu.midnightdust.motschen.decorative.init.BlockEntities;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockEntityProvider;
|
||||
@@ -37,7 +38,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class PoolSprinkler extends BlockWithEntity implements BlockEntityProvider {
|
||||
public class PoolSprinkler extends BlockWithEntity implements BlockEntityProvider, FactoryBlock {
|
||||
public static final DirectionProperty FACING = HorizontalFacingBlock.FACING;
|
||||
public static final BooleanProperty POWERED = DoorBlock.POWERED;
|
||||
private static final VoxelShape NORTH_SHAPE;
|
||||
@@ -125,4 +126,10 @@ public class PoolSprinkler extends BlockWithEntity implements BlockEntityProvide
|
||||
return BlockRenderType.MODEL;
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package eu.midnightdust.motschen.decorative.block;
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.midnightdust.motschen.decorative.DecorativeMain;
|
||||
import eu.midnightdust.motschen.decorative.blockstates.PoolShape;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -26,7 +27,7 @@ import net.minecraft.util.shape.VoxelShape;
|
||||
import net.minecraft.util.shape.VoxelShapes;
|
||||
import net.minecraft.world.BlockView;
|
||||
|
||||
public class PoolWall extends HorizontalFacingBlock implements Waterloggable {
|
||||
public class PoolWall extends HorizontalFacingBlock implements Waterloggable, FactoryBlock {
|
||||
public static final DirectionProperty FACING = DoorBlock.FACING;
|
||||
public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED;
|
||||
public static final EnumProperty<PoolShape> SHAPE = DecorativeMain.POOL_SHAPE;
|
||||
@@ -144,4 +145,10 @@ public class PoolWall extends HorizontalFacingBlock implements Waterloggable {
|
||||
protected MapCodec<? extends HorizontalFacingBlock> getCodec() {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.pb4.polymer.blocks.api.PolymerTexturedBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -11,7 +12,7 @@ import net.minecraft.sound.BlockSoundGroup;
|
||||
import net.minecraft.state.StateManager;
|
||||
import net.minecraft.util.math.Direction;
|
||||
|
||||
public class RotatableBlock extends HorizontalFacingBlock {
|
||||
public class RotatableBlock extends HorizontalFacingBlock implements PolymerTexturedBlock {
|
||||
|
||||
public RotatableBlock() {
|
||||
super(AbstractBlock.Settings.copy(Blocks.STONE).nonOpaque().sounds(BlockSoundGroup.STONE));
|
||||
@@ -32,4 +33,10 @@ public class RotatableBlock extends HorizontalFacingBlock {
|
||||
protected MapCodec<? extends HorizontalFacingBlock> getCodec() {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package eu.midnightdust.motschen.decorative.block;
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.midnightdust.motschen.decorative.block.blockentity.ShowerHeadBlockEntity;
|
||||
import eu.midnightdust.motschen.decorative.init.BlockEntities;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockEntityProvider;
|
||||
@@ -35,7 +36,7 @@ import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldView;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class ShowerHead extends BlockWithEntity implements BlockEntityProvider {
|
||||
public class ShowerHead extends BlockWithEntity implements BlockEntityProvider, FactoryBlock {
|
||||
private static final DirectionProperty FACING = HorizontalFacingBlock.FACING;
|
||||
public static final BooleanProperty POWERED = DoorBlock.POWERED;
|
||||
private static final VoxelShape NORTH_SHAPE;
|
||||
@@ -125,4 +126,10 @@ public class ShowerHead extends BlockWithEntity implements BlockEntityProvider {
|
||||
return BlockRenderType.MODEL;
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -17,7 +18,7 @@ import net.minecraft.util.shape.VoxelShapes;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.WorldView;
|
||||
|
||||
public class Sign extends HorizontalFacingBlock {
|
||||
public class Sign extends HorizontalFacingBlock implements FactoryBlock {
|
||||
private static final VoxelShape NORTH_SHAPE;
|
||||
private static final VoxelShape EAST_SHAPE;
|
||||
private static final VoxelShape SOUTH_SHAPE;
|
||||
@@ -77,4 +78,10 @@ public class Sign extends HorizontalFacingBlock {
|
||||
protected MapCodec<? extends HorizontalFacingBlock> getCodec() {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -11,7 +12,7 @@ import net.minecraft.util.shape.VoxelShape;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.WorldView;
|
||||
|
||||
public class SignPost extends Block {
|
||||
public class SignPost extends Block implements FactoryBlock {
|
||||
private static final VoxelShape SHAPE;
|
||||
|
||||
public SignPost() {
|
||||
@@ -30,4 +31,9 @@ public class SignPost extends Block {
|
||||
return !worldView.isAir(pos.down());
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.BlockSetType;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -20,7 +21,7 @@ import net.minecraft.util.shape.VoxelShapes;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class SlidingDoor extends DoorBlock {
|
||||
public class SlidingDoor extends DoorBlock implements FactoryBlock {
|
||||
|
||||
private static final VoxelShape NORTH_SHAPE;
|
||||
private static final VoxelShape EAST_SHAPE;
|
||||
@@ -79,4 +80,10 @@ public class SlidingDoor extends DoorBlock {
|
||||
|
||||
return buffer[0];
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package eu.midnightdust.motschen.decorative.block;
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.midnightdust.motschen.decorative.DecorativeMain;
|
||||
import eu.midnightdust.motschen.decorative.blockstates.Part;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -31,7 +32,7 @@ import net.minecraft.world.WorldView;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class Springboard extends HorizontalFacingBlock {
|
||||
public class Springboard extends HorizontalFacingBlock implements FactoryBlock {
|
||||
private static final VoxelShape NORTH_SHAPE_FRONT;
|
||||
private static final VoxelShape EAST_SHAPE_FRONT;
|
||||
private static final VoxelShape SOUTH_SHAPE_FRONT;
|
||||
@@ -254,4 +255,10 @@ public class Springboard extends HorizontalFacingBlock {
|
||||
protected MapCodec<? extends HorizontalFacingBlock> getCodec() {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -12,7 +13,7 @@ import net.minecraft.util.shape.VoxelShape;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.WorldView;
|
||||
|
||||
public class StonePath extends Block {
|
||||
public class StonePath extends Block implements FactoryBlock {
|
||||
private static final VoxelShape SHAPE;
|
||||
|
||||
public StonePath() {
|
||||
@@ -31,4 +32,9 @@ public class StonePath extends Block {
|
||||
return worldView.getBlockState(pos.down()).isSideSolidFullSquare(worldView,pos,Direction.UP);
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package eu.midnightdust.motschen.decorative.block;
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.midnightdust.motschen.decorative.DecorativeMain;
|
||||
import eu.midnightdust.motschen.decorative.blockstates.Program;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -29,7 +30,7 @@ import net.minecraft.world.WorldView;
|
||||
import java.util.Objects;
|
||||
import java.util.function.ToIntFunction;
|
||||
|
||||
public class Television extends HorizontalFacingBlock {
|
||||
public class Television extends HorizontalFacingBlock implements FactoryBlock {
|
||||
|
||||
private static final VoxelShape NORTH_SHAPE;
|
||||
private static final VoxelShape EAST_SHAPE;
|
||||
@@ -106,9 +107,14 @@ public class Television extends HorizontalFacingBlock {
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected MapCodec<? extends HorizontalFacingBlock> getCodec() {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -11,7 +12,7 @@ import net.minecraft.util.shape.VoxelShape;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.WorldView;
|
||||
|
||||
public class TrafficCone extends Block {
|
||||
public class TrafficCone extends Block implements FactoryBlock {
|
||||
private static final VoxelShape SHAPE;
|
||||
|
||||
public TrafficCone() {
|
||||
@@ -30,4 +31,10 @@ public class TrafficCone extends Block {
|
||||
return !worldView.isAir(pos.down());
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package eu.midnightdust.motschen.decorative.block;
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.midnightdust.motschen.decorative.block.blockentity.WallClockBlockEntity;
|
||||
import eu.midnightdust.motschen.decorative.init.BlockEntities;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockEntityProvider;
|
||||
@@ -29,7 +30,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class WallClock extends BlockWithEntity implements BlockEntityProvider {
|
||||
public class WallClock extends BlockWithEntity implements BlockEntityProvider, FactoryBlock {
|
||||
private static final DirectionProperty FACING = HorizontalFacingBlock.FACING;
|
||||
private static final VoxelShape NORTH_SHAPE;
|
||||
private static final VoxelShape EAST_SHAPE;
|
||||
@@ -102,4 +103,10 @@ public class WallClock extends BlockWithEntity implements BlockEntityProvider {
|
||||
|
||||
return buffer[0];
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -30,7 +31,7 @@ import net.minecraft.world.WorldView;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class WaterPump extends HorizontalFacingBlock {
|
||||
public class WaterPump extends HorizontalFacingBlock implements FactoryBlock {
|
||||
private static final VoxelShape NORTH_SHAPE;
|
||||
private static final VoxelShape EAST_SHAPE;
|
||||
private static final VoxelShape SOUTH_SHAPE;
|
||||
@@ -101,4 +102,10 @@ public class WaterPump extends HorizontalFacingBlock {
|
||||
protected MapCodec<? extends HorizontalFacingBlock> getCodec() {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Polymer
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import java.util.TimeZone;
|
||||
public class DecorativeConfig extends MidnightConfig {
|
||||
@Entry public static TimeFormat timeFormat = TimeZone.getDefault().useDaylightTime() ? TimeFormat.h12 : TimeFormat.h24;
|
||||
@Entry public static boolean polymerIntegration = false;
|
||||
@Entry(min = 0, max = 200, isSlider = true) public static int viewDistance = 100;
|
||||
|
||||
public enum TimeFormat {
|
||||
h12, h24
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package eu.midnightdust.motschen.decorative.polymer;
|
||||
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.ItemDisplayBirdBathModel;
|
||||
|
||||
public class PolymerSupport {
|
||||
public static void init() {
|
||||
ItemDisplayBirdBathModel.initModels();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package eu.midnightdust.motschen.decorative.polymer;
|
||||
|
||||
import eu.pb4.polymer.blocks.api.PolymerTexturedBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
|
||||
public class TexturedSimpleBlock extends Block implements PolymerTexturedBlock {
|
||||
public TexturedSimpleBlock(Block base) {
|
||||
this(AbstractBlock.Settings.copy(base));
|
||||
}
|
||||
public TexturedSimpleBlock(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package eu.midnightdust.motschen.decorative.polymer.model;
|
||||
|
||||
import eu.midnightdust.motschen.decorative.block.BirdBath;
|
||||
import eu.midnightdust.motschen.decorative.config.DecorativeConfig;
|
||||
import eu.midnightdust.motschen.decorative.util.ColorUtil;
|
||||
import eu.pb4.factorytools.api.resourcepack.BaseItemProvider;
|
||||
import eu.pb4.factorytools.api.virtualentity.BlockModel;
|
||||
import eu.pb4.factorytools.api.virtualentity.ItemDisplayElementUtil;
|
||||
import eu.pb4.polymer.virtualentity.api.attachment.BlockAwareAttachment;
|
||||
import eu.pb4.polymer.virtualentity.api.attachment.HolderAttachment;
|
||||
import eu.pb4.polymer.virtualentity.api.elements.ItemDisplayElement;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.component.ComponentMap;
|
||||
import net.minecraft.component.DataComponentTypes;
|
||||
import net.minecraft.component.type.PotionContentsComponent;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.potion.Potions;
|
||||
import net.minecraft.server.world.ServerWorld;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import org.joml.Vector3f;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import static eu.midnightdust.motschen.decorative.DecorativeMain.id;
|
||||
|
||||
public class ItemDisplayBirdBathModel extends BlockModel {
|
||||
private final ItemDisplayElement main;
|
||||
private final ItemDisplayElement water;
|
||||
public static ItemStack STONE;
|
||||
public static ItemStack WATER;
|
||||
|
||||
public static void initModels() {
|
||||
STONE = BaseItemProvider.requestModel(id("block/bird_bath"));
|
||||
WATER = BaseItemProvider.requestModel(Items.POTION, id("block/polymer/bird_bath_water"));
|
||||
}
|
||||
|
||||
public ItemDisplayBirdBathModel(BlockState state, BlockPos pos, ServerWorld world) {
|
||||
this.main = ItemDisplayElementUtil.createSimple(STONE);
|
||||
this.main.setDisplaySize(1, 1);
|
||||
this.main.setScale(new Vector3f(2));
|
||||
this.main.setViewRange(0.75f * (DecorativeConfig.viewDistance / 100f));
|
||||
this.addElement(this.main);
|
||||
|
||||
//int color = ColorUtil.convertRgbToArgb(world.getColor(pos, BiomeColors.WATER_COLOR));
|
||||
int color = ColorUtil.convertRgbToArgb(4159204);
|
||||
WATER.applyComponentsFrom(ComponentMap.builder().add(DataComponentTypes.POTION_CONTENTS, new PotionContentsComponent(Optional.of(Potions.WATER), Optional.of(color), List.of())).build());
|
||||
this.water = ItemDisplayElementUtil.createSimple(WATER);
|
||||
this.water.setDisplaySize(1, 1);
|
||||
this.water.setScale(new Vector3f(2));
|
||||
this.water.setOffset(new Vec3d(0d, -0.025 * (3-(state.get(BirdBath.LEVEL))), 0d));
|
||||
this.water.setViewRange(state.get(BirdBath.LEVEL) != 0 ? (0.75f * (DecorativeConfig.viewDistance / 100f)) : 0);
|
||||
this.addElement(this.water);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyUpdate(HolderAttachment.UpdateType updateType) {
|
||||
if (updateType == BlockAwareAttachment.BLOCK_STATE_UPDATE) {
|
||||
var state = this.blockState();
|
||||
this.water.setViewRange(state.get(BirdBath.LEVEL) != 0 ? (0.75f * (DecorativeConfig.viewDistance / 100f)) : 0);
|
||||
this.water.setOffset(new Vec3d(0d, -0.025 * (3-(state.get(BirdBath.LEVEL))), 0d));
|
||||
|
||||
this.tick();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package eu.midnightdust.motschen.decorative.util;
|
||||
|
||||
public class ColorUtil {
|
||||
public static int convertRgbToArgb(int rgb) {
|
||||
int red = 0xFF & (rgb >> 16);
|
||||
int green = 0xFF & (rgb >> 8);
|
||||
int blue = 0xFF & (rgb);
|
||||
int alpha = 200; // Makes water bottles transparent, 255 would be opaque
|
||||
|
||||
return (alpha << 24) | (red << 16) | (green << 8) | blue;
|
||||
}
|
||||
}
|
||||
@@ -45,7 +45,10 @@ public class RegistryUtil {
|
||||
}
|
||||
|
||||
public static Item blockItem(Block block) {
|
||||
if (DecorativeConfig.polymerIntegration) return new FactoryBlockItem((Block & PolymerBlock) block, new Item.Settings());
|
||||
if (DecorativeConfig.polymerIntegration) {
|
||||
if (block instanceof PolymerBlock) return new FactoryBlockItem((Block & PolymerBlock) block, new Item.Settings());
|
||||
else System.out.println(block);
|
||||
}
|
||||
return new BlockItem(block, new Item.Settings());
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"credit": "made by Motschen",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"water": "block/water_still"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [5, 8.5, 5],
|
||||
"to": [11, 8.6, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 16, 14]},
|
||||
"faces": {
|
||||
"up": {"uv": [0, 0, 6, 6], "texture": "#water", "tintindex": 0}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user