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)
}
// TODO private now?
def drawSlotInventory(slot: Slot, mouseX: Int, mouseY: Int) {
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 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 li.cil.oc.Settings
import li.cil.oc.client.Textures
@ -246,7 +246,6 @@ object ScreenRenderer extends TileEntitySpecialRenderer with Callable[Int] with
GLAllocation.deleteDisplayLists(e.getValue)
}
@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.gameevent.PlayerEvent.ItemCraftedEvent
import cpw.mods.fml.common.eventhandler.{Event, SubscribeEvent}
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.util.LuaStateFactory
import li.cil.oc.{Items, Settings}
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.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
def onCrafting(e: ItemCraftedEvent) = {
val player = e.player
@ -68,4 +94,4 @@ object CraftingHandler {
}
}
}
}
}

View File

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

View File

@ -1,14 +1,13 @@
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 li.cil.oc.Settings
import li.cil.oc.api.Network
import li.cil.oc.api.network.{Node, Visibility, Message}
import net.minecraft.entity.player.EntityPlayer
import net.minecraftforge.common.MinecraftForge
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 after load for anything that was pressed
@ -23,32 +22,46 @@ abstract class Keyboard extends ManagedComponent {
// ----------------------------------------------------------------------- //
@SubscribeEvent
def onReleasePressedKeys(e: Keyboard.ReleasePressedKeys) {
pressedKeys.get(e.player) match {
def onPlayerRespawn(e: PlayerRespawnEvent) {
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) {
if (Settings.get.inputUsername) {
signal(e.player, "key_up", char, code, e.player.getCommandSenderName)
signal(player, "key_up", char, code, player.getCommandSenderName)
}
else {
signal(e.player, "key_up", char, code)
signal(player, "key_up", char, code)
}
}
case _ =>
}
pressedKeys.remove(e.player)
pressedKeys.remove(player)
}
// ----------------------------------------------------------------------- //
override def onConnect(node: Node) {
if (node == this.node) {
FMLCommonHandler.instance().bus().register(this)
FMLCommonHandler.instance.bus.register(this)
}
}
override def onDisconnect(node: Node) {
if (node == this.node) {
FMLCommonHandler.instance().bus().unregister(this)
FMLCommonHandler.instance.bus.unregister(this)
}
}
@ -97,27 +110,4 @@ abstract class Keyboard extends ManagedComponent {
protected def signal(args: AnyRef*) =
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
}
}