diff --git a/assets/items.psd b/assets/items.psd index c0229cfec..c1344a9df 100644 Binary files a/assets/items.psd and b/assets/items.psd differ diff --git a/src/main/resources/assets/opencomputers/textures/items/icon_card.png b/src/main/resources/assets/opencomputers/textures/items/icons/card.png similarity index 100% rename from src/main/resources/assets/opencomputers/textures/items/icon_card.png rename to src/main/resources/assets/opencomputers/textures/items/icons/card.png diff --git a/src/main/resources/assets/opencomputers/textures/items/icon_upgrade_dynamic.png b/src/main/resources/assets/opencomputers/textures/items/icons/container.png similarity index 100% rename from src/main/resources/assets/opencomputers/textures/items/icon_upgrade_dynamic.png rename to src/main/resources/assets/opencomputers/textures/items/icons/container.png diff --git a/src/main/resources/assets/opencomputers/textures/items/icon_cpu.png b/src/main/resources/assets/opencomputers/textures/items/icons/cpu.png similarity index 100% rename from src/main/resources/assets/opencomputers/textures/items/icon_cpu.png rename to src/main/resources/assets/opencomputers/textures/items/icons/cpu.png diff --git a/src/main/resources/assets/opencomputers/textures/items/icon_disk.png b/src/main/resources/assets/opencomputers/textures/items/icons/floppy.png similarity index 100% rename from src/main/resources/assets/opencomputers/textures/items/icon_disk.png rename to src/main/resources/assets/opencomputers/textures/items/icons/floppy.png diff --git a/src/main/resources/assets/opencomputers/textures/items/icon_hdd.png b/src/main/resources/assets/opencomputers/textures/items/icons/hdd.png similarity index 100% rename from src/main/resources/assets/opencomputers/textures/items/icon_hdd.png rename to src/main/resources/assets/opencomputers/textures/items/icons/hdd.png diff --git a/src/main/resources/assets/opencomputers/textures/items/icon_ram.png b/src/main/resources/assets/opencomputers/textures/items/icons/memory.png similarity index 100% rename from src/main/resources/assets/opencomputers/textures/items/icon_ram.png rename to src/main/resources/assets/opencomputers/textures/items/icons/memory.png diff --git a/src/main/resources/assets/opencomputers/textures/items/icon_na.png b/src/main/resources/assets/opencomputers/textures/items/icons/na.png similarity index 100% rename from src/main/resources/assets/opencomputers/textures/items/icon_na.png rename to src/main/resources/assets/opencomputers/textures/items/icons/na.png diff --git a/src/main/resources/assets/opencomputers/textures/items/icon_tier0.png b/src/main/resources/assets/opencomputers/textures/items/icons/tier0.png similarity index 100% rename from src/main/resources/assets/opencomputers/textures/items/icon_tier0.png rename to src/main/resources/assets/opencomputers/textures/items/icons/tier0.png diff --git a/src/main/resources/assets/opencomputers/textures/items/icon_tier1.png b/src/main/resources/assets/opencomputers/textures/items/icons/tier1.png similarity index 100% rename from src/main/resources/assets/opencomputers/textures/items/icon_tier1.png rename to src/main/resources/assets/opencomputers/textures/items/icons/tier1.png diff --git a/src/main/resources/assets/opencomputers/textures/items/icon_tier2.png b/src/main/resources/assets/opencomputers/textures/items/icons/tier2.png similarity index 100% rename from src/main/resources/assets/opencomputers/textures/items/icon_tier2.png rename to src/main/resources/assets/opencomputers/textures/items/icons/tier2.png diff --git a/src/main/resources/assets/opencomputers/textures/items/icon_tool.png b/src/main/resources/assets/opencomputers/textures/items/icons/tool.png similarity index 100% rename from src/main/resources/assets/opencomputers/textures/items/icon_tool.png rename to src/main/resources/assets/opencomputers/textures/items/icons/tool.png diff --git a/src/main/resources/assets/opencomputers/textures/items/icon_upgrade.png b/src/main/resources/assets/opencomputers/textures/items/icons/upgrade.png similarity index 100% rename from src/main/resources/assets/opencomputers/textures/items/icon_upgrade.png rename to src/main/resources/assets/opencomputers/textures/items/icons/upgrade.png diff --git a/src/main/resources/assets/opencomputers/textures/items/upgrade_crafting_equipped.png b/src/main/resources/assets/opencomputers/textures/model/UpgradeCrafting.png similarity index 100% rename from src/main/resources/assets/opencomputers/textures/items/upgrade_crafting_equipped.png rename to src/main/resources/assets/opencomputers/textures/model/UpgradeCrafting.png diff --git a/src/main/resources/assets/opencomputers/textures/items/upgrade_generator_equipped.png b/src/main/resources/assets/opencomputers/textures/model/UpgradeGenerator.png similarity index 100% rename from src/main/resources/assets/opencomputers/textures/items/upgrade_generator_equipped.png rename to src/main/resources/assets/opencomputers/textures/model/UpgradeGenerator.png diff --git a/src/main/resources/assets/opencomputers/textures/items/upgrade_inventory_equipped.png b/src/main/resources/assets/opencomputers/textures/model/UpgradeInventory.png similarity index 100% rename from src/main/resources/assets/opencomputers/textures/items/upgrade_inventory_equipped.png rename to src/main/resources/assets/opencomputers/textures/model/UpgradeInventory.png diff --git a/src/main/scala/li/cil/oc/client/Textures.scala b/src/main/scala/li/cil/oc/client/Textures.scala index 5e0ea01d0..4f0d1b85c 100644 --- a/src/main/scala/li/cil/oc/client/Textures.scala +++ b/src/main/scala/li/cil/oc/client/Textures.scala @@ -34,9 +34,9 @@ object Textures extends ResourceManagerReloadListener { val blockRobot = new ResourceLocation(Settings.resourceDomain, "textures/blocks/robot.png") val blockScreenUpIndicator = new ResourceLocation(Settings.resourceDomain, "textures/blocks/screen/up_indicator.png") - val upgradeCrafting = new ResourceLocation(Settings.resourceDomain, "textures/items/upgrade_crafting_equipped.png") - val upgradeGenerator = new ResourceLocation(Settings.resourceDomain, "textures/items/upgrade_generator_equipped.png") - val upgradeInventory = new ResourceLocation(Settings.resourceDomain, "textures/items/upgrade_inventory_equipped.png") + val upgradeCrafting = new ResourceLocation(Settings.resourceDomain, "textures/model/UpgradeCrafting.png") + val upgradeGenerator = new ResourceLocation(Settings.resourceDomain, "textures/model/UpgradeGenerator.png") + val upgradeInventory = new ResourceLocation(Settings.resourceDomain, "textures/model/UpgradeInventory.png") object Cable { var iconCap: Icon = _ diff --git a/src/main/scala/li/cil/oc/client/gui/Icons.scala b/src/main/scala/li/cil/oc/client/gui/Icons.scala index ef7a48124..a83aa4c15 100644 --- a/src/main/scala/li/cil/oc/client/gui/Icons.scala +++ b/src/main/scala/li/cil/oc/client/gui/Icons.scala @@ -18,19 +18,19 @@ object Icons { def onItemIconRegister(e: TextureStitchEvent.Pre) { val iconRegister = e.map if (iconRegister.textureType == 1) { - bySlotType += Slot.Card -> iconRegister.registerIcon(Settings.resourceDomain + ":icon_card") - bySlotType += Slot.Disk -> iconRegister.registerIcon(Settings.resourceDomain + ":icon_disk") - bySlotType += Slot.HardDiskDrive -> iconRegister.registerIcon(Settings.resourceDomain + ":icon_hdd") - bySlotType += Slot.Memory -> iconRegister.registerIcon(Settings.resourceDomain + ":icon_ram") - bySlotType += Slot.Processor -> iconRegister.registerIcon(Settings.resourceDomain + ":icon_cpu") - bySlotType += Slot.Tool -> iconRegister.registerIcon(Settings.resourceDomain + ":icon_tool") - bySlotType += Slot.Upgrade -> iconRegister.registerIcon(Settings.resourceDomain + ":icon_upgrade") - bySlotType += Slot.UpgradeContainer -> iconRegister.registerIcon(Settings.resourceDomain + ":icon_upgrade_dynamic") + bySlotType += Slot.Card -> iconRegister.registerIcon(Settings.resourceDomain + ":icons/card") + bySlotType += Slot.Disk -> iconRegister.registerIcon(Settings.resourceDomain + ":icons/floppy") + bySlotType += Slot.HardDiskDrive -> iconRegister.registerIcon(Settings.resourceDomain + ":icons/hdd") + bySlotType += Slot.Memory -> iconRegister.registerIcon(Settings.resourceDomain + ":icons/memory") + bySlotType += Slot.Processor -> iconRegister.registerIcon(Settings.resourceDomain + ":icons/cpu") + bySlotType += Slot.Tool -> iconRegister.registerIcon(Settings.resourceDomain + ":icons/tool") + bySlotType += Slot.Upgrade -> iconRegister.registerIcon(Settings.resourceDomain + ":icons/upgrade") + bySlotType += Slot.UpgradeContainer -> iconRegister.registerIcon(Settings.resourceDomain + ":icons/container") - byTier += Tier.None -> iconRegister.registerIcon(Settings.resourceDomain + ":icon_na") - byTier += Tier.One -> iconRegister.registerIcon(Settings.resourceDomain + ":icon_tier0") - byTier += Tier.Two -> iconRegister.registerIcon(Settings.resourceDomain + ":icon_tier1") - byTier += Tier.Three -> iconRegister.registerIcon(Settings.resourceDomain + ":icon_tier2") + byTier += Tier.None -> iconRegister.registerIcon(Settings.resourceDomain + ":icons/na") + byTier += Tier.One -> iconRegister.registerIcon(Settings.resourceDomain + ":icons/tier0") + byTier += Tier.Two -> iconRegister.registerIcon(Settings.resourceDomain + ":icons/tier1") + byTier += Tier.Three -> iconRegister.registerIcon(Settings.resourceDomain + ":icons/tier2") } } diff --git a/src/main/scala/li/cil/oc/common/tileentity/RobotAssembler.scala b/src/main/scala/li/cil/oc/common/tileentity/RobotAssembler.scala index e319d203b..1796584c6 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/RobotAssembler.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/RobotAssembler.scala @@ -3,7 +3,7 @@ package li.cil.oc.common.tileentity import cpw.mods.fml.relauncher.{Side, SideOnly} import li.cil.oc.api.Driver import li.cil.oc.api.driver.{Slot, UpgradeContainer} -import li.cil.oc.api.network.{SidedEnvironment, Visibility} +import li.cil.oc.api.network._ import li.cil.oc.common.{InventorySlots, Tier} import li.cil.oc.server.{PacketSender => ServerPacketSender} import li.cil.oc.util.ExtendedNBT._ @@ -14,7 +14,8 @@ import net.minecraft.nbt.NBTTagCompound import net.minecraftforge.common.ForgeDirection class RobotAssembler extends traits.Environment with traits.PowerAcceptor with traits.Inventory with traits.Rotatable with SidedEnvironment { - val node = api.Network.newNode(this, Visibility.None). + val node = api.Network.newNode(this, Visibility.Network). + withComponent("assembler"). withConnector(Settings.get.bufferConverter). create() @@ -55,11 +56,11 @@ class RobotAssembler extends traits.Environment with traits.PowerAcceptor with t if (caseTier >= 0) Settings.robotComplexityByTier(caseTier) else 0 } - def start(finishImmediately: Boolean) { + def start(finishImmediately: Boolean = false): Boolean = this.synchronized { if (!isAssembling && robot.isEmpty && complexity <= maxComplexity) { for (slot <- 0 until getSizeInventory) { val stack = getStackInSlot(slot) - if (stack != null && !isItemValidForSlot(slot, stack)) return + if (stack != null && !isItemValidForSlot(slot, stack)) return false } val data = new ItemUtils.RobotData() data.tier = ItemUtils.caseTier(items(0).get) @@ -87,11 +88,25 @@ class RobotAssembler extends traits.Environment with traits.PowerAcceptor with t for (slot <- 0 until getSizeInventory) items(slot) = None onInventoryChanged() + + true } + else false } // ----------------------------------------------------------------------- // + @Callback(doc = """function(): string, number[, number] -- The current state of the assember, `busy' or `idle', followed by the progress or complexity and maximum complexity, respectively.""") + def status(context: Context, args: Arguments): Array[Object] = { + if (isAssembling) result("busy", progress) + else result("idle", complexity, maxComplexity) + } + + @Callback(doc = """function():boolean -- Start assembling, if possible. Returns whether assembly was started or not.""") + def start(context: Context, args: Arguments): Array[Object] = result(start()) + + // ----------------------------------------------------------------------- // + override def canUpdate = isServer override def updateEntity() {