From 1d098eb7c276f488dec6bd30d07ebdb52a1a6231 Mon Sep 17 00:00:00 2001 From: Aleksey Date: Wed, 21 Oct 2020 17:32:40 +0300 Subject: [PATCH] WIP: End portals --- psd/end_portal.psd | Bin 89546 -> 89522 bytes .../ru/betterend/blocks/EndPortalBlock.java | 22 +++++- .../world/features/EndPortalFeature.java | 65 ++++++++++++++++++ .../features/EndPortalFeatureConfig.java | 43 ++++++++++++ .../textures/block/end_portal.png.mcmeta | 1 + 5 files changed, 129 insertions(+), 2 deletions(-) create mode 100644 src/main/java/ru/betterend/world/features/EndPortalFeature.java create mode 100644 src/main/java/ru/betterend/world/features/EndPortalFeatureConfig.java diff --git a/psd/end_portal.psd b/psd/end_portal.psd index 8163c81418b090fe91f830dccdc2cddccec960c5..5b1670036bc472ba6fd0dcad749be8a05b14179d 100644 GIT binary patch literal 89522 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 { return 12; @@ -58,10 +62,24 @@ public class EndPortalBlock extends NetherPortalBlock implements IRenderTypeable @Override public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { + BlockPos exitPos = this.findExitPos(world, pos); } - + @Override public ERenderLayer getRenderLayer() { return ERenderLayer.TRANSLUCENT; } + + private BlockPos findExitPos(World world, BlockPos pos) { + if (world.getRegistryKey().equals(World.OVERWORLD)) { + BlockPos basePos = pos.mutableCopy().set(pos.getX() * 8, pos.getY() * 8, pos.getZ() * 8); + int height = world.getTopY(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, basePos.getX(), basePos.getZ()); + BlockPos.iterate(basePos.add(-16, -pos.getY() + 1, -16), basePos.add(16, height, 16)).forEach(position -> { + + }); + } else { + + } + return pos; + } } diff --git a/src/main/java/ru/betterend/world/features/EndPortalFeature.java b/src/main/java/ru/betterend/world/features/EndPortalFeature.java new file mode 100644 index 00000000..f074ced3 --- /dev/null +++ b/src/main/java/ru/betterend/world/features/EndPortalFeature.java @@ -0,0 +1,65 @@ +package ru.betterend.world.features; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.gen.chunk.ChunkGenerator; +import net.minecraft.world.gen.feature.Feature; + +import ru.betterend.blocks.EndPortalBlock; +import ru.betterend.blocks.RunedFlavolite; +import ru.betterend.registry.BlockRegistry; +import ru.betterend.util.BlocksHelper; + +public class EndPortalFeature extends Feature { + + public EndPortalFeature(Block frameBlock) { + super(EndPortalFeatureConfig.CODEC); + } + + @Override + public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + EndPortalFeatureConfig config) { + + BlockState portalFrame = config.frameBlock.getDefaultState().with(RunedFlavolite.ACTIVATED, config.activated); + BlockState portalBlock = BlockRegistry.END_PORTAL_BLOCK.getDefaultState().with(EndPortalBlock.AXIS, config.axis); + BlockPos bottomCorner = pos; + BlockPos topCorner; + if (config.axis.equals(Direction.Axis.X)) { + topCorner = bottomCorner.add(0, 4, 3); + } else { + topCorner = bottomCorner.add(3, 4, 0); + } + + for(BlockPos position : BlockPos.iterate(bottomCorner, topCorner)) { + if (position.equals(bottomCorner) || position.equals(topCorner) || + position.getX() == bottomCorner.getX() && position.getZ() == bottomCorner.getZ() || + position.getX() == topCorner.getX() && position.getZ() == topCorner.getZ()) { + + BlocksHelper.setWithoutUpdate(world, position, portalFrame); + } else if (config.axis.equals(Direction.Axis.X)) { + if (position.getX() == bottomCorner.getX() && position.getY() == bottomCorner.getY() || + position.getX() == topCorner.getX() && position.getY() == topCorner.getY()) { + + BlocksHelper.setWithoutUpdate(world, position, portalFrame); + } else if (config.activated) { + BlocksHelper.setWithoutUpdate(world, position, portalBlock); + } + } else { + if (position.getZ() == bottomCorner.getZ() && position.getY() == bottomCorner.getY() || + position.getZ() == topCorner.getZ() && position.getY() == topCorner.getY()) { + + BlocksHelper.setWithoutUpdate(world, position, portalFrame); + } else if (config.activated) { + BlocksHelper.setWithoutUpdate(world, position, portalBlock); + } + } + } + + return true; + } +} diff --git a/src/main/java/ru/betterend/world/features/EndPortalFeatureConfig.java b/src/main/java/ru/betterend/world/features/EndPortalFeatureConfig.java new file mode 100644 index 00000000..4e52a8a1 --- /dev/null +++ b/src/main/java/ru/betterend/world/features/EndPortalFeatureConfig.java @@ -0,0 +1,43 @@ +package ru.betterend.world.features; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; + +import net.minecraft.util.Identifier; +import net.minecraft.util.math.Direction; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.gen.feature.FeatureConfig; + +import ru.betterend.blocks.RunedFlavolite; + +public class EndPortalFeatureConfig implements FeatureConfig { + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { + return instance.group(Codec.STRING.fieldOf("frame_block").forGetter(endPortalFeatureConfig -> { + return Registry.BLOCK.getId(endPortalFeatureConfig.frameBlock).toString(); + }), Codec.STRING.fieldOf("axis").forGetter(endPortalFeatureConfig -> { + return endPortalFeatureConfig.axis.getName(); + }), Codec.BOOL.fieldOf("activated").forGetter(endPortalFeatureConfig -> { + return endPortalFeatureConfig.activated; + })).apply(instance, EndPortalFeatureConfig::new); + }); + + public final RunedFlavolite frameBlock; + public final Direction.Axis axis; + public final boolean activated; + + private EndPortalFeatureConfig(String frameBlock, String axis, boolean active) { + this.frameBlock = (RunedFlavolite) Registry.BLOCK.get(new Identifier(frameBlock)); + this.axis = Direction.Axis.fromName(axis); + this.activated = active; + } + + private EndPortalFeatureConfig(RunedFlavolite frameBlock, Direction.Axis axis, boolean active) { + this.frameBlock = frameBlock; + this.axis = axis; + this.activated = active; + } + + public static EndPortalFeatureConfig create(RunedFlavolite block, Direction.Axis axis, boolean active) { + return new EndPortalFeatureConfig(block, axis, active); + } +} diff --git a/src/main/resources/assets/betterend/textures/block/end_portal.png.mcmeta b/src/main/resources/assets/betterend/textures/block/end_portal.png.mcmeta index f6730e30..b2e2153a 100644 --- a/src/main/resources/assets/betterend/textures/block/end_portal.png.mcmeta +++ b/src/main/resources/assets/betterend/textures/block/end_portal.png.mcmeta @@ -1,5 +1,6 @@ { "animation": { + "interpolate": true, "frametime": 4 } } \ No newline at end of file