Merge branch 'MC1.7' of cil.li:oc into MC1.7

This commit is contained in:
Johannes Lohrer 2014-02-08 00:00:38 +01:00
commit a2b3eb98bc
6 changed files with 59 additions and 81 deletions

View File

@ -33,7 +33,6 @@ abstract class DynamicGuiContainer(container: Container) extends GuiContainer(co
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize) drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize)
} }
// TODO private now? // TODO private now?
def drawSlotInventory(slot: Slot, mouseX: Int, mouseY: Int) { def drawSlotInventory(slot: Slot, mouseX: Int, mouseY: Int) {
if (slot.slotNumber < container.inventorySlots.size() - 36) { if (slot.slotNumber < container.inventorySlots.size() - 36) {

View File

@ -2,7 +2,7 @@ package li.cil.oc.client.renderer.tileentity
import com.google.common.cache.{CacheBuilder, RemovalNotification, RemovalListener} import com.google.common.cache.{CacheBuilder, RemovalNotification, RemovalListener}
import cpw.mods.fml.common.eventhandler.SubscribeEvent import cpw.mods.fml.common.eventhandler.SubscribeEvent
import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent import cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent
import java.util.concurrent.{TimeUnit, Callable} import java.util.concurrent.{TimeUnit, Callable}
import li.cil.oc.Settings import li.cil.oc.Settings
import li.cil.oc.client.Textures import li.cil.oc.client.Textures
@ -246,7 +246,6 @@ object ScreenRenderer extends TileEntitySpecialRenderer with Callable[Int] with
GLAllocation.deleteDisplayLists(e.getValue) GLAllocation.deleteDisplayLists(e.getValue)
} }
@SubscribeEvent @SubscribeEvent
def onTick(e: WorldTickEvent) = cache.cleanUp() def onTick(e: ClientTickEvent) = cache.cleanUp()
} }

View File

@ -1,33 +0,0 @@
package li.cil.oc.common
import cpw.mods.fml.common.{FMLCommonHandler, Loader}
import cpw.mods.fml.common.eventhandler.SubscribeEvent
import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent
import li.cil.oc.Settings
import li.cil.oc.util.LuaStateFactory
import li.cil.oc.util.mods.ProjectRed
import net.minecraft.entity.player.EntityPlayerMP
import net.minecraft.util.{ChatComponentText, ChatComponentTranslation}
object ConnectionHandler {
@SubscribeEvent
def playerLoggedIn(e: PlayerLoggedInEvent) {
if (FMLCommonHandler.instance.getEffectiveSide.isServer) e.player match {
case player: EntityPlayerMP =>
if (!LuaStateFactory.isAvailable) {
player.addChatMessage(new ChatComponentText("§aOpenComputers§f: ").appendSibling(
new ChatComponentTranslation(Settings.namespace + "gui.Chat.WarningLuaFallback")))
}
if (ProjectRed.isAvailable && !ProjectRed.isAPIAvailable) {
player.addChatMessage(new ChatComponentText("§aOpenComputers§f: ").appendSibling(
new ChatComponentTranslation(Settings.namespace + "gui.Chat.WarningProjectRed")))
}
if (!Settings.get.pureIgnorePower && !Loader.isModLoaded("UniversalElectricity")) {
player.addChatMessage(new ChatComponentText("§aOpenComputers§f: ").appendSibling(
new ChatComponentTranslation(Settings.namespace + "gui.Chat.WarningPower")))
}
case _ =>
}
}
}

View File

@ -1,12 +1,38 @@
package li.cil.oc package li.cil.oc.common
import cpw.mods.fml.common.eventhandler.SubscribeEvent import cpw.mods.fml.common.eventhandler.{Event, SubscribeEvent}
import cpw.mods.fml.common.gameevent.PlayerEvent.ItemCraftedEvent import cpw.mods.fml.common.gameevent.PlayerEvent._
import cpw.mods.fml.common.{Loader, FMLCommonHandler}
import li.cil.oc.server.driver.Registry import li.cil.oc.server.driver.Registry
import li.cil.oc.util.LuaStateFactory
import li.cil.oc.{Items, Settings}
import li.cil.oc.util.ExtendedNBT._ import li.cil.oc.util.ExtendedNBT._
import li.cil.oc.util.mods.ProjectRed
import net.minecraft.entity.player.{EntityPlayerMP, EntityPlayer}
import net.minecraft.item.{ItemMap, ItemStack} import net.minecraft.item.{ItemMap, ItemStack}
import net.minecraft.util.{ChatComponentTranslation, ChatComponentText}
object EventHandler {
@SubscribeEvent
def playerLoggedIn(e: PlayerLoggedInEvent) {
if (FMLCommonHandler.instance.getEffectiveSide.isServer) e.player match {
case player: EntityPlayerMP =>
if (!LuaStateFactory.isAvailable) {
player.addChatMessage(new ChatComponentText("§aOpenComputers§f: ").appendSibling(
new ChatComponentTranslation(Settings.namespace + "gui.Chat.WarningLuaFallback")))
}
if (ProjectRed.isAvailable && !ProjectRed.isAPIAvailable) {
player.addChatMessage(new ChatComponentText("§aOpenComputers§f: ").appendSibling(
new ChatComponentTranslation(Settings.namespace + "gui.Chat.WarningProjectRed")))
}
if (!Settings.get.pureIgnorePower && !Loader.isModLoaded("UniversalElectricity")) {
player.addChatMessage(new ChatComponentText("§aOpenComputers§f: ").appendSibling(
new ChatComponentTranslation(Settings.namespace + "gui.Chat.WarningPower")))
}
case _ =>
}
}
object CraftingHandler {
@SubscribeEvent @SubscribeEvent
def onCrafting(e: ItemCraftedEvent) = { def onCrafting(e: ItemCraftedEvent) = {
val player = e.player val player = e.player

View File

@ -1,17 +1,16 @@
package li.cil.oc.common package li.cil.oc.common
import cpw.mods.fml.common.FMLCommonHandler
import cpw.mods.fml.common.event._ import cpw.mods.fml.common.event._
import cpw.mods.fml.common.network.NetworkRegistry import cpw.mods.fml.common.network.NetworkRegistry
import li.cil.oc._ import li.cil.oc._
import li.cil.oc.server import li.cil.oc.server
import li.cil.oc.server.component.Keyboard
import li.cil.oc.server.driver import li.cil.oc.server.driver
import li.cil.oc.server.fs import li.cil.oc.server.fs
import li.cil.oc.server.network import li.cil.oc.server.network
import li.cil.oc.server.network.Network import li.cil.oc.server.network.Network
import li.cil.oc.util.WirelessNetwork import li.cil.oc.util.WirelessNetwork
import net.minecraftforge.common.MinecraftForge import net.minecraftforge.common.MinecraftForge
import cpw.mods.fml.common.FMLCommonHandler
class Proxy { class Proxy {
def preInit(e: FMLPreInitializationEvent): Unit = { def preInit(e: FMLPreInitializationEvent): Unit = {
@ -43,7 +42,6 @@ class Proxy {
Recipes.init() Recipes.init()
FMLCommonHandler.instance().bus().register(CraftingHandler)
OpenComputers.channel = NetworkRegistry.INSTANCE.newEventDrivenChannel("OpenComputers") OpenComputers.channel = NetworkRegistry.INSTANCE.newEventDrivenChannel("OpenComputers")
OpenComputers.channel.register(server.PacketHandler) OpenComputers.channel.register(server.PacketHandler)
} }
@ -52,8 +50,7 @@ class Proxy {
// Don't allow driver registration after this point, to avoid issues. // Don't allow driver registration after this point, to avoid issues.
driver.Registry.locked = true driver.Registry.locked = true
FMLCommonHandler.instance().bus().register(Keyboard) FMLCommonHandler.instance().bus().register(EventHandler)
FMLCommonHandler.instance().bus().register(ConnectionHandler)
MinecraftForge.EVENT_BUS.register(Network) MinecraftForge.EVENT_BUS.register(Network)
MinecraftForge.EVENT_BUS.register(WirelessNetwork) MinecraftForge.EVENT_BUS.register(WirelessNetwork)
} }

View File

@ -1,14 +1,13 @@
package li.cil.oc.server.component package li.cil.oc.server.component
import cpw.mods.fml.common.eventhandler.{Event, SubscribeEvent} import cpw.mods.fml.common.FMLCommonHandler
import cpw.mods.fml.common.eventhandler.SubscribeEvent
import cpw.mods.fml.common.gameevent.PlayerEvent.{PlayerLoggedOutEvent, PlayerChangedDimensionEvent, PlayerRespawnEvent} import cpw.mods.fml.common.gameevent.PlayerEvent.{PlayerLoggedOutEvent, PlayerChangedDimensionEvent, PlayerRespawnEvent}
import li.cil.oc.Settings import li.cil.oc.Settings
import li.cil.oc.api.Network import li.cil.oc.api.Network
import li.cil.oc.api.network.{Node, Visibility, Message} import li.cil.oc.api.network.{Node, Visibility, Message}
import net.minecraft.entity.player.EntityPlayer import net.minecraft.entity.player.EntityPlayer
import net.minecraftforge.common.MinecraftForge
import scala.collection.mutable import scala.collection.mutable
import cpw.mods.fml.common.FMLCommonHandler
// TODO key up when screen is disconnected from which the key down came // TODO key up when screen is disconnected from which the key down came
// TODO key up after load for anything that was pressed // TODO key up after load for anything that was pressed
@ -23,32 +22,46 @@ abstract class Keyboard extends ManagedComponent {
// ----------------------------------------------------------------------- // // ----------------------------------------------------------------------- //
@SubscribeEvent @SubscribeEvent
def onReleasePressedKeys(e: Keyboard.ReleasePressedKeys) { def onPlayerRespawn(e: PlayerRespawnEvent) {
pressedKeys.get(e.player) match { releasePressedKeys(e.player)
}
@SubscribeEvent
def onPlayerChangedDimension(e: PlayerChangedDimensionEvent) {
releasePressedKeys(e.player)
}
@SubscribeEvent
def onPlayerLogout(e: PlayerLoggedOutEvent) {
releasePressedKeys(e.player)
}
def releasePressedKeys(player: EntityPlayer) {
pressedKeys.get(player) match {
case Some(keys) => for ((code, char) <- keys) { case Some(keys) => for ((code, char) <- keys) {
if (Settings.get.inputUsername) { if (Settings.get.inputUsername) {
signal(e.player, "key_up", char, code, e.player.getCommandSenderName) signal(player, "key_up", char, code, player.getCommandSenderName)
} }
else { else {
signal(e.player, "key_up", char, code) signal(player, "key_up", char, code)
} }
} }
case _ => case _ =>
} }
pressedKeys.remove(e.player) pressedKeys.remove(player)
} }
// ----------------------------------------------------------------------- // // ----------------------------------------------------------------------- //
override def onConnect(node: Node) { override def onConnect(node: Node) {
if (node == this.node) { if (node == this.node) {
FMLCommonHandler.instance().bus().register(this) FMLCommonHandler.instance.bus.register(this)
} }
} }
override def onDisconnect(node: Node) { override def onDisconnect(node: Node) {
if (node == this.node) { if (node == this.node) {
FMLCommonHandler.instance().bus().unregister(this) FMLCommonHandler.instance.bus.unregister(this)
} }
} }
@ -98,26 +111,3 @@ abstract class Keyboard extends ManagedComponent {
protected def signal(args: AnyRef*) = protected def signal(args: AnyRef*) =
node.sendToReachable("computer.checked_signal", args: _*) node.sendToReachable("computer.checked_signal", args: _*)
} }
object Keyboard {
@SubscribeEvent
def onPlayerRespawn(e: PlayerRespawnEvent) {
FMLCommonHandler.instance().bus().post(new ReleasePressedKeys(e.player))
}
@SubscribeEvent
def onPlayerChangedDimension(e: PlayerChangedDimensionEvent) {
//TODO Throws exception
FMLCommonHandler.instance().bus().post(new ReleasePressedKeys(e.player))
}
@SubscribeEvent
def onPlayerLogout(e: PlayerLoggedOutEvent) {
FMLCommonHandler.instance().bus().post(new ReleasePressedKeys(e.player))
}
class ReleasePressedKeys(val player: EntityPlayer) extends Event
}