#mod-dev-talk Sunday 8 November 2020
80 messages4 people
- A
public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { if (!world.isClient() && !entity.hasVehicle() && !entity.hasPassengers() && ((AetherEntity) entity).canUseAetherPortal()) { BlockPos target; ServerWorld serverWorld = (ServerWorld) world; RegistryKey<World> targetRegKey = world.getRegistryKey() != AetherDimension.AETHER_WORLD_KEY ? AetherDimension.AETHER_WORLD_KEY : World.OVERWORLD; ServerWorld targetWorld = serverWorld.getServer().getWorld(targetRegKey); if(targetRegKey == AetherDimension.AETHER_WORLD_KEY) target = new BlockPos(entity.getX() / 8, entity.getY(), entity.getZ() / 8); else target = new BlockPos(entity.getX() * 8, entity.getY(), entity.getZ() * 8); ChunkPos chunkPos = new ChunkPos(target); targetWorld.getChunkManager().setChunkForced(chunkPos, true); int y = targetWorld.getTopY(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, target.getX(), target.getZ()); targetWorld.getChunkManager().setChunkForced(chunkPos, false); if(entity instanceof ServerPlayerEntity) { serverWorld.getChunkManager().addTicket(ChunkTicketType.POST_TELEPORT, chunkPos, 1, entity.getEntityId()); ((ServerPlayerEntity) entity).teleport(targetWorld, target.getX(), y, target.getZ(), entity.yaw, entity.pitch); } }20:46The readability of this is swiftly decending to shit - D
- A
- D
- A20:47Give it a shot
- D20:48/ seperate some lines
- A
- D
- C
- D
- A
- D20:49Thats 1 line there except the comment20:49
public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { if (!world.isClient() && !entity.hasVehicle() && !entity.hasPassengers() && ((AetherEntity) entity).canUseAetherPortal()) { BlockPos target; ServerWorld serverWorld = (ServerWorld) world; RegistryKey<World> targetRegKey = world.getRegistryKey() != AetherDimension.AETHER_WORLD_KEY ? AetherDimension.AETHER_WORLD_KEY : World.OVERWORLD; ServerWorld targetWorld = serverWorld.getServer().getWorld(targetRegKey); targetRegKey == AetherDimension.AETHER_WORLD_KEY ? target = new BlockPos(entity.getX() / 8, entity.getY(), entity.getZ() / 8) : target = new BlockPos(entity.getX() * 8, entity.getY(), entity.getZ() * 8); targetWorld.getChunkManager().setChunkForced(new ChunkPos(target), true); targetWorld.getChunkManager().setChunkForced(new ChunkPos(target), false); if(entity instanceof ServerPlayerEntity) { serverWorld.getChunkManager().addTicket(ChunkTicketType.POST_TELEPORT, chunkPos, 1, entity.getEntityId()); ((ServerPlayerEntity) entity).teleport(targetWorld, target.getX(), targetWorld.getTopY(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, target.getX(), target.getZ()), target.getZ(), entity.yaw, entity.pitch); } }20:49Tried my best - A
- C
- C
- C
- C
- A
- D
- A
- C
- A
- D
- A
- D
- A
- D
- C
- A
- D
- A22:01Prepare for jank
- D
- C
Surprisingly, it is actually very difficult to prevent the player from getting stuck in a teleporation pingpong match
Yea, I recognize that, that's an oldie from Kinos port too xD22:08Also yes, the mixin count is growing rapidly, hence why i organized them early on xD - A
- A
- C23:12or maybe a lower %
- D
- A
- D
- C
- D23:30It teleports them to overworld
- A
- D
- C
- D
- C
- D
- C
- A





