From 0e8204b2433926b24986f995b49ba7fc13bcb5c5 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 17 Sep 2017 15:41:49 -0400 Subject: [PATCH] Added block description panel, disabled deselecting, updated uCore --- build.gradle | 3 +- core/assets-raw/sprites/titanium1.png | Bin 0 -> 251 bytes core/assets-raw/sprites/titanium2.png | Bin 0 -> 246 bytes core/assets-raw/sprites/titanium3.png | Bin 0 -> 243 bytes core/assets-raw/sprites/titaniumblock.png | Bin 0 -> 185 bytes core/assets-raw/sprites/titaniumdrill.png | Bin 0 -> 252 bytes core/assets-raw/ui/icon-menu.png | Bin 0 -> 191 bytes core/assets-raw/ui/icon-pause.png | Bin 0 -> 175 bytes core/assets-raw/ui/icon-settings.png | Bin 0 -> 213 bytes core/assets/sprites/sprites.atlas | 45 +++- core/assets/sprites/sprites.png | Bin 6863 -> 7130 bytes core/assets/ui/uiskin.atlas | 31 ++- core/assets/ui/uiskin.json | 2 +- core/assets/ui/uiskin.png | Bin 12218 -> 12344 bytes core/src/io/anuke/mindustry/Control.java | 4 +- core/src/io/anuke/mindustry/Renderer.java | 6 +- core/src/io/anuke/mindustry/UI.java | 193 +++++++++--------- core/src/io/anuke/mindustry/input/Input.java | 11 +- core/src/io/anuke/mindustry/io/SaveIO.java | 2 +- .../src/io/anuke/mindustry/resource/Item.java | 2 +- core/src/io/anuke/mindustry/world/Block.java | 4 +- .../anuke/mindustry/world/blocks/Blocks.java | 12 +- .../mindustry/world/blocks/Conveyor.java | 2 +- .../world/blocks/ProductionBlocks.java | 19 ++ .../mindustry/world/blocks/RepairTurret.java | 2 +- .../anuke/mindustry/world/blocks/Turret.java | 2 +- .../mindustry/world/blocks/WeaponBlocks.java | 8 + 27 files changed, 219 insertions(+), 129 deletions(-) create mode 100644 core/assets-raw/sprites/titanium1.png create mode 100644 core/assets-raw/sprites/titanium2.png create mode 100644 core/assets-raw/sprites/titanium3.png create mode 100644 core/assets-raw/sprites/titaniumblock.png create mode 100644 core/assets-raw/sprites/titaniumdrill.png create mode 100644 core/assets-raw/ui/icon-menu.png create mode 100644 core/assets-raw/ui/icon-pause.png create mode 100644 core/assets-raw/ui/icon-settings.png diff --git a/build.gradle b/build.gradle index 4ddfbb579e..1e7b9188ea 100644 --- a/build.gradle +++ b/build.gradle @@ -79,8 +79,7 @@ project(":core") { apply plugin: "java" dependencies { - //compile fileTree(dir: '../core/lib', include: '*.jar') - compile 'com.github.anuken:ucore:627f0c756d' + compile 'com.github.anuken:ucore:532dc82873' compile "com.badlogicgames.gdx:gdx:$gdxVersion" compile "com.badlogicgames.gdx:gdx-ai:1.8.1" } diff --git a/core/assets-raw/sprites/titanium1.png b/core/assets-raw/sprites/titanium1.png new file mode 100644 index 0000000000000000000000000000000000000000..5cf051540b704e32a5bcc7a76f8332828e6a7b48 GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^&H|6fVg?3oVGw3ym^DWND9B#o z>Fdh=kW)~A!+K)xhXA0EWQl7;iF1B#Zfaf$gL6@8Vo7R>LV0FMhJw4NZ$Nk>pEyua zsi%u$2*>rqK0*GaKVF6fd9|yNeAj{5zu9 snqoYC{*0<_zXM6q@9htqalIt2yTJa+qS}^dpaU2@UHx3vIVCg!02KyT5dZ)H literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/titanium2.png b/core/assets-raw/sprites/titanium2.png new file mode 100644 index 0000000000000000000000000000000000000000..9aad0c978f56fd942d4c5eab5eb967c02bfe1749 GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^&H|6fVg?3oVGw3ym^DWND9B#o z>Fdh=kW)~AQ$}}ANfl5?vcxr_#5q4VH#M(>!MP|ku_QG`p**uBL&4qCHz2%`PaLSI zz|+MsgyXtv-$B7c1_I3273&vCZgo_}tiQiG|iwL#y__PMM(?#Z#;n5yzJn$>5`)*V;; nohgTe~DWM4f&hS)Y literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/titanium3.png b/core/assets-raw/sprites/titanium3.png new file mode 100644 index 0000000000000000000000000000000000000000..f8f1ed80a3a656de7424cd7e033e599fa05f5980 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^&H|6fVg?3oVGw3ym^DWND9B#o z>Fdh=kW)~AQ-yWjnI}LY$r9Iy66gHf+|;}h2Ir#G#FEq$h4Rdj3Cp5Y(F)U<)E7D_$Qd3x5U!$n zQ=Z}7t@pRQXZv~2-rW(y;J0#%=cf~_4<7E^t?gK}SY>8%(~|PH(y6iQm;e9weB$dV lbu0hIx#&%rcsiZI?n}FI-_t8bK-V)cc)I$ztaD0e0sxG6Ry6Fdh=kW)}VP%k}T?_!{kWQl7;iF1B#Zfaf$gL6@8Vo7R>LV0FMhJw4NZ$Nk>pEyvF zv8Rh;2*>s0HE*qzG*r$tFh<1L);DNs0og3+3k??ty}!TLCE3960mBmMqlXS0XtGYoK-pPgg&ebxsLQ03bOu5dZ)H literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/titaniumdrill.png b/core/assets-raw/sprites/titaniumdrill.png new file mode 100644 index 0000000000000000000000000000000000000000..d2f8fef5fc9b2fc7cbb4eef8890fa71ee117ac9a GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#A*Y~#0oV02J`;gLk|nMYCC>S|xv6<249-QVi6yBi3gww484B*6z5(HleBwYw zWu7jMArhBc`#16)HsE2=?=wqKE@1CfROrrBe}7Px!%XI20heRZt_{_H{yzRGm3(Jw z7=sd1!&1hs-N|VT9UKR)?JYm06rF9obd|K$s$IP`^=X$&m6Tjq*z4aFlpB5ajC-DQ rddan4IR=|;i&z^tbsm?Wulmhx`af4u_bxCyDx`7I;J! zGca%qgD@k*tT_@uLG}_)Usv{roIJuNtj$_W<$*#zo-U3d5|@+zR4eo}N*p+J00>g{ zf3lx){=|U;ALL^%?r(nB<8x%jv6THnNlI5#*mQDcbQZK$tW8TuP&k*hBb_6%cg=*V eFk>O<2Mo6N1l-$|S`~rjGI+ZBxvXf4u_bxCyDx`7I;J! zGca%qgD@k*tT_@uLG}_)Usv{roIJv&rh8s2`2-ZQ@pN$vk+_`vr&^(>QR2X%13-|n ze^O&(<3sz99zn0eKmYT!85;;DOHKak^+-f0SBaVV@PvR99ytxn40ZNA*6-Ha`T@;h N@O1TaS?83{1ONzNHZuSK literal 0 HcmV?d00001 diff --git a/core/assets-raw/ui/icon-settings.png b/core/assets-raw/ui/icon-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..a1e2dad31ca814996ed206ec0a60348227efd778 GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDx`7I;J! zGca%qgD@k*tT_@uLG}_)Usv{roIJutJZskMvIPnydAc};NL((Ra8dAp0*ABny6T;+ z=U#|e%~)o?cbn2aeLjmx35!$zB(7p=xY@1Se9`EO;I+l60@__!%YNxeoxAadRn4C=OJ?uwt!jY4hqrv7AGz+qpIQ2)mRXd8p4tDnm{r-UW| DsoqJ? literal 0 HcmV?d00001 diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index f8d5f87250..e3036194d2 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -508,6 +508,41 @@ stonewall orig: 8, 8 offset: 0, 0 index: -1 +titanium1 + rotate: false + xy: 180, 13 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +titanium2 + rotate: false + xy: 180, 3 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +titanium3 + rotate: false + xy: 190, 13 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +titaniumblock + rotate: false + xy: 190, 3 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +titaniumdrill + rotate: false + xy: 200, 13 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 turret rotate: false xy: 163, 21 @@ -517,7 +552,7 @@ turret index: -1 water rotate: false - xy: 180, 13 + xy: 200, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -531,28 +566,28 @@ wateredge index: -1 weapon-blaster rotate: false - xy: 180, 3 + xy: 210, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapon-flamethrower rotate: false - xy: 190, 13 + xy: 210, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapon-multigun rotate: false - xy: 190, 3 + xy: 220, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapon-trishot rotate: false - xy: 200, 13 + xy: 220, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 8ffc4f6024800e116d38f5ba9c75c46e58723ecd..9a014490f5e6efe5b4188c4715cfc0968f6993e7 100644 GIT binary patch literal 7130 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 literal 6863 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 diff --git a/core/assets/ui/uiskin.atlas b/core/assets/ui/uiskin.atlas index d9da6fe185..981639368a 100644 --- a/core/assets/ui/uiskin.atlas +++ b/core/assets/ui/uiskin.atlas @@ -358,13 +358,27 @@ icon-distribution orig: 10, 10 offset: 0, 0 index: -1 -icon-production +icon-menu rotate: false xy: 383, 2 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 +icon-pause + rotate: false + xy: 395, 2 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 +icon-production + rotate: false + xy: 407, 2 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 icon-rotate rotate: false xy: 405, 15 @@ -372,6 +386,13 @@ icon-rotate orig: 14, 14 offset: 0, 0 index: -1 +icon-settings + rotate: false + xy: 419, 2 + size: 10, 10 + orig: 10, 10 + offset: 0, 0 + index: -1 list-selection rotate: false xy: 220, 3 @@ -556,7 +577,7 @@ slider-knob-over index: -1 slider-vertical rotate: false - xy: 343, 62 + xy: 421, 14 size: 8, 1 orig: 8, 1 offset: 0, 0 @@ -571,14 +592,14 @@ slot index: -1 splitpane rotate: false - xy: 343, 59 + xy: 431, 14 size: 8, 1 orig: 8, 1 offset: 0, 0 index: -1 splitpane-over rotate: false - xy: 343, 56 + xy: 343, 62 size: 8, 1 orig: 8, 1 offset: 0, 0 @@ -637,7 +658,7 @@ touchpad-knob index: -1 tree-minus rotate: false - xy: 395, 2 + xy: 431, 2 size: 10, 10 orig: 10, 10 offset: 0, 0 diff --git a/core/assets/ui/uiskin.json b/core/assets/ui/uiskin.json index 5d62cc089b..8bf672d10f 100644 --- a/core/assets/ui/uiskin.json +++ b/core/assets/ui/uiskin.json @@ -34,7 +34,7 @@ io.anuke.ucore.scene.ui.TextButton$TextButtonStyle: { toggle: {font: default-font, fontColor: white, checked: button-down, down: button-down, up: button, over: button-over, disabled: button, disabledFontColor: grey } }, io.anuke.ucore.scene.ui.ImageButton$ImageButtonStyle: { - default: {down: button-down, up: button }, + default: {down: button-down, up: button, over: button-over }, static: {up: button }, static-down: {up: button-down }, blue: {down: button-blue-down, up: button-blue }, diff --git a/core/assets/ui/uiskin.png b/core/assets/ui/uiskin.png index a271b5fa3648be8ed3526e0dd38563a8b9ed4e4b..20d19722cff1522699b0e6ba4f38584a423a2f6b 100644 GIT binary patch literal 12344 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 diff --git a/core/src/io/anuke/mindustry/Control.java b/core/src/io/anuke/mindustry/Control.java index b82611d7c7..01e41465f1 100644 --- a/core/src/io/anuke/mindustry/Control.java +++ b/core/src/io/anuke/mindustry/Control.java @@ -23,10 +23,10 @@ import io.anuke.ucore.core.*; import io.anuke.ucore.entities.Entities; import io.anuke.ucore.entities.Entity; import io.anuke.ucore.graphics.Atlas; -import io.anuke.ucore.modules.RendererModule; +import io.anuke.ucore.modules.ControlModule; import io.anuke.ucore.util.Mathf; -public class Control extends RendererModule{ +public class Control extends ControlModule{ public int rangex = 10, rangey = 10; public float targetzoom = 1f; diff --git a/core/src/io/anuke/mindustry/Renderer.java b/core/src/io/anuke/mindustry/Renderer.java index 9bfd2cfe4b..e9380d921e 100644 --- a/core/src/io/anuke/mindustry/Renderer.java +++ b/core/src/io/anuke/mindustry/Renderer.java @@ -20,7 +20,9 @@ import io.anuke.ucore.entities.Entity; import io.anuke.ucore.graphics.Cache; import io.anuke.ucore.graphics.Caches; import io.anuke.ucore.scene.utils.Cursors; -import io.anuke.ucore.util.*; +import io.anuke.ucore.util.GridMap; +import io.anuke.ucore.util.Mathf; +import io.anuke.ucore.util.Tmp; public class Renderer{ private static int chunksize = 32; @@ -110,7 +112,7 @@ public class Renderer{ public static void renderPixelOverlay(){ - if(player.recipe != null && (!ui.hasMouse() || android)){ + if(player.recipe != null && Inventory.hasItems(player.recipe.requirements) && (!ui.hasMouse() || android)){ float x = 0; float y = 0; diff --git a/core/src/io/anuke/mindustry/UI.java b/core/src/io/anuke/mindustry/UI.java index 06fefb2da1..bdbcda836a 100644 --- a/core/src/io/anuke/mindustry/UI.java +++ b/core/src/io/anuke/mindustry/UI.java @@ -6,13 +6,12 @@ import static io.anuke.ucore.scene.actions.Actions.*; import com.badlogic.gdx.Application.ApplicationType; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.Colors; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Batch; import com.badlogic.gdx.math.Interpolation; import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.Array; -import com.badlogic.gdx.utils.Timer; -import com.badlogic.gdx.utils.Timer.Task; import io.anuke.mindustry.GameState.State; import io.anuke.mindustry.entities.Weapon; @@ -20,21 +19,18 @@ import io.anuke.mindustry.input.AndroidInput; import io.anuke.mindustry.resource.*; import io.anuke.mindustry.ui.*; import io.anuke.ucore.core.*; -import io.anuke.ucore.function.Listenable; import io.anuke.ucore.function.VisibilityProvider; import io.anuke.ucore.graphics.Hue; import io.anuke.ucore.graphics.Textures; import io.anuke.ucore.modules.SceneModule; -import io.anuke.ucore.scene.Element; -import io.anuke.ucore.scene.Scene; import io.anuke.ucore.scene.actions.Actions; import io.anuke.ucore.scene.builders.*; -import io.anuke.ucore.scene.event.InputEvent; import io.anuke.ucore.scene.ui.*; import io.anuke.ucore.scene.ui.layout.*; +import io.anuke.ucore.util.Mathf; public class UI extends SceneModule{ - Table itemtable, weapontable, tools, loadingtable; + Table itemtable, weapontable, tools, loadingtable, desctable; SettingsDialog prefs; KeybindDialog keys; Dialog about, menu, restart, tutorial, levels, upgrades, load; @@ -62,6 +58,10 @@ public class UI extends SceneModule{ Textures.load("sprites/"); Textures.repeatWrap("conveyort", Gdx.app.getType() == ApplicationType.WebGL ? "back-web" : "back"); + + Colors.put("description", Color.WHITE); + Colors.put("turretinfo", Color.ORANGE); + Colors.put("missingitems", Color.SCARLET); } void drawBackground(){ @@ -114,7 +114,6 @@ public class UI extends SceneModule{ @Override public void init(){ - //TODO just move these dialogs to different files load = new LoadDialog(); @@ -146,19 +145,17 @@ public class UI extends SceneModule{ tutorial = new TutorialDialog(); - restart = new Dialog("The core was destroyed.", "dialog"){ - public Dialog show(Scene scene){ - super.show(scene); - restart.content().clearChildren(); - if(control.isHighScore()){ - restart.content().add("[YELLOW]New highscore!").pad(6); - restart.content().row(); - } - restart.content().add("You lasted until wave [GREEN]" + control.getWave() + "[].").pad(6); - restart.pack(); - return this; + restart = new Dialog("The core was destroyed.", "dialog"); + + restart.shown(()->{ + restart.content().clearChildren(); + if(control.isHighScore()){ + restart.content().add("[YELLOW]New highscore!").pad(6); + restart.content().row(); } - }; + restart.content().add("You lasted until wave [GREEN]" + control.getWave() + "[].").pad(6); + restart.pack(); + }); restart.getButtonTable().addButton("Back to menu", ()->{ restart.hide(); @@ -179,10 +176,16 @@ public class UI extends SceneModule{ new table(){{ abottom(); aright(); + + new table("button"){{ + visible(()->player.recipe != null); + desctable = get(); + fillX(); + }}.end().uniformX(); + + row(); - new table(){{ - - get().background("button"); + new table("button"){{ int rows = 3; int maxcol = 0; @@ -202,12 +205,18 @@ public class UI extends SceneModule{ recipes.clear(); Recipe.getBy(sec, recipes); + Table table = new Table(); + ImageButton button = new ImageButton("icon-"+sec.name(), "toggle"); + button.clicked(()->{ + if(!table.isVisible() && player.recipe != null){ + player.recipe = null; + } + }); add(button).fill().height(54).padTop(-10).units(Unit.dp); button.getImageCell().size(40).padBottom(4).units(Unit.dp); group.add(button); - Table table = new Table(); table.pad(4); int i = 0; @@ -216,8 +225,10 @@ public class UI extends SceneModule{ ImageButton image = new ImageButton(Draw.region(r.result.name()), "select"); image.clicked(()->{ - if(Inventory.hasItems(r.requirements)) + if(Inventory.hasItems(r.requirements)){ player.recipe = r; + updateRecipe(); + } }); table.add(image).size(size+8).pad(4).units(Unit.dp); @@ -236,67 +247,6 @@ public class UI extends SceneModule{ table.row(); i++; - - Table tiptable = new Table(); - - Listenable run = ()->{ - tiptable.clearChildren(); - - String description = r.result.description(); - - tiptable.background("button"); - tiptable.add("[PURPLE]" + r.result.name(), 0.75f*fontscale*2f).left().padBottom(2f).units(Unit.dp); - - ItemStack[] req = r.requirements; - for(ItemStack s : req){ - tiptable.row(); - int amount = Math.min(Inventory.getAmount(s.item), s.amount); - tiptable.add( - (amount >= s.amount ? "[YELLOW]" : "[RED]") - +s.item + ": " + amount + " / " +s.amount, fontscale).left(); - } - - tiptable.row(); - tiptable.add().size(10).units(Unit.px); - tiptable.row(); - tiptable.add("[scarlet]Health: " + r.result.health).left(); - tiptable.row(); - tiptable.add().size(6).units(Unit.px); - tiptable.row(); - tiptable.add("[ORANGE]" + description).left(); - tiptable.pad(Unit.dp.inPixels(10f)); - }; - - run.listen(); - - Tooltip tip = new Tooltip(tiptable, run){ - public void enter (InputEvent event, float x, float y, int pointer, Element fromActor) { - if(tooltip != this) - hideTooltip(); - Element actor = event.getListenerActor(); - if (fromActor != null && fromActor.isDescendantOf(actor)) return; - setContainerPosition(actor, x, y); - manager.enter(this); - run.listen(); - - tooltip = this; - - if(android){ - - Timer.schedule(new Task(){ - @Override - public void run(){ - hide(); - } - }, 1.5f); - - } - } - }; - - tip.setInstant(true); - - image.addListener(tip); } //additional padding @@ -336,18 +286,19 @@ public class UI extends SceneModule{ atop(); aleft(); - defaults().size(60).units(Unit.dp); + defaults().size(66).units(Unit.dp); - new button("M", ()->{ - + //TODO menu buttons! + new imagebutton("icon-menu", 40, ()->{ + showMenu(); }); - new button("P", ()->{ - + new imagebutton("icon-settings", 40, ()->{ + prefs.show(); }); - new button("S", ()->{ - + new imagebutton("icon-pause", 40, ()->{ + //TODO pause }); row(); @@ -370,7 +321,7 @@ public class UI extends SceneModule{ new table(){{ get().background("button"); - new label(()->"[YELLOW]Wave " + control.getWave()).scale(fontscale*2f).left(); + new label(()->"[orange]Wave " + control.getWave()).scale(fontscale*2f).left(); row(); @@ -385,9 +336,8 @@ public class UI extends SceneModule{ }}.end(); - //if(Gdx.app.getType() != ApplicationType.Android){ //+- table - //TODO refactor to make this less messy + //TODO refactor to make this less messy? new table(){{ aleft(); abottom(); @@ -408,7 +358,6 @@ public class UI extends SceneModule{ get().setVisible(play); }}.end(); - //} //menu table new table(){{ @@ -472,7 +421,6 @@ public class UI extends SceneModule{ } new table(){{ - //atop(); new table(){{ get().background("button"); @@ -528,6 +476,55 @@ public class UI extends SceneModule{ build.end(); } + void updateRecipe(){ + Recipe recipe = player.recipe; + desctable.clear(); + + desctable.defaults().left(); + desctable.left(); + desctable.pad(12); + + desctable.add(recipe.result.formalName); + desctable.row(); + desctable.addImage(Draw.region(recipe.result.name)).size(8*5).padTop(4); + desctable.row(); + + desctable.add().pad(2); + + Table requirements = new Table(); + + desctable.row(); + + desctable.add(requirements); + desctable.left(); + + for(ItemStack stack : recipe.requirements){ + ItemStack fs = stack; + requirements.addImage(Draw.region("icon-"+stack.item.name())).size(8*3); + Label reqlabel = new Label(""); + + reqlabel.update(()->{ + int current = Inventory.getAmount(fs.item); + String text = Mathf.clamp(current, 0, stack.amount) + "/" + stack.amount; + + reqlabel.setColor(current < stack.amount ? Colors.get("missingitems") : Color.WHITE); + + reqlabel.setText(text); + }); + + requirements.add(reqlabel); + requirements.row(); + } + + desctable.row(); + + if(recipe.result.description() != null){ + Label label = new Label(recipe.result.description()); + label.setWrap(true); + desctable.add(label).width(170).padTop(4); + } + } + public void updateWeapons(){ weapontable.clearChildren(); diff --git a/core/src/io/anuke/mindustry/input/Input.java b/core/src/io/anuke/mindustry/input/Input.java index a32e2486c5..c86e8b6c62 100644 --- a/core/src/io/anuke/mindustry/input/Input.java +++ b/core/src/io/anuke/mindustry/input/Input.java @@ -36,10 +36,7 @@ public class Input{ player.rotation %= 4; - if(player.recipe != null && !Inventory.hasItems(player.recipe.requirements)){ - player.recipe = null; - Cursors.restoreCursor(); - } + //TODO restore cursor when requirements are back for(int i = 0; i < 9; i ++) if(Inputs.keyUp(Keys.valueOf(""+(i+1))) && i < control.getWeapons().size){ @@ -48,7 +45,8 @@ public class Input{ } if(Inputs.buttonUp(Buttons.LEFT) && player.recipe != null && - World.validPlace(World.tilex(), World.tiley(), player.recipe.result) && !ui.hasMouse()){ + World.validPlace(World.tilex(), World.tiley(), player.recipe.result) && !ui.hasMouse() && + Inventory.hasItems(player.recipe.requirements)){ Tile tile = World.tile(World.tilex(), World.tiley()); if(tile == null) @@ -64,9 +62,8 @@ public class Input{ for(ItemStack stack : player.recipe.requirements){ Inventory.removeItem(stack); } - + if(!Inventory.hasItems(player.recipe.requirements)){ - player.recipe = null; Cursors.restoreCursor(); } } diff --git a/core/src/io/anuke/mindustry/io/SaveIO.java b/core/src/io/anuke/mindustry/io/SaveIO.java index bdc8218777..412da33aae 100644 --- a/core/src/io/anuke/mindustry/io/SaveIO.java +++ b/core/src/io/anuke/mindustry/io/SaveIO.java @@ -79,7 +79,7 @@ import io.anuke.ucore.entities.Entity; */ public class SaveIO{ /**Save file version ID. Should be incremented every breaking release.*/ - private static final int fileVersionID = 4; + private static final int fileVersionID = 5; private static FormatProvider provider = null; diff --git a/core/src/io/anuke/mindustry/resource/Item.java b/core/src/io/anuke/mindustry/resource/Item.java index 2824092bf3..ce0c7ce006 100644 --- a/core/src/io/anuke/mindustry/resource/Item.java +++ b/core/src/io/anuke/mindustry/resource/Item.java @@ -1,5 +1,5 @@ package io.anuke.mindustry.resource; public enum Item{ - stone, iron, coal, steel, titanium; + stone, iron, coal, steel, titanium, hypanium; } diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index ea60db2182..d71046d5ff 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -22,6 +22,7 @@ public class Block{ protected static TextureRegion temp = new TextureRegion(); public final String name; + public String formalName; public boolean solid, update, rotate, breakable; public int health = 40; public String shadow = "shadow"; @@ -38,6 +39,7 @@ public class Block{ blocks.add(this); this.name = name; + this.formalName = name; this.solid = false; this.id = lastid++; } @@ -51,7 +53,7 @@ public class Block{ } public String description(){ - return "[no description]"; + return null; } public String errorMessage(Tile tile){ diff --git a/core/src/io/anuke/mindustry/world/blocks/Blocks.java b/core/src/io/anuke/mindustry/world/blocks/Blocks.java index e6fe271654..05d0e46c10 100644 --- a/core/src/io/anuke/mindustry/world/blocks/Blocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/Blocks.java @@ -95,17 +95,27 @@ public class Blocks{ solid = true; update = true; health = 50; + formalName = "stone wall"; }}, ironwall = new Block("ironwall"){{ solid = true; update = true; health = 80; + formalName = "iron wall"; }}, steelwall = new Block("steelwall"){{ solid = true; update = true; - health = 100; + health = 110; + formalName = "steel wall"; + }}, + + titaniumwall = new Block("titaniumwall"){{ + solid = true; + update = true; + health = 140; + formalName = "titanium wall"; }}; } diff --git a/core/src/io/anuke/mindustry/world/blocks/Conveyor.java b/core/src/io/anuke/mindustry/world/blocks/Conveyor.java index 687aa3655f..2eba10bff1 100644 --- a/core/src/io/anuke/mindustry/world/blocks/Conveyor.java +++ b/core/src/io/anuke/mindustry/world/blocks/Conveyor.java @@ -98,7 +98,7 @@ public class Conveyor extends Block{ @Override public String description(){ - return "Moves Items"; + return "Moves items."; } @Override diff --git a/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java b/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java index 4e2d257a4f..ef9dafee8d 100644 --- a/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java @@ -40,6 +40,7 @@ public class ProductionBlocks{ steelconveyor = new Conveyor("steelconveyor"){{ update = true; speed = 0.04f; + formalName = "steel conveyor"; }}, router = new Block("router"){ @@ -131,29 +132,47 @@ public class ProductionBlocks{ } }, + crucible = new Crafter("crucible"){ + { + health = 90; + requirements = new Item[]{Item.titanium, Item.steel}; + result = Item.hypanium; + } + + @Override + public String description(){ + return "Takes in steel + titanium, outputs hypanium."; + } + }, + stonedrill = new Drill("stonedrill"){{ resource = Blocks.stone; result = Item.stone; + formalName = "stone drill"; }}, irondrill = new Drill("irondrill"){{ resource = Blocks.iron; result = Item.iron; + formalName = "iron drill"; }}, coaldrill = new Drill("coaldrill"){{ resource = Blocks.coal; result = Item.coal; + formalName = "coal drill"; }}, titaniumdrill = new Drill("titaniumdrill"){{ resource = Blocks.titanium; result = Item.titanium; + formalName = "titanium drill"; }}, omnidrill = new Drill("omnidrill"){ { time = 4; + formalName = "omnidrill"; } @Override diff --git a/core/src/io/anuke/mindustry/world/blocks/RepairTurret.java b/core/src/io/anuke/mindustry/world/blocks/RepairTurret.java index f0233f1663..993d3c2099 100644 --- a/core/src/io/anuke/mindustry/world/blocks/RepairTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/RepairTurret.java @@ -64,6 +64,6 @@ public class RepairTurret extends Turret{ @Override public String description(){ - return "[green]Range: " + (int)range + "\n[orange]Heals nearby tiles."; + return "[turretinfo]Range: " + (int)range + "\n[description]Heals nearby tiles."; } } diff --git a/core/src/io/anuke/mindustry/world/blocks/Turret.java b/core/src/io/anuke/mindustry/world/blocks/Turret.java index b81b87156f..9716824440 100644 --- a/core/src/io/anuke/mindustry/world/blocks/Turret.java +++ b/core/src/io/anuke/mindustry/world/blocks/Turret.java @@ -69,7 +69,7 @@ public class Turret extends Block{ @Override public String description(){ - return "[green]Ammo: "+(ammo==null ? "N/A" : ammo.name())+"\nRange: " + (int)range + "\nDamage: " + bullet.damage; + return "[turretinfo]Ammo: "+(ammo==null ? "N/A" : ammo.name())+"\nRange: " + (int)range + "\nDamage: " + bullet.damage; } @Override diff --git a/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java b/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java index 29cc997d34..449b6edf5a 100644 --- a/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java @@ -12,6 +12,7 @@ public class WeaponBlocks{ turret = new Turret("turret"){ { + formalName = "turret"; range = 50; reload = 10f; bullet = BulletType.stone; @@ -21,6 +22,7 @@ public class WeaponBlocks{ doubleturret = new Turret("doubleturret"){ { + formalName = "double turret"; range = 40; reload = 13f; bullet = BulletType.stone; @@ -42,6 +44,7 @@ public class WeaponBlocks{ machineturret = new Turret("machineturret"){ { + formalName = "gattling turret"; range = 65; reload = 7f; bullet = BulletType.iron; @@ -52,6 +55,7 @@ public class WeaponBlocks{ shotgunturret = new Turret("shotgunturret"){ { + formalName = "splitter turret"; range = 50; reload = 30f; bullet = BulletType.iron; @@ -73,6 +77,7 @@ public class WeaponBlocks{ flameturret = new Turret("flameturret"){ { + formalName = "flamer turret"; range = 35f; reload = 5f; bullet = BulletType.flame; @@ -83,6 +88,7 @@ public class WeaponBlocks{ sniperturret = new Turret("sniperturret"){ { + formalName = "railgun turret"; range = 120; reload = 60f; bullet = BulletType.sniper; @@ -93,6 +99,7 @@ public class WeaponBlocks{ repairturret = new RepairTurret("repairturret"){ { + formalName = "heal turret"; range = 30; reload = 40f; health = 60; @@ -101,6 +108,7 @@ public class WeaponBlocks{ megarepairturret = new RepairTurret("megarepairturret"){ { + formalName = "heal turret II"; range = 50; reload = 20f; health = 90;