mirror of
https://github.com/TeamMidnightDust/Decorative.git
synced 2025-12-15 12:35:10 +01:00
There ain't no traffic jam here
- All traffic decorations are now working properly with Polymer
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.ItemDisplayDirectionalModel;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.DirectionalItemDisplayModel;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import eu.pb4.polymer.virtualentity.api.ElementHolder;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
@@ -116,6 +116,6 @@ public class FireHydrant extends HorizontalFacingBlock implements FactoryBlock {
|
||||
|
||||
@Override
|
||||
public @Nullable ElementHolder createElementHolder(ServerWorld world, BlockPos pos, BlockState initialBlockState) {
|
||||
return new ItemDisplayDirectionalModel(initialBlockState);
|
||||
return new DirectionalItemDisplayModel(initialBlockState);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.ItemDisplayDirectionalModel;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.DirectionalItemDisplayModel;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import eu.pb4.polymer.virtualentity.api.ElementHolder;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
@@ -95,6 +95,6 @@ public class Guardrail extends HorizontalFacingBlock implements FactoryBlock {
|
||||
|
||||
@Override
|
||||
public @Nullable ElementHolder createElementHolder(ServerWorld world, BlockPos pos, BlockState initialBlockState) {
|
||||
return new ItemDisplayDirectionalModel(initialBlockState);
|
||||
return new DirectionalItemDisplayModel(initialBlockState);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +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.midnightdust.motschen.decorative.polymer.model.ItemDisplayDirectionalModel;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.DirectionalItemDisplayModel;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import eu.pb4.polymer.virtualentity.api.ElementHolder;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
@@ -40,8 +40,6 @@ import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldView;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class PoolSprinkler extends BlockWithEntity implements BlockEntityProvider, FactoryBlock {
|
||||
public static final DirectionProperty FACING = HorizontalFacingBlock.FACING;
|
||||
public static final BooleanProperty POWERED = DoorBlock.POWERED;
|
||||
@@ -142,7 +140,7 @@ public class PoolSprinkler extends BlockWithEntity implements BlockEntityProvide
|
||||
|
||||
@Override
|
||||
public @Nullable ElementHolder createElementHolder(ServerWorld world, BlockPos pos, BlockState initialBlockState) {
|
||||
return new ItemDisplayDirectionalModel(initialBlockState);
|
||||
return new DirectionalItemDisplayModel(initialBlockState);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,7 +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.midnightdust.motschen.decorative.polymer.model.ItemDisplayDirectionalModel;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.DirectionalItemDisplayModel;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import eu.pb4.polymer.virtualentity.api.ElementHolder;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
@@ -142,7 +142,7 @@ public class ShowerHead extends BlockWithEntity implements BlockEntityProvider,
|
||||
|
||||
@Override
|
||||
public @Nullable ElementHolder createElementHolder(ServerWorld world, BlockPos pos, BlockState initialBlockState) {
|
||||
return new ItemDisplayDirectionalModel(initialBlockState);
|
||||
return new DirectionalItemDisplayModel(initialBlockState);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.ItemDisplayDirectionalModel;
|
||||
import eu.midnightdust.motschen.decorative.util.ColorUtil;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.DirectionalItemDisplayModel;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import eu.pb4.polymer.virtualentity.api.ElementHolder;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
@@ -26,8 +25,6 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import static eu.midnightdust.motschen.decorative.DecorativeMain.id;
|
||||
|
||||
public class Sign extends HorizontalFacingBlock implements FactoryBlock {
|
||||
private static final VoxelShape NORTH_SHAPE;
|
||||
private static final VoxelShape EAST_SHAPE;
|
||||
@@ -100,7 +97,7 @@ public class Sign extends HorizontalFacingBlock implements FactoryBlock {
|
||||
|
||||
@Override
|
||||
public @Nullable ElementHolder createElementHolder(ServerWorld world, BlockPos pos, BlockState initialBlockState) {
|
||||
return new ItemDisplayDirectionalModel(initialBlockState);
|
||||
return new DirectionalItemDisplayModel(initialBlockState);
|
||||
}
|
||||
|
||||
public enum Type {
|
||||
|
||||
@@ -1,16 +1,21 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.SimpleItemDisplayModel;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import eu.pb4.polymer.virtualentity.api.ElementHolder;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.block.ShapeContext;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.server.world.ServerWorld;
|
||||
import net.minecraft.sound.BlockSoundGroup;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.shape.VoxelShape;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.WorldView;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class SignPost extends Block implements FactoryBlock {
|
||||
private static final VoxelShape SHAPE;
|
||||
@@ -36,4 +41,13 @@ public class SignPost extends Block implements FactoryBlock {
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
@Override
|
||||
public BlockState getPolymerBreakEventBlockState(BlockState state, ServerPlayerEntity player) {
|
||||
return Blocks.IRON_BLOCK.getDefaultState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable ElementHolder createElementHolder(ServerWorld world, BlockPos pos, BlockState initialBlockState) {
|
||||
return new SimpleItemDisplayModel(initialBlockState);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,21 @@
|
||||
package eu.midnightdust.motschen.decorative.block;
|
||||
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.SimpleItemDisplayModel;
|
||||
import eu.pb4.factorytools.api.block.FactoryBlock;
|
||||
import eu.pb4.polymer.virtualentity.api.ElementHolder;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.block.ShapeContext;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.server.world.ServerWorld;
|
||||
import net.minecraft.sound.BlockSoundGroup;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.shape.VoxelShape;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.WorldView;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class TrafficCone extends Block implements FactoryBlock {
|
||||
private static final VoxelShape SHAPE;
|
||||
@@ -36,5 +41,14 @@ public class TrafficCone extends Block implements FactoryBlock {
|
||||
public BlockState getPolymerBlockState(BlockState state) {
|
||||
return Blocks.BARRIER.getDefaultState();
|
||||
}
|
||||
@Override
|
||||
public BlockState getPolymerBreakEventBlockState(BlockState state, ServerPlayerEntity player) {
|
||||
return Blocks.ORANGE_CONCRETE.getDefaultState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable ElementHolder createElementHolder(ServerWorld world, BlockPos pos, BlockState initialBlockState) {
|
||||
return new SimpleItemDisplayModel(initialBlockState);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,17 +1,11 @@
|
||||
package eu.midnightdust.motschen.decorative.polymer;
|
||||
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.ItemDisplayBirdBathModel;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.ItemDisplayCeilingFanModel;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.ItemDisplayChristmasLightsModel;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.ItemDisplayChristmasTreeModel;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.ItemDisplayDigitalClockModel;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.ItemDisplayDirectionalModel;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.ItemDisplayDoubleLampModel;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.ItemDisplayLampModel;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.ItemDisplayPoolWallModel;
|
||||
import eu.midnightdust.motschen.decorative.polymer.model.*;
|
||||
|
||||
public class PolymerSupport {
|
||||
public static void init() {
|
||||
DirectionalItemDisplayModel.initModels();
|
||||
SimpleItemDisplayModel.initModels();
|
||||
ItemDisplayBirdBathModel.initModels();
|
||||
ItemDisplayCeilingFanModel.initModels();
|
||||
ItemDisplayChristmasLightsModel.initModels();
|
||||
@@ -19,7 +13,6 @@ public class PolymerSupport {
|
||||
ItemDisplayDigitalClockModel.initModels();
|
||||
ItemDisplayDoubleLampModel.initModels();
|
||||
ItemDisplayLampModel.initModels();
|
||||
ItemDisplayDirectionalModel.initModels();
|
||||
ItemDisplayPoolWallModel.initModels();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ import eu.midnightdust.motschen.decorative.block.PoolSprinkler;
|
||||
import eu.midnightdust.motschen.decorative.block.ShowerHead;
|
||||
import eu.midnightdust.motschen.decorative.block.Sign;
|
||||
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;
|
||||
@@ -23,7 +22,7 @@ import java.util.Map;
|
||||
|
||||
import static eu.midnightdust.motschen.decorative.DecorativeMain.id;
|
||||
|
||||
public class ItemDisplayDirectionalModel extends BlockModel {
|
||||
public class DirectionalItemDisplayModel extends BlockModel {
|
||||
private final ItemDisplayElement main;
|
||||
public static ItemStack FIRE_HYDRANT;
|
||||
public static ItemStack GUARDRAIL;
|
||||
@@ -42,7 +41,7 @@ public class ItemDisplayDirectionalModel extends BlockModel {
|
||||
}
|
||||
}
|
||||
|
||||
public ItemDisplayDirectionalModel(BlockState state) {
|
||||
public DirectionalItemDisplayModel(BlockState state) {
|
||||
this.main = ItemDisplayElementUtil.createSimple(getModel(state));
|
||||
this.main.setDisplaySize(1, 1);
|
||||
this.main.setScale(new Vector3f(2));
|
||||
@@ -0,0 +1,39 @@
|
||||
package eu.midnightdust.motschen.decorative.polymer.model;
|
||||
|
||||
import eu.midnightdust.motschen.decorative.block.SignPost;
|
||||
import eu.midnightdust.motschen.decorative.block.TrafficCone;
|
||||
import eu.midnightdust.motschen.decorative.config.DecorativeConfig;
|
||||
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.elements.ItemDisplayElement;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import org.joml.Vector3f;
|
||||
|
||||
import static eu.midnightdust.motschen.decorative.DecorativeMain.id;
|
||||
|
||||
public class SimpleItemDisplayModel extends BlockModel {
|
||||
public static ItemStack SIGN_POST;
|
||||
public static ItemStack TRAFFIC_CONE;
|
||||
|
||||
public static void initModels() {
|
||||
SIGN_POST = BaseItemProvider.requestModel(id("block/sign_post"));
|
||||
TRAFFIC_CONE = BaseItemProvider.requestModel(id("block/traffic_cone"));
|
||||
}
|
||||
|
||||
public SimpleItemDisplayModel(BlockState state) {
|
||||
ItemDisplayElement main = ItemDisplayElementUtil.createSimple(getModel(state));
|
||||
main.setDisplaySize(1, 1);
|
||||
main.setScale(new Vector3f(2));
|
||||
main.setViewRange(DecorativeConfig.viewDistance / 100f);
|
||||
this.addElement(main);
|
||||
}
|
||||
|
||||
public ItemStack getModel(BlockState state) {
|
||||
if (state.getBlock() instanceof SignPost) return SIGN_POST;
|
||||
else if (state.getBlock() instanceof TrafficCone) return TRAFFIC_CONE;
|
||||
else return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user