b11354767d
Moved all configuration variables from mod_pocketDim to DDProperties (formerly DimDoorsConfig). Changed property names to be clearer in config file, modified some comments, and generally cleaned up the config file. Fixed some missing properties and variables that were reading from the wrong properties. Modified the order in which mod_pocketDim instantiated some of its static fields so that they would load after properties are read. Almost all classes load after properties are read. Fixed indentation across various files and replaced references to properties in mod_pocketDim with references to DDProperties.
238 lines
No EOL
6.9 KiB
Java
238 lines
No EOL
6.9 KiB
Java
package StevenDimDoors.mod_pocketDim;
|
|
|
|
import java.io.File;
|
|
import java.util.ArrayList;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.Random;
|
|
|
|
import StevenDimDoors.mod_pocketDim.helpers.dimHelper;
|
|
|
|
import cpw.mods.fml.client.FMLClientHandler;
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.entity.EntityLiving;
|
|
import net.minecraft.entity.monster.EntityEnderman;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.item.ItemBlock;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.util.AxisAlignedBB;
|
|
import net.minecraft.util.EnumMovingObjectType;
|
|
import net.minecraft.util.MathHelper;
|
|
import net.minecraft.util.MovingObjectPosition;
|
|
import net.minecraft.util.Vec3;
|
|
import net.minecraft.world.World;
|
|
import net.minecraft.world.WorldServer;
|
|
import net.minecraftforge.client.event.sound.SoundLoadEvent;
|
|
import net.minecraftforge.event.ForgeSubscribe;
|
|
import net.minecraftforge.event.entity.living.LivingFallEvent;
|
|
import net.minecraftforge.event.entity.player.PlayerDropsEvent;
|
|
import net.minecraftforge.event.entity.player.PlayerEvent;
|
|
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
|
|
import net.minecraftforge.event.world.WorldEvent;
|
|
|
|
public class EventHookContainer
|
|
{
|
|
private static Random rand = new Random();
|
|
private static DDProperties properties = null;
|
|
|
|
public EventHookContainer()
|
|
{
|
|
if (properties == null)
|
|
properties = DDProperties.instance();
|
|
}
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
|
|
@ForgeSubscribe
|
|
public void onSoundLoad(SoundLoadEvent event)
|
|
{
|
|
File dataDir = Minecraft.getMinecraft().mcDataDir;
|
|
|
|
event.manager.soundPoolSounds.addSound("mods/DimDoors/sfx/monk.ogg", (mod_pocketDim.class.getResource("/mods/DimDoors/sfx/monk.ogg")));
|
|
event.manager.soundPoolSounds.addSound("mods/DimDoors/sfx/crack.ogg", (mod_pocketDim.class.getResource("/mods/DimDoors/sfx/crack.ogg")));
|
|
event.manager.soundPoolSounds.addSound("mods/DimDoors/sfx/tearing.ogg", (mod_pocketDim.class.getResource("/mods/DimDoors/sfx/tearing.ogg")));
|
|
}
|
|
|
|
@ForgeSubscribe
|
|
public void onWorldLoad(WorldEvent.Load event)
|
|
{
|
|
|
|
if(!mod_pocketDim.hasInitDims&&event.world.provider.dimensionId==0&&!event.world.isRemote)
|
|
{
|
|
System.out.println("Registering Pocket Dims");
|
|
mod_pocketDim.hasInitDims=true;
|
|
dimHelper.instance.unregsisterDims();
|
|
dimHelper.dimList.clear();
|
|
dimHelper.instance.interDimLinkList.clear();
|
|
dimHelper.instance.initPockets();
|
|
|
|
}
|
|
|
|
for(Integer ids : dimHelper.getIDs())
|
|
{
|
|
World world = dimHelper.getWorld(ids);
|
|
int linkCount=0;
|
|
|
|
if(dimHelper.dimList.containsKey(world.provider.dimensionId))
|
|
{
|
|
|
|
for(LinkData link:dimHelper.dimList.get(world.provider.dimensionId).printAllLinkData())
|
|
{
|
|
if(linkCount>100)
|
|
{
|
|
break;
|
|
}
|
|
linkCount++;
|
|
int blocktoReplace = world.getBlockId(link.locXCoord, link.locYCoord, link.locZCoord);
|
|
if(!mod_pocketDim.blocksImmuneToRift.contains(blocktoReplace))
|
|
{
|
|
dimHelper.getWorld(link.locDimID).setBlock(link.locXCoord, link.locYCoord, link.locZCoord, properties.RiftBlockID);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
@ForgeSubscribe
|
|
public void EntityJoinWorldEvent(net.minecraftforge.event.entity.EntityJoinWorldEvent event)
|
|
{
|
|
if(event.entity instanceof EntityPlayer)
|
|
{
|
|
// System.out.println(event.entity.worldObj.provider.dimensionId);
|
|
|
|
// PacketDispatcher.sendPacketToPlayer(DimUpdatePacket.sendPacket(event.world.provider.dimensionId,1),(Player) event.entity);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
@ForgeSubscribe
|
|
public void onPlayerFall(LivingFallEvent event)
|
|
{
|
|
|
|
event.setCanceled(event.entity.worldObj.provider.dimensionId==properties.LimboDimensionID);
|
|
|
|
}
|
|
|
|
@ForgeSubscribe
|
|
public void onPlayerInteract(PlayerInteractEvent event)
|
|
{
|
|
|
|
|
|
|
|
/**
|
|
|
|
if(event.entityPlayer.worldObj.provider.dimensionId==properties.LimboDimensionID&&event.action==PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK)
|
|
{
|
|
|
|
|
|
int x = event.x;
|
|
int y = event.y;
|
|
|
|
int z = event.z;
|
|
|
|
|
|
|
|
|
|
|
|
if(event.entityPlayer.getHeldItem()!=null)
|
|
{
|
|
if(event.entityPlayer.getHeldItem().getItem() instanceof ItemBlock)
|
|
{
|
|
// if(event.entityPlayer instanceof EntityPlayerMP)
|
|
{
|
|
|
|
Point3D point = new Point3D(x,y,z);
|
|
dimHelper.blocksToDecay.add(point);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
event.setCanceled(true);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|
|
**/
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// @ForgeSubscribe
|
|
public void onPlayerEvent(PlayerEvent event)
|
|
{
|
|
/**
|
|
if(!event.entity.worldObj.isRemote)
|
|
{
|
|
ItemStack item = event.entityPlayer.inventory.getCurrentItem();
|
|
if(item!=null)
|
|
{
|
|
if(item.getItem() instanceof ItemRiftBlade)
|
|
{
|
|
List<EntityLiving> list = event.entity.worldObj.getEntitiesWithinAABB(EntityLiving.class, AxisAlignedBB.getBoundingBox( event.entityPlayer.posX-7,event.entityPlayer.posY-7, event.entityPlayer.posZ-7, event.entityPlayer.posX+7,event.entityPlayer.posY+7, event.entityPlayer.posZ+7));
|
|
list.remove(event.entity);
|
|
|
|
|
|
for(EntityLiving ent : list)
|
|
{
|
|
|
|
Vec3 var3 = event.entityPlayer.getLook(1.0F).normalize();
|
|
Vec3 var4 = event.entityPlayer.worldObj.getWorldVec3Pool().getVecFromPool(ent.posX - event.entityPlayer.posX, ent.boundingBox.minY + (double)((ent.height) / 2.0F) - ( event.entityPlayer.posY + (double) event.entityPlayer.getEyeHeight()), ent.posZ - event.entityPlayer.posZ);
|
|
double var5 = var4.lengthVector();
|
|
var4 = var4.normalize();
|
|
double var7 = var3.dotProduct(var4);
|
|
if( (var7+.1) > 1.0D - 0.025D / var5 ? event.entityPlayer.canEntityBeSeen(ent) : false)
|
|
{
|
|
System.out.println(list.size());
|
|
ItemRiftBlade.class.cast(item.getItem()).teleportToEntity(item,ent, event.entityPlayer);
|
|
break;
|
|
|
|
//ItemRiftBlade.class.cast(item.getItem()).teleportTo(event.entityPlayer, ent.posX, ent.posY, ent.posZ);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
**/
|
|
}
|
|
@ForgeSubscribe
|
|
public void onPlayerDrops(PlayerDropsEvent event)
|
|
{
|
|
mod_pocketDim.limboSpawnInventory.put(event.entityPlayer.username, event.drops);
|
|
}
|
|
|
|
@ForgeSubscribe
|
|
public void onWorldunload(WorldEvent.Unload event)
|
|
{
|
|
|
|
|
|
}
|
|
|
|
@ForgeSubscribe
|
|
public void onWorldsave(WorldEvent.Save event)
|
|
{
|
|
|
|
if(mod_pocketDim.hasInitDims&&event.world.provider.dimensionId==0)
|
|
{
|
|
dimHelper.instance.save();
|
|
}
|
|
}
|
|
} |