From 37e0403927e12689cf9e4965682b5eacaaa3639d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sun, 24 May 2015 11:15:14 +0200 Subject: [PATCH] Added creative tier APU (acts as T3 CPU+GPU). Closes #1169. --- assets/items.psd | Bin 620434 -> 624946 bytes .../assets/opencomputers/lang/en_US.lang | 1 + .../opencomputers/textures/items/APU2.png | Bin 0 -> 887 bytes .../textures/items/APU2.png.mcmeta | 18 ++++++++++++++++++ src/main/scala/li/cil/oc/Constants.scala | 1 + .../scala/li/cil/oc/common/init/Items.scala | 3 +++ .../scala/li/cil/oc/common/item/APU.scala | 4 +++- .../scala/li/cil/oc/common/item/Server.scala | 2 +- .../integration/opencomputers/DriverAPU.scala | 4 +++- 9 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/opencomputers/textures/items/APU2.png create mode 100644 src/main/resources/assets/opencomputers/textures/items/APU2.png.mcmeta diff --git a/assets/items.psd b/assets/items.psd index 9c65a2b8687ae9101bbab34f03dadbdb7fd18396..78087d3e982a84a129dc4b8f48e14c64a8d16d85 100644 GIT binary patch delta 21760 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 UI{baYf4CI)zZjmLC2F|;2E3x;^8f$< diff --git a/src/main/resources/assets/opencomputers/lang/en_US.lang b/src/main/resources/assets/opencomputers/lang/en_US.lang index 527629c23..c31a753a4 100644 --- a/src/main/resources/assets/opencomputers/lang/en_US.lang +++ b/src/main/resources/assets/opencomputers/lang/en_US.lang @@ -45,6 +45,7 @@ item.oc.ALU.name=Arithmetic Logic Unit (ALU) item.oc.Analyzer.name=Analyzer item.oc.APU0.name=Accelerated Processing Unit (APU) (Tier 1) item.oc.APU1.name=Accelerated Processing Unit (APU) (Tier 2) +item.oc.APU2.name=Accelerated Processing Unit (APU) (Creative) item.oc.ArrowKeys.name=Arrow Keys item.oc.ButtonGroup.name=Button Group item.oc.CardBase.name=Card Base diff --git a/src/main/resources/assets/opencomputers/textures/items/APU2.png b/src/main/resources/assets/opencomputers/textures/items/APU2.png new file mode 100644 index 0000000000000000000000000000000000000000..4a09b42d6c7395c83c08ff6833dd1afcfea89eab GIT binary patch literal 887 zcmeAS@N?(olHy`uVBq!ia0vp^0zjO=!3-po`I#mGDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MYjWdLR^Jdq=3w0$ByZ8Iy&(tK7aoF)saWnZd|EvsJmFc z@4=EQH~LO2TrzL{hINltUF+-bJ(;-q(vk-c_rE>ZeD(Cy+qc#~y}9k#l~s@K?Ra&6 z|I1Y=^Jckpo|%33<>`+*8rIAS={**yYe9F8&A+J7t3OJvv8}X=Y!jAC6EayY)1z|22Guq;oOyNj4U-ZJTGbY~AG5WQ z%#+LNFEf1baFP48)H{cl$}P*3d%f}QzUk-Y_Z^>BHRZ}-$9@&h9qrDxbL9G6nwH1w zFA$ONTFCh#u%O?iZTa+Di(`2zro0FgVg0VLvi-5e@v1dp>l>Gq+Js$EULYq`)slF^ z*5uW~uN5sqHvji9s~!{J0J?fcb&HYB{i`5XD?9XC^zC$aur=}hz5cj8BO8OJ#)SWc T#^FN1)WhKE>gTe~DWM4fR?6U) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/opencomputers/textures/items/APU2.png.mcmeta b/src/main/resources/assets/opencomputers/textures/items/APU2.png.mcmeta new file mode 100644 index 000000000..622c31336 --- /dev/null +++ b/src/main/resources/assets/opencomputers/textures/items/APU2.png.mcmeta @@ -0,0 +1,18 @@ +{ + "animation": { + "frametime": 1, + "frames": [ + { "index": 0, "time": 3 }, + { "index": 1, "time": 3 }, + { "index": 2, "time": 3 }, + { "index": 3, "time": 3 }, + { "index": 4, "time": 3 }, + { "index": 5, "time": 3 }, + { "index": 4, "time": 3 }, + { "index": 3, "time": 3 }, + { "index": 2, "time": 3 }, + { "index": 1, "time": 3 }, + { "index": 0, "time": 3 } + ] + } +} \ No newline at end of file diff --git a/src/main/scala/li/cil/oc/Constants.scala b/src/main/scala/li/cil/oc/Constants.scala index 413ceff3d..be261a68d 100644 --- a/src/main/scala/li/cil/oc/Constants.scala +++ b/src/main/scala/li/cil/oc/Constants.scala @@ -49,6 +49,7 @@ object Constants { final val Alu = "alu" final val Analyzer = "analyzer" final val AngelUpgrade = "angelUpgrade" + final val APUCreative = "apuCreative" final val APUTier1 = "apu1" final val APUTier2 = "apu2" final val ArrowKeys = "arrowKeys" diff --git a/src/main/scala/li/cil/oc/common/init/Items.scala b/src/main/scala/li/cil/oc/common/init/Items.scala index 0acc17155..3fd66423c 100644 --- a/src/main/scala/li/cil/oc/common/init/Items.scala +++ b/src/main/scala/li/cil/oc/common/init/Items.scala @@ -535,5 +535,8 @@ object Items extends ItemAPI { // 1.5.11 Recipes.addItem(new item.HoverBoots(), Constants.ItemName.HoverBoots, "oc:hoverBoots") + + // 1.5.12 + registerItem(new item.APU(multi, Tier.Three), Constants.ItemName.APUCreative) } } diff --git a/src/main/scala/li/cil/oc/common/item/APU.scala b/src/main/scala/li/cil/oc/common/item/APU.scala index a03c2457e..b111a240c 100644 --- a/src/main/scala/li/cil/oc/common/item/APU.scala +++ b/src/main/scala/li/cil/oc/common/item/APU.scala @@ -1,11 +1,13 @@ package li.cil.oc.common.item +import li.cil.oc.common.Tier + import scala.language.existentials class APU(val parent: Delegator, val tier: Int) extends traits.Delegate with traits.ItemTier with traits.CPULike with traits.GPULike { override val unlocalizedName = super[Delegate].unlocalizedName + tier - override def cpuTier = tier + 1 + override def cpuTier = math.min(Tier.Three, tier + 1) override def gpuTier = tier diff --git a/src/main/scala/li/cil/oc/common/item/Server.scala b/src/main/scala/li/cil/oc/common/item/Server.scala index b31b0c19f..a2272e7b2 100644 --- a/src/main/scala/li/cil/oc/common/item/Server.scala +++ b/src/main/scala/li/cil/oc/common/item/Server.scala @@ -43,7 +43,7 @@ class Server(val parent: Delegator, val tier: Int) extends traits.Delegate { val itemName = item.getDisplayName items += itemName -> (if (items.contains(itemName)) items(itemName) + 1 else 1) } - if (items.size > 0) { + if (items.nonEmpty) { tooltip.addAll(Tooltip.get("Server.Components")) for (itemName <- items.keys.toArray.sorted) { tooltip.add("- " + items(itemName) + "x " + itemName) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverAPU.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverAPU.scala index 97fa16316..a41112f13 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverAPU.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverAPU.scala @@ -14,12 +14,14 @@ import net.minecraft.item.ItemStack object DriverAPU extends DriverCPU with HostAware with EnvironmentAware { override def worksWith(stack: ItemStack) = isOneOf(stack, api.Items.get(Constants.ItemName.APUTier1), - api.Items.get(Constants.ItemName.APUTier2)) + api.Items.get(Constants.ItemName.APUTier2), + api.Items.get(Constants.ItemName.APUCreative)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = gpuTier(stack) match { case Tier.One => new component.GraphicsCard.Tier1() case Tier.Two => new component.GraphicsCard.Tier2() + case Tier.Three => new component.GraphicsCard.Tier3() case _ => null }