Files
ForgeMultipart/codechicken/multipart/handler/EventHandler.scala
T
Chicken Bones 38adcdbee1 Added buttons
Moved cuboid render function to CCC-Public
Fixed a redstone transmission bug
Added Tick Scheduler
2013-06-03 19:58:06 +10:00

78 lines
2.8 KiB
Scala

package codechicken.multipart.handler
import net.minecraft.nbt.NBTTagCompound
import codechicken.multipart.TileMultipart
import net.minecraftforge.event.ForgeSubscribe
import codechicken.multipart.TileMultipartObj
import cpw.mods.fml.common.network.IConnectionHandler
import net.minecraft.network.packet.NetHandler
import net.minecraft.network.INetworkManager
import net.minecraft.network.packet.Packet1Login
import cpw.mods.fml.common.network.Player
import net.minecraft.network.NetLoginHandler
import net.minecraft.server.MinecraftServer
import codechicken.core.packet.PacketCustom
import codechicken.multipart.MultiPartRegistry
import net.minecraftforge.event.world._
import cpw.mods.fml.common.ITickHandler
import java.util.EnumSet
import cpw.mods.fml.common.TickType
import scala.collection.JavaConverters._
import java.util.List
import net.minecraft.entity.player.EntityPlayerMP
import net.minecraftforge.event.EventPriority
object MultipartEventHandler extends IConnectionHandler with ITickHandler
{
@ForgeSubscribe(priority = EventPriority.HIGHEST)
def tileEntityLoad(event:ChunkDataEvent.Load)
{
MultipartSaveLoad.loadTiles(event.getChunk())
}
@ForgeSubscribe
def worldLoad(event:WorldEvent.Load)
{
MultipartSPH.onWorldLoad(event.world)
}
@ForgeSubscribe
def worldUnLoad(event:WorldEvent.Unload)
{
MultipartSPH.onWorldUnload(event.world)
}
@ForgeSubscribe
def chunkWatch(event:ChunkWatchEvent.Watch)
{
val cc = event.chunk
MultipartSPH.onChunkWatch(event.player, event.player.worldObj.getChunkFromChunkCoords(cc.chunkXPos, cc.chunkZPos))
}
def connectionReceived(loginHandler:NetLoginHandler, netManager:INetworkManager):String =
{
val packet = new PacketCustom(MultipartSPH.channel, 1)
MultiPartRegistry.writeIDMap(packet)
netManager.addToSendQueue(packet.toPacket)
return null
}
def clientLoggedIn(netHandler:NetHandler, netManager:INetworkManager, packet:Packet1Login){}
def playerLoggedIn(player:Player, netHandler:NetHandler, netManager:INetworkManager){}
def connectionOpened(netHandler:NetHandler, server:String, port:Int, netManager:INetworkManager){}
def connectionOpened(netHandler:NetHandler, server:MinecraftServer, netManager:INetworkManager){}
def connectionClosed(netManager:INetworkManager){}
def ticks = EnumSet.of(TickType.SERVER)
def getLabel = "Multipart"
def tickStart(tickType:EnumSet[TickType], data:Object*){}
def tickEnd(tickType:EnumSet[TickType], data:Object*)
{
if(tickType.contains(TickType.SERVER))
{
MultipartSPH.onTickEnd(
MinecraftServer.getServer.getConfigurationManager.playerEntityList
.asInstanceOf[List[EntityPlayerMP]].asScala)
}
}
}