Limbo and Monolith fixes

This commit is contained in:
abc4857 2017-12-03 08:54:53 -05:00
parent 37914faf14
commit 2e25edc745
6 changed files with 25 additions and 13 deletions

View file

@ -33,7 +33,6 @@ public class DDProxyClient extends DDProxyCommon {
ModelManager.addCustomStateMappers();
registerRenderers();
System.out.println("adsaf");
}
@Override

View file

@ -14,6 +14,7 @@ import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.world.World;
import net.minecraftforge.event.entity.EntityEvent;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
import net.minecraftforge.event.entity.living.LivingFallEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerChangedDimensionEvent;
@ -40,6 +41,14 @@ public class DDEventHandler {
}
}
@SubscribeEvent
public void onLivingFall(LivingFallEvent event) {
Entity entity = event.getEntity();
if (entity.dimension == DimDoorDimensions.LIMBO.getId()) {
event.setCanceled(true); // no fall damage in limbo
}
}
@SubscribeEvent
public void onPlayerChangedDim(PlayerChangedDimensionEvent event) {
EntityPlayer player = event.player;

View file

@ -7,6 +7,7 @@ import com.zixiken.dimdoors.shared.TeleporterDimDoors;
import com.zixiken.dimdoors.shared.util.Location;
import com.zixiken.dimdoors.shared.world.PocketProvider;
import com.zixiken.dimdoors.shared.world.limbodimension.WorldProviderLimbo;
import com.zixiken.dimdoors.shared.world.pocketdimension.WorldProviderDungeonPocket;
import com.zixiken.dimdoors.shared.world.pocketdimension.WorldProviderPublicPocket;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityFlying;
@ -123,8 +124,8 @@ public class MobMonolith extends EntityFlying implements IMob
@Override
public void onEntityUpdate() {
// Remove this Monolith if it's not in Limbo or in a pocket dimension
if (!(this.world.provider instanceof WorldProviderLimbo)) {
// Remove this Monolith if it's not in Limbo or in a pocket dungeon TODO: any pocket dim?
if (!(this.world.provider instanceof WorldProviderLimbo || this.world.provider instanceof WorldProviderDungeonPocket)) {
this.setDead();
super.onEntityUpdate();
return;
@ -161,7 +162,7 @@ public class MobMonolith extends EntityFlying implements IMob
// Teleport the target player if various conditions are met
if (aggro >= MAX_AGGRO && !world.isRemote && DDConfig.isMonolithTeleportationEnabled() && !player.capabilities.isCreativeMode && isDangerous()) {
this.aggro = 0;
Location destination = WorldProviderLimbo.getLimboSkySpawn(player, world);
Location destination = WorldProviderLimbo.getLimboSkySpawn(player);
TeleporterDimDoors.instance().teleport(player, destination);
player.world.playSound(player, player.getPosition(), DDSounds.CRACK, SoundCategory.HOSTILE, 13, 1);
}

View file

@ -22,11 +22,12 @@ import net.minecraftforge.fml.relauncher.SideOnly;
public class WorldProviderLimbo extends WorldProvider {
private IRenderHandler skyRenderer;
//private CustomLimboPopulator spawner;
private LimboBiome limboBiome;
public WorldProviderLimbo() {
this.hasSkyLight = false;
this.skyRenderer = new LimboSkyProvider();
limboBiome = new LimboBiome();
//this.spawner
}
@ -38,7 +39,7 @@ public class WorldProviderLimbo extends WorldProvider {
@Override
public Biome getBiomeForCoords(BlockPos pos) {
return new LimboBiome();
return limboBiome;
}
@Override
@ -129,10 +130,10 @@ public class WorldProviderLimbo extends WorldProvider {
return false;
}
public static Location getLimboSkySpawn(EntityPlayer player, World world) {
public static Location getLimboSkySpawn(EntityPlayer player) {
int x = (int) (player.posX) + MathHelper.clamp(player.world.rand.nextInt(), -100, 100); //-properties.LimboEntryRange, properties.LimboEntryRange);
int z = (int) (player.posZ) + MathHelper.clamp(player.world.rand.nextInt(), -100, 100); //-properties.LimboEntryRange, properties.LimboEntryRange);
return new Location(world, x, 700, z);
return new Location(DimDoorDimensions.LIMBO.getId(), x, 700, z);
}
@Override

View file

@ -1,6 +1,8 @@
package com.zixiken.dimdoors.shared.world.pocketdimension;
import com.zixiken.dimdoors.shared.EnumPocketType;
import com.zixiken.dimdoors.shared.world.DimDoorDimensions;
import net.minecraft.entity.player.EntityPlayerMP;
public class WorldProviderDungeonPocket extends WorldProviderPublicPocket {
@ -13,4 +15,9 @@ public class WorldProviderDungeonPocket extends WorldProviderPublicPocket {
public String getSaveFolder() {
return ("DIM" + getDimension() + "DimDoorsDungeon");
}
@Override
public int getRespawnDimension(EntityPlayerMP player) {
return DimDoorDimensions.LIMBO.getId();
}
}

View file

@ -75,11 +75,6 @@ public class WorldProviderPublicPocket extends WorldProvider {//@todo, we might
}
}*/
@Override
public int getRespawnDimension(EntityPlayerMP player) {
return getDimension();
}
@Override
public boolean canRespawnHere() {
return false;