Limbo and Monolith fixes
This commit is contained in:
parent
37914faf14
commit
2e25edc745
6 changed files with 25 additions and 13 deletions
src/main/java/com/zixiken/dimdoors
|
@ -33,7 +33,6 @@ public class DDProxyClient extends DDProxyCommon {
|
|||
ModelManager.addCustomStateMappers();
|
||||
|
||||
registerRenderers();
|
||||
System.out.println("adsaf");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue