From 37ae63cb8cd63f05912cc1b3a3ea69370fbf3224 Mon Sep 17 00:00:00 2001 From: Lizbeth Rika Date: Fri, 17 Jul 2015 19:36:16 +0100 Subject: [PATCH] Separate worldgen islands from fabricated islands. --- .../common/core/command/CommandSkyblockSpread.java | 2 +- .../botania/common/world/SkyblockWorldEvents.java | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/java/vazkii/botania/common/core/command/CommandSkyblockSpread.java b/src/main/java/vazkii/botania/common/core/command/CommandSkyblockSpread.java index 8394e9904..46a69b246 100644 --- a/src/main/java/vazkii/botania/common/core/command/CommandSkyblockSpread.java +++ b/src/main/java/vazkii/botania/common/core/command/CommandSkyblockSpread.java @@ -41,7 +41,7 @@ public class CommandSkyblockSpread extends CommandBase { ChunkCoordinates spawn = player.worldObj.getSpawnPoint(); int x = player.worldObj.rand.nextInt(maxrange) - maxrange / 2 + spawn.posX; int z = player.worldObj.rand.nextInt(maxrange) - maxrange / 2 + spawn.posZ; - SkyblockWorldEvents.spawnPlayer(player, x, spawn.posY, z); + SkyblockWorldEvents.spawnPlayer(player, x, spawn.posY, z, true); } } diff --git a/src/main/java/vazkii/botania/common/world/SkyblockWorldEvents.java b/src/main/java/vazkii/botania/common/world/SkyblockWorldEvents.java index ddce89526..e771d4765 100644 --- a/src/main/java/vazkii/botania/common/world/SkyblockWorldEvents.java +++ b/src/main/java/vazkii/botania/common/world/SkyblockWorldEvents.java @@ -57,7 +57,7 @@ public final class SkyblockWorldEvents { if(WorldTypeSkyblock.isWorldSkyblock(world)) { ChunkCoordinates coords = world.getSpawnPoint(); if(world.getBlock(coords.posX, coords.posY - 4, coords.posZ) != Blocks.bedrock && world.provider.dimensionId == 0) - spawnPlayer(player, coords.posX, coords.posY, coords.posZ); + spawnPlayer(player, coords.posX, coords.posY, coords.posZ, false); } @@ -120,7 +120,7 @@ public final class SkyblockWorldEvents { } } - public static void spawnPlayer(EntityPlayer player, int x, int y, int z) { + public static void spawnPlayer(EntityPlayer player, int x, int y, int z, boolean fabricated) { NBTTagCompound data = player.getEntityData(); if(!data.hasKey(EntityPlayer.PERSISTED_NBT_TAG)) data.setTag(EntityPlayer.PERSISTED_NBT_TAG, new NBTTagCompound()); @@ -136,10 +136,12 @@ public final class SkyblockWorldEvents { player.inventory.addItemStackToInventory(new ItemStack(ModItems.lexicon)); } - persist.setBoolean(TAG_HAS_OWN_ISLAND, true); - persist.setDouble(TAG_ISLAND_X, player.posX); - persist.setDouble(TAG_ISLAND_Y, player.posY); - persist.setDouble(TAG_ISLAND_Z, player.posZ); + if(fabricated) { + persist.setBoolean(TAG_HAS_OWN_ISLAND, true); + persist.setDouble(TAG_ISLAND_X, player.posX); + persist.setDouble(TAG_ISLAND_Y, player.posY); + persist.setDouble(TAG_ISLAND_Z, player.posZ); + } } else { double posX = persist.getDouble(TAG_ISLAND_X); double posY = persist.getDouble(TAG_ISLAND_Y);