diff --git a/src/main/java/ru/betterend/blocks/AuroraCrystalBlock.java b/src/main/java/ru/betterend/blocks/AuroraCrystalBlock.java index 3918c6e5..526aeb63 100644 --- a/src/main/java/ru/betterend/blocks/AuroraCrystalBlock.java +++ b/src/main/java/ru/betterend/blocks/AuroraCrystalBlock.java @@ -19,9 +19,9 @@ import net.minecraft.loot.context.LootContextParameters; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.Vec3i; -import ru.betterend.client.ERenderLayer; -import ru.betterend.client.IRenderTypeable; +import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IColorProvider; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.registry.EndItems; import ru.betterend.util.MHelper; diff --git a/src/main/java/ru/betterend/blocks/BlockEndLotusLeaf.java b/src/main/java/ru/betterend/blocks/BlockEndLotusLeaf.java index 9bb642da..8d5c1ceb 100644 --- a/src/main/java/ru/betterend/blocks/BlockEndLotusLeaf.java +++ b/src/main/java/ru/betterend/blocks/BlockEndLotusLeaf.java @@ -19,8 +19,8 @@ import net.minecraft.world.BlockView; import net.minecraft.world.WorldView; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.BlockBaseNotFull; -import ru.betterend.client.ERenderLayer; -import ru.betterend.client.IRenderTypeable; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.util.BlocksHelper; public class BlockEndLotusLeaf extends BlockBaseNotFull implements IRenderTypeable { diff --git a/src/main/java/ru/betterend/blocks/BlockEndLotusStem.java b/src/main/java/ru/betterend/blocks/BlockEndLotusStem.java index 8c0b7449..ec17e2f0 100644 --- a/src/main/java/ru/betterend/blocks/BlockEndLotusStem.java +++ b/src/main/java/ru/betterend/blocks/BlockEndLotusStem.java @@ -27,8 +27,8 @@ import net.minecraft.world.BlockView; import net.minecraft.world.WorldAccess; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.BlockBase; -import ru.betterend.client.ERenderLayer; -import ru.betterend.client.IRenderTypeable; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.util.BlocksHelper; public class BlockEndLotusStem extends BlockBase implements Waterloggable, IRenderTypeable { diff --git a/src/main/java/ru/betterend/blocks/EndPortalBlock.java b/src/main/java/ru/betterend/blocks/EndPortalBlock.java index 70327c53..4dc533f3 100644 --- a/src/main/java/ru/betterend/blocks/EndPortalBlock.java +++ b/src/main/java/ru/betterend/blocks/EndPortalBlock.java @@ -23,8 +23,8 @@ import net.minecraft.world.World; import net.minecraft.world.WorldAccess; import net.minecraft.world.dimension.DimensionType; import net.minecraft.world.gen.feature.ConfiguredFeatures; -import ru.betterend.client.ERenderLayer; -import ru.betterend.client.IRenderTypeable; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.interfaces.TeleportingEntity; import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndTags; diff --git a/src/main/java/ru/betterend/blocks/EternalPedestal.java b/src/main/java/ru/betterend/blocks/EternalPedestal.java index 25bcc4e1..4e16e64d 100644 --- a/src/main/java/ru/betterend/blocks/EternalPedestal.java +++ b/src/main/java/ru/betterend/blocks/EternalPedestal.java @@ -5,20 +5,29 @@ import java.util.List; import com.google.common.collect.Lists; import net.minecraft.block.Block; +import net.minecraft.block.BlockEntityProvider; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; +import net.minecraft.block.entity.BlockEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.loot.context.LootContext; import net.minecraft.state.StateManager; import net.minecraft.state.property.BooleanProperty; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockView; +import net.minecraft.world.World; import net.minecraft.world.explosion.Explosion; -import ru.betterend.blocks.basis.BlockSlab; -import ru.betterend.registry.EndBlocks; -public class EternalPedestal extends BlockSlab { +import ru.betterend.blocks.basis.BlockSlab; +import ru.betterend.blocks.entities.EternalPedestalBlockEntity; +import ru.betterend.registry.EndBlocks; +import ru.betterend.registry.EndItems; + +public class EternalPedestal extends BlockSlab implements BlockEntityProvider { public static final BooleanProperty ACTIVATED = BooleanProperty.of("active"); public static final BooleanProperty HAS_ITEM = BooleanProperty.of("has_item"); @@ -27,6 +36,39 @@ public class EternalPedestal extends BlockSlab { this.setDefaultState(stateManager.getDefaultState().with(ACTIVATED, false).with(HAS_ITEM, false)); } + @Override + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + if (world.isClient) return ActionResult.CONSUME; + BlockEntity blockEntity = world.getBlockEntity(pos); + if (blockEntity instanceof EternalPedestalBlockEntity && state.isOf(this)) { + EternalPedestalBlockEntity pedestal = (EternalPedestalBlockEntity) blockEntity; + if (pedestal.isEmpty()) { + ItemStack itemStack = player.getStackInHand(hand); + if (itemStack.isEmpty()) return ActionResult.CONSUME; + if (itemStack.getItem().equals(EndItems.ETERNAL_CRYSTAL)) { + world.setBlockState(pos, state.with(ACTIVATED, true).with(HAS_ITEM, true)); + } else { + world.setBlockState(pos, state.with(HAS_ITEM, true)); + } + pedestal.setStack(0, itemStack.split(1)); + return ActionResult.SUCCESS; + } else { + ItemStack itemStack = pedestal.getStack(0); + if (player.giveItemStack(itemStack)) { + if (state.get(ACTIVATED)) { + world.setBlockState(pos, state.with(ACTIVATED, false).with(HAS_ITEM, false)); + } else { + world.setBlockState(pos, state.with(HAS_ITEM, false)); + } + pedestal.removeStack(0); + return ActionResult.SUCCESS; + } + return ActionResult.FAIL; + } + } + return ActionResult.PASS; + } + @Override public float calcBlockBreakingDelta(BlockState state, PlayerEntity player, BlockView world, BlockPos pos) { return 0.0F; @@ -52,4 +94,9 @@ public class EternalPedestal extends BlockSlab { super.appendProperties(stateManager); stateManager.add(ACTIVATED, HAS_ITEM); } + + @Override + public BlockEntity createBlockEntity(BlockView world) { + return new EternalPedestalBlockEntity(); + } } diff --git a/src/main/java/ru/betterend/blocks/basis/BlockDoor.java b/src/main/java/ru/betterend/blocks/basis/BlockDoor.java index 45c9cb98..9bc60b85 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockDoor.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockDoor.java @@ -13,8 +13,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.loot.context.LootContext; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; -import ru.betterend.client.ERenderLayer; -import ru.betterend.client.IRenderTypeable; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.interfaces.Patterned; public class BlockDoor extends DoorBlock implements IRenderTypeable, Patterned { diff --git a/src/main/java/ru/betterend/blocks/basis/BlockDoublePlant.java b/src/main/java/ru/betterend/blocks/basis/BlockDoublePlant.java index 8a12b731..9507e63c 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockDoublePlant.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockDoublePlant.java @@ -34,8 +34,8 @@ import net.minecraft.world.BlockView; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; -import ru.betterend.client.ERenderLayer; -import ru.betterend.client.IRenderTypeable; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; diff --git a/src/main/java/ru/betterend/blocks/basis/BlockFeatureSapling.java b/src/main/java/ru/betterend/blocks/basis/BlockFeatureSapling.java index dfbe0bc6..0d4bf36d 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockFeatureSapling.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockFeatureSapling.java @@ -22,8 +22,8 @@ import net.minecraft.world.World; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; import net.minecraft.world.gen.feature.Feature; -import ru.betterend.client.ERenderLayer; -import ru.betterend.client.IRenderTypeable; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.interfaces.Patterned; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; diff --git a/src/main/java/ru/betterend/blocks/basis/BlockGlowingFur.java b/src/main/java/ru/betterend/blocks/basis/BlockGlowingFur.java index dc6f3dac..b009fedc 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockGlowingFur.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockGlowingFur.java @@ -31,8 +31,8 @@ import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; -import ru.betterend.client.ERenderLayer; -import ru.betterend.client.IRenderTypeable; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.util.MHelper; public class BlockGlowingFur extends BlockBaseNotFull implements IRenderTypeable { diff --git a/src/main/java/ru/betterend/blocks/basis/BlockLadder.java b/src/main/java/ru/betterend/blocks/basis/BlockLadder.java index ee7485ab..5257434b 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockLadder.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockLadder.java @@ -25,8 +25,8 @@ import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; -import ru.betterend.client.ERenderLayer; -import ru.betterend.client.IRenderTypeable; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.interfaces.Patterned; import ru.betterend.util.BlocksHelper; diff --git a/src/main/java/ru/betterend/blocks/basis/BlockPlant.java b/src/main/java/ru/betterend/blocks/basis/BlockPlant.java index 864067c7..75994399 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockPlant.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockPlant.java @@ -30,8 +30,8 @@ import net.minecraft.world.BlockView; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; -import ru.betterend.client.ERenderLayer; -import ru.betterend.client.IRenderTypeable; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.registry.EndTags; public class BlockPlant extends BlockBaseNotFull implements IRenderTypeable, Fertilizable { diff --git a/src/main/java/ru/betterend/blocks/basis/BlockSimpleLeaves.java b/src/main/java/ru/betterend/blocks/basis/BlockSimpleLeaves.java index d1b349fe..a0432dd7 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockSimpleLeaves.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockSimpleLeaves.java @@ -8,8 +8,8 @@ import net.minecraft.block.MaterialColor; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; -import ru.betterend.client.ERenderLayer; -import ru.betterend.client.IRenderTypeable; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.interfaces.Patterned; public class BlockSimpleLeaves extends BlockBaseNotFull implements IRenderTypeable { diff --git a/src/main/java/ru/betterend/blocks/basis/BlockTrapdoor.java b/src/main/java/ru/betterend/blocks/basis/BlockTrapdoor.java index 64209a3f..3271f4e9 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockTrapdoor.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockTrapdoor.java @@ -13,8 +13,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.loot.context.LootContext; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; -import ru.betterend.client.ERenderLayer; -import ru.betterend.client.IRenderTypeable; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.interfaces.Patterned; public class BlockTrapdoor extends TrapdoorBlock implements IRenderTypeable, Patterned { diff --git a/src/main/java/ru/betterend/blocks/basis/BlockUnderwaterPlant.java b/src/main/java/ru/betterend/blocks/basis/BlockUnderwaterPlant.java index 336c7e41..26160d47 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockUnderwaterPlant.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockUnderwaterPlant.java @@ -34,8 +34,8 @@ import net.minecraft.world.BlockView; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; -import ru.betterend.client.ERenderLayer; -import ru.betterend.client.IRenderTypeable; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; diff --git a/src/main/java/ru/betterend/blocks/basis/BlockUpDownPlant.java b/src/main/java/ru/betterend/blocks/basis/BlockUpDownPlant.java index a88f25eb..b66f805d 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockUpDownPlant.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockUpDownPlant.java @@ -26,8 +26,8 @@ import net.minecraft.world.BlockView; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; -import ru.betterend.client.ERenderLayer; -import ru.betterend.client.IRenderTypeable; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.registry.EndTags; public class BlockUpDownPlant extends BlockBaseNotFull implements IRenderTypeable { diff --git a/src/main/java/ru/betterend/blocks/basis/BlockVine.java b/src/main/java/ru/betterend/blocks/basis/BlockVine.java index 524233ff..1fb0b7fd 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockVine.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockVine.java @@ -33,8 +33,8 @@ import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; -import ru.betterend.client.ERenderLayer; -import ru.betterend.client.IRenderTypeable; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.util.BlocksHelper; public class BlockVine extends BlockBaseNotFull implements IRenderTypeable, Fertilizable { diff --git a/src/main/java/ru/betterend/blocks/entities/EternalPedestalBlockEntity.java b/src/main/java/ru/betterend/blocks/entities/EternalPedestalBlockEntity.java new file mode 100644 index 00000000..4561de95 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/entities/EternalPedestalBlockEntity.java @@ -0,0 +1,100 @@ +package ru.betterend.blocks.entities; + +import net.minecraft.block.BlockState; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.inventory.Inventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.packet.s2c.play.BlockEntityUpdateS2CPacket; +import net.minecraft.util.Tickable; +import ru.betterend.registry.EndBlockEntities; + +public class EternalPedestalBlockEntity extends BlockEntity implements Inventory, Tickable { + private ItemStack activeItem = ItemStack.EMPTY; + + private int age; + + public EternalPedestalBlockEntity() { + super(EndBlockEntities.ETERNAL_PEDESTAL); + } + + public int getAge() { + return this.age; + } + + @Override + public void clear() { + this.activeItem = ItemStack.EMPTY; + } + + @Override + public int size() { + return 1; + } + + @Override + public boolean isEmpty() { + return this.activeItem.isEmpty(); + } + + @Override + public ItemStack getStack(int slot) { + return this.activeItem; + } + + @Override + public ItemStack removeStack(int slot, int amount) { + return this.removeStack(slot); + } + + @Override + public ItemStack removeStack(int slot) { + return this.activeItem = ItemStack.EMPTY; + } + + @Override + public void setStack(int slot, ItemStack stack) { + this.activeItem = stack; + } + + @Override + public boolean canPlayerUse(PlayerEntity player) { + return true; + } + + @Override + public BlockEntityUpdateS2CPacket toUpdatePacket() { + return new BlockEntityUpdateS2CPacket(pos, 32, this.toInitialChunkDataTag()); + } + + @Override + public CompoundTag toInitialChunkDataTag() { + return this.toTag(new CompoundTag()); + } + + @Override + public void fromTag(BlockState state, CompoundTag tag) { + super.fromTag(state, tag); + if (tag.contains("active_item")) { + CompoundTag itemTag = tag.getCompound("active_item"); + this.activeItem = ItemStack.fromTag(itemTag); + } + } + + @Override + public CompoundTag toTag(CompoundTag tag) { + tag.put("active_item", activeItem.toTag(new CompoundTag())); + return super.toTag(tag); + } + + @Override + public void tick() { + if (!isEmpty()) { + this.age++; + if (age > 10000) { + this.age = 0; + } + } + } +} diff --git a/src/main/java/ru/betterend/blocks/entities/render/EternalPedestalItemRenderer.java b/src/main/java/ru/betterend/blocks/entities/render/EternalPedestalItemRenderer.java new file mode 100644 index 00000000..a9b7320e --- /dev/null +++ b/src/main/java/ru/betterend/blocks/entities/render/EternalPedestalItemRenderer.java @@ -0,0 +1,62 @@ +package ru.betterend.blocks.entities.render; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +import net.minecraft.block.BlockState; +import net.minecraft.block.enums.SlabType; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; +import net.minecraft.client.render.block.entity.BlockEntityRenderer; +import net.minecraft.client.render.model.json.ModelTransformation; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.util.math.Vector3f; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DyeColor; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.MathHelper; + +import ru.betterend.blocks.EternalPedestal; +import ru.betterend.blocks.entities.EternalPedestalBlockEntity; +import ru.betterend.client.render.BeamRenderer; + +@Environment(EnvType.CLIENT) +public class EternalPedestalItemRenderer extends BlockEntityRenderer { + private static final Identifier BEAM_TEXTURE = new Identifier("textures/entity/end_gateway_beam.png"); + + public EternalPedestalItemRenderer(BlockEntityRenderDispatcher dispatcher) { + super(dispatcher); + } + + @Override + public void render(EternalPedestalBlockEntity entity, float tickDelta, MatrixStack matrices, + VertexConsumerProvider vertexConsumers, int light, int overlay) { + + if (entity.isEmpty()) return; + + BlockState state = entity.getWorld().getBlockState(entity.getPos()); + SlabType type = state.get(EternalPedestal.TYPE); + + ItemStack activeItem = entity.getStack(0); + matrices.push(); + if (type.equals(SlabType.DOUBLE)) { + matrices.translate(0.5, 1.5, 0.5); + } else { + matrices.translate(0.5, 1.0, 0.5); + } + float altitude = MathHelper.sin((entity.getAge() + tickDelta) / 10.0F) * 0.1F; + float rotation = (entity.getAge() + tickDelta) / 25.0F + 6.0F; + matrices.translate(0.0D, altitude, 0.0D); + matrices.multiply(Vector3f.POSITIVE_Y.getRadialQuaternion(rotation)); + MinecraftClient minecraft = MinecraftClient.getInstance(); + minecraft.getItemRenderer().renderItem(activeItem, ModelTransformation.Mode.GROUND, light, overlay, matrices, vertexConsumers); + float[] colors = DyeColor.MAGENTA.getColorComponents(); + int y = entity.getPos().getY(); + VertexConsumer vertexConsumer = vertexConsumers.getBuffer(RenderLayer.getBeaconBeam(BEAM_TEXTURE, true)); + BeamRenderer.renderLightBeam(matrices, vertexConsumer, tickDelta, -y, 1024 - y, colors, 0.25F, 0.15F, 0.2F); + matrices.pop(); + } +} diff --git a/src/main/java/ru/betterend/client/BetterEndClient.java b/src/main/java/ru/betterend/client/BetterEndClient.java index 421b0c2a..01f8ba71 100644 --- a/src/main/java/ru/betterend/client/BetterEndClient.java +++ b/src/main/java/ru/betterend/client/BetterEndClient.java @@ -4,6 +4,8 @@ import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; import net.minecraft.client.render.RenderLayer; import net.minecraft.util.registry.Registry; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.registry.EndBlockEntityRenders; import ru.betterend.registry.EndEntitiesRenders; import ru.betterend.registry.EndParticles; diff --git a/src/main/java/ru/betterend/client/IRenderTypeable.java b/src/main/java/ru/betterend/client/IRenderTypeable.java deleted file mode 100644 index 4ae43f1c..00000000 --- a/src/main/java/ru/betterend/client/IRenderTypeable.java +++ /dev/null @@ -1,6 +0,0 @@ -package ru.betterend.client; - -public interface IRenderTypeable -{ - public ERenderLayer getRenderLayer(); -} diff --git a/src/main/java/ru/betterend/client/render/BeamRenderer.java b/src/main/java/ru/betterend/client/render/BeamRenderer.java new file mode 100644 index 00000000..edb0b181 --- /dev/null +++ b/src/main/java/ru/betterend/client/render/BeamRenderer.java @@ -0,0 +1,62 @@ +package ru.betterend.client.render; + +import net.minecraft.client.render.OverlayTexture; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.util.math.Vector3f; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Matrix3f; +import net.minecraft.util.math.Matrix4f; + +public class BeamRenderer { + public static void renderLightBeam(MatrixStack matrixStack, VertexConsumer vertexConsumer, float tick, int minY, int maxY, float[] colors, float alpha, float h, float k) { + int m = minY + maxY; + + float o = maxY < 0 ? tick : -tick; + float p = MathHelper.fractionalPart(o * 0.2F - (float) MathHelper.floor(o * 0.1F)); + float red = colors[0]; + float green = colors[1]; + float blue = colors[2]; + + matrixStack.push(); + matrixStack.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(tick * 2.25F - 45.0F)); + float af = 0.0F; + float ai = 0.0F; + float aj = -h; + float aa = -h; + float ap = -1.0F + p; + float aq = (float) maxY * (0.5F / h) + ap; + + renderBeam(matrixStack, vertexConsumer, red, green, blue, alpha, minY, m, 0.0F, h, h, 0.0F, aj, 0.0F, 0.0F, aa, 0.0F, 1.0F, aq, ap); + matrixStack.pop(); + + af = -k; + float ag = -k; + ai = -k; + aj = -k; + ap = -1.0F + p; + aq = (float) maxY + ap; + renderBeam(matrixStack, vertexConsumer, red, green, blue, alpha, minY, m, af, ag, k, ai, aj, k, k, k, 0.0F, 1.0F, aq, ap); + } + + private static void renderBeam(MatrixStack matrixStack, VertexConsumer vertexConsumer, float red, float green, float blue, float alpha, int j, int k, float l, float m, float n, float o, float p, float q, float r, float s, float t, float u, float v, float w) { + MatrixStack.Entry entry = matrixStack.peek(); + Matrix4f matrix4f = entry.getModel(); + Matrix3f matrix3f = entry.getNormal(); + renderBeam(matrix4f, matrix3f, vertexConsumer, red, green, blue, alpha, j, k, l, m, n, o, t, u, v, w); + renderBeam(matrix4f, matrix3f, vertexConsumer, red, green, blue, alpha, j, k, r, s, p, q, t, u, v, w); + renderBeam(matrix4f, matrix3f, vertexConsumer, red, green, blue, alpha, j, k, n, o, r, s, t, u, v, w); + renderBeam(matrix4f, matrix3f, vertexConsumer, red, green, blue, alpha, j, k, p, q, l, m, t, u, v, w); + } + + private static void renderBeam(Matrix4f matrix4f, Matrix3f matrix3f, VertexConsumer vertexConsumer, float red, float green, float blue, float alpha, int j, int k, float l, float m, float n, float o, float p, float q, float r, float s) { + addVertex(matrix4f, matrix3f, vertexConsumer, red, green, blue, alpha, k, l, m, q, r); + addVertex(matrix4f, matrix3f, vertexConsumer, red, green, blue, alpha, j, l, m, q, s); + addVertex(matrix4f, matrix3f, vertexConsumer, red, green, blue, alpha, j, n, o, p, s); + addVertex(matrix4f, matrix3f, vertexConsumer, red, green, blue, alpha, k, n, o, p, r); + } + + private static void addVertex(Matrix4f matrix4f, Matrix3f matrix3f, VertexConsumer vertexConsumer, float red, float green, float blue, float alpha, float y, float x, float l, float m, float n) { + vertexConsumer.vertex(matrix4f, x, y, l).color(red, green, blue, alpha).texture(m, n).overlay(OverlayTexture.DEFAULT_UV).light(15728880).normal(matrix3f, 0.0F, 1.0F, 0.0F).next(); + } +} diff --git a/src/main/java/ru/betterend/client/ERenderLayer.java b/src/main/java/ru/betterend/client/render/ERenderLayer.java similarity index 59% rename from src/main/java/ru/betterend/client/ERenderLayer.java rename to src/main/java/ru/betterend/client/render/ERenderLayer.java index cd1c439c..0bbf2358 100644 --- a/src/main/java/ru/betterend/client/ERenderLayer.java +++ b/src/main/java/ru/betterend/client/render/ERenderLayer.java @@ -1,6 +1,6 @@ -package ru.betterend.client; - -public enum ERenderLayer { - CUTOUT, - TRANSLUCENT; -} +package ru.betterend.client.render; + +public enum ERenderLayer { + CUTOUT, + TRANSLUCENT; +} diff --git a/src/main/java/ru/betterend/interfaces/IRenderTypeable.java b/src/main/java/ru/betterend/interfaces/IRenderTypeable.java new file mode 100644 index 00000000..fb81963c --- /dev/null +++ b/src/main/java/ru/betterend/interfaces/IRenderTypeable.java @@ -0,0 +1,8 @@ +package ru.betterend.interfaces; + +import ru.betterend.client.render.ERenderLayer; + +public interface IRenderTypeable +{ + public ERenderLayer getRenderLayer(); +} diff --git a/src/main/java/ru/betterend/item/EternalCrystal.java b/src/main/java/ru/betterend/item/EternalCrystal.java index da84fe3b..cf4a8227 100644 --- a/src/main/java/ru/betterend/item/EternalCrystal.java +++ b/src/main/java/ru/betterend/item/EternalCrystal.java @@ -1,17 +1,15 @@ package ru.betterend.item; import net.minecraft.block.BlockState; -import net.minecraft.entity.decoration.EndCrystalEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemUsageContext; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.ActionResult; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import ru.betterend.blocks.EternalPedestal; + import ru.betterend.blocks.RunedFlavolite; import ru.betterend.registry.EndItems; -import ru.betterend.util.BlocksHelper; import ru.betterend.util.PortalFrameHelper; public class EternalCrystal extends Item { @@ -27,16 +25,10 @@ public class EternalCrystal extends Item { if (world instanceof ServerWorld) { if (usedBlock.getBlock() instanceof RunedFlavolite && !usedBlock.get(RunedFlavolite.ACTIVATED)) { if (PortalFrameHelper.checkPortalFrame((ServerWorld) world, usedPos, usedBlock.getBlock())) { - return ActionResult.PASS; + return ActionResult.SUCCESS; } - } else if (usedBlock.getBlock() instanceof EternalPedestal && !usedBlock.get(EternalPedestal.HAS_ITEM)) { - BlockPos upPos = usedPos.up(); - EndCrystalEntity endCrystalEntity = new EndCrystalEntity(world, upPos.getX() + 0.5D, upPos.getY(), upPos.getZ() + 0.5D); - endCrystalEntity.setShowBottom(false); - world.spawnEntity(endCrystalEntity); - BlocksHelper.setWithoutUpdate(world, usedPos, usedBlock.with(EternalPedestal.HAS_ITEM, true).with(EternalPedestal.ACTIVATED, true)); } } - return ActionResult.FAIL; + return ActionResult.PASS; } } diff --git a/src/main/java/ru/betterend/mixin/client/ClientPlayNetworkHandlerMixin.java b/src/main/java/ru/betterend/mixin/client/ClientPlayNetworkHandlerMixin.java index ac46045b..270ced9f 100644 --- a/src/main/java/ru/betterend/mixin/client/ClientPlayNetworkHandlerMixin.java +++ b/src/main/java/ru/betterend/mixin/client/ClientPlayNetworkHandlerMixin.java @@ -16,6 +16,7 @@ import net.minecraft.network.packet.s2c.play.SignEditorOpenS2CPacket; import net.minecraft.util.math.BlockPos; import net.minecraft.util.thread.ThreadExecutor; import ru.betterend.blocks.entities.ESignBlockEntity; +import ru.betterend.blocks.entities.EternalPedestalBlockEntity; import ru.betterend.client.gui.BlockSignEditScreen; @Mixin(ClientPlayNetworkHandler.class) @@ -45,7 +46,7 @@ public class ClientPlayNetworkHandlerMixin (ThreadExecutor) client); BlockPos blockPos = packet.getPos(); BlockEntity blockEntity = this.client.world.getBlockEntity(blockPos); - if (blockEntity instanceof ESignBlockEntity) { + if (blockEntity instanceof ESignBlockEntity || blockEntity instanceof EternalPedestalBlockEntity) { blockEntity.fromTag(this.client.world.getBlockState(blockPos), packet.getCompoundTag()); info.cancel(); } diff --git a/src/main/java/ru/betterend/registry/EndBlockEntities.java b/src/main/java/ru/betterend/registry/EndBlockEntities.java index 7b4e15c3..27335d6d 100644 --- a/src/main/java/ru/betterend/registry/EndBlockEntities.java +++ b/src/main/java/ru/betterend/registry/EndBlockEntities.java @@ -18,10 +18,13 @@ import ru.betterend.blocks.entities.EBarrelBlockEntity; import ru.betterend.blocks.entities.EChestBlockEntity; import ru.betterend.blocks.entities.ESignBlockEntity; import ru.betterend.blocks.entities.EndStoneSmelterBlockEntity; +import ru.betterend.blocks.entities.EternalPedestalBlockEntity; public class EndBlockEntities { public final static BlockEntityType END_STONE_SMELTER = registerBlockEntity(EndStoneSmelter.ID, BlockEntityType.Builder.create(EndStoneSmelterBlockEntity::new, EndBlocks.END_STONE_SMELTER)); + public final static BlockEntityType ETERNAL_PEDESTAL = registerBlockEntity("eternal_pedestal", + BlockEntityType.Builder.create(EternalPedestalBlockEntity::new, EndBlocks.ETERNAL_PEDESTAL)); public static final BlockEntityType CHEST = registerBlockEntity("chest", BlockEntityType.Builder.create(EChestBlockEntity::new, getChests())); public static final BlockEntityType BARREL = registerBlockEntity("barrel", diff --git a/src/main/java/ru/betterend/registry/EndBlockEntityRenders.java b/src/main/java/ru/betterend/registry/EndBlockEntityRenders.java index fe439e48..e27a018e 100644 --- a/src/main/java/ru/betterend/registry/EndBlockEntityRenders.java +++ b/src/main/java/ru/betterend/registry/EndBlockEntityRenders.java @@ -5,11 +5,13 @@ import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.client.rendereregistry.v1.BlockEntityRendererRegistry; import ru.betterend.blocks.entities.render.EChestBlockEntityRenderer; import ru.betterend.blocks.entities.render.ESignBlockEntityRenderer; +import ru.betterend.blocks.entities.render.EternalPedestalItemRenderer; +@Environment(EnvType.CLIENT) public class EndBlockEntityRenders { - @Environment(EnvType.CLIENT) public static void register() { BlockEntityRendererRegistry.INSTANCE.register(EndBlockEntities.CHEST, EChestBlockEntityRenderer::new); BlockEntityRendererRegistry.INSTANCE.register(EndBlockEntities.SIGN, ESignBlockEntityRenderer::new); + BlockEntityRendererRegistry.INSTANCE.register(EndBlockEntities.ETERNAL_PEDESTAL, EternalPedestalItemRenderer::new); } } diff --git a/src/main/resources/assets/betterend/blockstates/eternal_pedestal.json b/src/main/resources/assets/betterend/blockstates/eternal_pedestal.json new file mode 100644 index 00000000..bc171582 --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/eternal_pedestal.json @@ -0,0 +1,198 @@ +{ + "variants": { + "type=bottom,active=false": [ + { + "model": "betterend:block/eternal_pedestal_1", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_2", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_3", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_4", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_5", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_6", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_7", + "uvlock": true + } + ], + "type=bottom,active=true": [ + { + "model": "betterend:block/eternal_pedestal_active_1", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_active_2", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_active_3", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_active_4", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_active_5", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_active_6", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_active_7", + "uvlock": true + } + ], + "type=top,active=false": [ + { + "model": "betterend:block/eternal_pedestal_1", + "uvlock": true, + "x": 180 + }, + { + "model": "betterend:block/eternal_pedestal_2", + "uvlock": true, + "x": 180 + }, + { + "model": "betterend:block/eternal_pedestal_3", + "uvlock": true, + "x": 180 + }, + { + "model": "betterend:block/eternal_pedestal_4", + "uvlock": true, + "x": 180 + }, + { + "model": "betterend:block/eternal_pedestal_5", + "uvlock": true, + "x": 180 + }, + { + "model": "betterend:block/eternal_pedestal_6", + "uvlock": true, + "x": 180 + }, + { + "model": "betterend:block/eternal_pedestal_7", + "uvlock": true, + "x": 180 + } + ], + "type=top,active=true": [ + { + "model": "betterend:block/eternal_pedestal_active_1", + "uvlock": true, + "x": 180 + }, + { + "model": "betterend:block/eternal_pedestal_active_2", + "uvlock": true, + "x": 180 + }, + { + "model": "betterend:block/eternal_pedestal_active_3", + "uvlock": true, + "x": 180 + }, + { + "model": "betterend:block/eternal_pedestal_active_4", + "uvlock": true, + "x": 180 + }, + { + "model": "betterend:block/eternal_pedestal_active_5", + "uvlock": true, + "x": 180 + }, + { + "model": "betterend:block/eternal_pedestal_active_6", + "uvlock": true, + "x": 180 + }, + { + "model": "betterend:block/eternal_pedestal_active_7", + "uvlock": true, + "x": 180 + } + ], + "type=double,active=false": [ + { + "model": "betterend:block/eternal_pedestal_double_1", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_double_2", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_double_3", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_double_4", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_double_5", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_double_6", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_double_7", + "uvlock": true + } + ], + "type=double,active=true": [ + { + "model": "betterend:block/eternal_pedestal_double_active_1", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_double_active_2", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_double_active_3", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_double_active_4", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_double_active_5", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_double_active_6", + "uvlock": true + }, + { + "model": "betterend:block/eternal_pedestal_double_active_7", + "uvlock": true + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_1.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_1.json new file mode 100644 index 00000000..a895bd4d --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_1.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "top": "betterend:block/flavolite_runed_1", + "side": "betterend:block/flavolite_tiles", + "bottom": "betterend:block/flavolite_runed_1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_2.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_2.json new file mode 100644 index 00000000..21b46551 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_2.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "top": "betterend:block/flavolite_runed_2", + "side": "betterend:block/flavolite_tiles", + "bottom": "betterend:block/flavolite_runed_2" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_3.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_3.json new file mode 100644 index 00000000..54d39f0f --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_3.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "top": "betterend:block/flavolite_runed_3", + "side": "betterend:block/flavolite_tiles", + "bottom": "betterend:block/flavolite_runed_3" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_4.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_4.json new file mode 100644 index 00000000..29d0e568 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_4.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "top": "betterend:block/flavolite_runed_4", + "side": "betterend:block/flavolite_tiles", + "bottom": "betterend:block/flavolite_runed_4" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_5.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_5.json new file mode 100644 index 00000000..16a66df9 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_5.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "top": "betterend:block/flavolite_runed_5", + "side": "betterend:block/flavolite_tiles", + "bottom": "betterend:block/flavolite_runed_5" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_6.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_6.json new file mode 100644 index 00000000..6acb66e8 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_6.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "top": "betterend:block/flavolite_runed_6", + "side": "betterend:block/flavolite_tiles", + "bottom": "betterend:block/flavolite_runed_6" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_7.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_7.json new file mode 100644 index 00000000..d6629082 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_7.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "top": "betterend:block/flavolite_runed_7", + "side": "betterend:block/flavolite_tiles", + "bottom": "betterend:block/flavolite_runed_7" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_1.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_1.json new file mode 100644 index 00000000..d6a8f909 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_1.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "top": "betterend:block/flavolite_runed_active_1", + "side": "betterend:block/flavolite_tiles", + "bottom": "betterend:block/flavolite_runed_active_1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_2.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_2.json new file mode 100644 index 00000000..e2970f74 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_2.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "top": "betterend:block/flavolite_runed_active_2", + "side": "betterend:block/flavolite_tiles", + "bottom": "betterend:block/flavolite_runed_active_2" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_3.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_3.json new file mode 100644 index 00000000..9509663f --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_3.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "top": "betterend:block/flavolite_runed_active_3", + "side": "betterend:block/flavolite_tiles", + "bottom": "betterend:block/flavolite_runed_active_3" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_4.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_4.json new file mode 100644 index 00000000..e3f3960f --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_4.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "top": "betterend:block/flavolite_runed_active_4", + "side": "betterend:block/flavolite_tiles", + "bottom": "betterend:block/flavolite_runed_active_4" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_5.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_5.json new file mode 100644 index 00000000..2262eb59 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_5.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "top": "betterend:block/flavolite_runed_active_5", + "side": "betterend:block/flavolite_tiles", + "bottom": "betterend:block/flavolite_runed_active_5" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_6.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_6.json new file mode 100644 index 00000000..319bd7e6 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_6.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "top": "betterend:block/flavolite_runed_active_6", + "side": "betterend:block/flavolite_tiles", + "bottom": "betterend:block/flavolite_runed_active_6" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_7.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_7.json new file mode 100644 index 00000000..eb68c202 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_active_7.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "top": "betterend:block/flavolite_runed_active_7", + "side": "betterend:block/flavolite_tiles", + "bottom": "betterend:block/flavolite_runed_active_7" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_1.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_1.json new file mode 100644 index 00000000..025e1de4 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "betterend:block/flavolite_runed_1", + "side": "betterend:block/flavolite_pillar_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_2.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_2.json new file mode 100644 index 00000000..6b8fee63 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "betterend:block/flavolite_runed_2", + "side": "betterend:block/flavolite_pillar_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_3.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_3.json new file mode 100644 index 00000000..f5e1d6b1 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "betterend:block/flavolite_runed_3", + "side": "betterend:block/flavolite_pillar_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_4.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_4.json new file mode 100644 index 00000000..800c587f --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_4.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "betterend:block/flavolite_runed_4", + "side": "betterend:block/flavolite_pillar_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_5.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_5.json new file mode 100644 index 00000000..d81517ff --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_5.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "betterend:block/flavolite_runed_5", + "side": "betterend:block/flavolite_pillar_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_6.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_6.json new file mode 100644 index 00000000..d2bc09bf --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_6.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "betterend:block/flavolite_runed_6", + "side": "betterend:block/flavolite_pillar_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_7.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_7.json new file mode 100644 index 00000000..0633cd17 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_7.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "betterend:block/flavolite_runed_7", + "side": "betterend:block/flavolite_pillar_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_1.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_1.json new file mode 100644 index 00000000..ca4b4cea --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "betterend:block/flavolite_runed_active_1", + "side": "betterend:block/flavolite_pillar_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_2.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_2.json new file mode 100644 index 00000000..ad6a0b20 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "betterend:block/flavolite_runed_active_2", + "side": "betterend:block/flavolite_pillar_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_3.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_3.json new file mode 100644 index 00000000..5409bee4 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "betterend:block/flavolite_runed_active_3", + "side": "betterend:block/flavolite_pillar_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_4.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_4.json new file mode 100644 index 00000000..cc270bc6 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_4.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "betterend:block/flavolite_runed_active_4", + "side": "betterend:block/flavolite_pillar_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_5.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_5.json new file mode 100644 index 00000000..7e14b1c6 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_5.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "betterend:block/flavolite_runed_active_5", + "side": "betterend:block/flavolite_pillar_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_6.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_6.json new file mode 100644 index 00000000..368ead0b --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_6.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "betterend:block/flavolite_runed_active_6", + "side": "betterend:block/flavolite_pillar_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_7.json b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_7.json new file mode 100644 index 00000000..c4a23980 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/eternal_pedestal_double_active_7.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "betterend:block/flavolite_runed_active_7", + "side": "betterend:block/flavolite_pillar_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/item/eternal_pedestal.json b/src/main/resources/assets/betterend/models/item/eternal_pedestal.json new file mode 100644 index 00000000..c70f55a6 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/eternal_pedestal.json @@ -0,0 +1,3 @@ +{ + "parent": "betterend:block/eternal_pedestal_1" +} diff --git a/src/main/resources/assets/betterend/models/item/flavolite_1.json b/src/main/resources/assets/betterend/models/item/flavolite_1.json deleted file mode 100644 index 8a88cbe0..00000000 --- a/src/main/resources/assets/betterend/models/item/flavolite_1.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "betterend:block/flavolite" -} \ No newline at end of file