From ee6c8ca2a47526c764f4bc658fb39746a1d54c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20Hord=C3=A9?= Date: Wed, 24 Feb 2016 23:55:19 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20cr=C3=A9ation=20d'un=20actor=20qui=20af?= =?UTF-8?q?fiche=20une=20liste=20de=20transmuteurs=20selectionnables...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/src/fr/evolving/UI/Transhower.java | 4 +- core/src/fr/evolving/UI/Translist.java | 160 ++++++++++++++++++ core/src/fr/evolving/screens/LevelScreen.java | 18 +- 3 files changed, 175 insertions(+), 7 deletions(-) create mode 100644 core/src/fr/evolving/UI/Translist.java diff --git a/core/src/fr/evolving/UI/Transhower.java b/core/src/fr/evolving/UI/Transhower.java index e27ba83..ee91c13 100644 --- a/core/src/fr/evolving/UI/Transhower.java +++ b/core/src/fr/evolving/UI/Transhower.java @@ -50,7 +50,7 @@ public class Transhower extends Actor { setTransmuter(transmuter); } - public void clear() { + public void clearer() { this.transmuter=null; for (int x = 0; x < layer.getWidth(); x++) { for (int y = 0; y < layer.getHeight(); y++) { @@ -136,7 +136,7 @@ public class Transhower extends Actor { } public void setTransmuter(Transmuter transmuter) { - this.clear(); + this.clearer(); this.transmuter=transmuter; this.redraw(); } diff --git a/core/src/fr/evolving/UI/Translist.java b/core/src/fr/evolving/UI/Translist.java new file mode 100644 index 0000000..5355d3f --- /dev/null +++ b/core/src/fr/evolving/UI/Translist.java @@ -0,0 +1,160 @@ +package fr.evolving.UI; + +import java.util.Iterator; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.g2d.Batch; +import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType; +import com.badlogic.gdx.scenes.scene2d.Actor; +import com.badlogic.gdx.scenes.scene2d.InputEvent; +import com.badlogic.gdx.scenes.scene2d.ui.ImageButton; +import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane; +import com.badlogic.gdx.scenes.scene2d.ui.Table; +import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup; +import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; +import com.badlogic.gdx.utils.Align; +import com.badlogic.gdx.utils.Array; + +import fr.evolving.assets.AssetLoader; +import fr.evolving.automata.Transmuter; + +public class Translist extends Actor{ + + private Array transmuters; + private ImageButton Next,Previous; + Transhower Selected; + Table table; + int whereis; + Color color; + + public Translist(Array transmuters,Color color) { + this.color=color; + super.setBounds(-500, -500, 256, 256); + Previous=new ImageButton(AssetLoader.Skin_level, "extend2"); + Previous.addListener(new ClickListener() { + @Override + public void clicked(InputEvent event, float x, float y) { + Gdx.app.debug("wirechem-Translist", "Previous transmuter"); + previousTransmuter(); + } + }); + Next=new ImageButton(AssetLoader.Skin_level, "extend"); + Next.addListener(new ClickListener() { + @Override + public void clicked(InputEvent event, float x, float y) { + Gdx.app.debug("wirechem-Translist", "Next transmuter"); + nextTransmuter(); + } + }); + this.addListener(new ClickListener() { + @Override + public void clicked(InputEvent event, float x, float y) { + Gdx.app.debug("wirechem-Translist", "Next angle"); + nextAngle(); + } + }); + table=new Table(); + setTransmuters(transmuters); + } + + public void setColor(Color color) { + this.color=color; + assignTransmuter(whereis); + } + + public Color getColor() { + return this.color; + } + + public void setTransmuters(Array transmuters) { + this.transmuters=transmuters; + whereis=0; + assignTransmuter(whereis); + } + + public void assignTransmuter(int where) { + if (Selected==null) + Selected=new Transhower(transmuters.get(where), transmuters.get(where).getRotation(), true, color); + else { + Selected.setAngle(transmuters.get(where).getRotation()); + Selected.setTransmuter(transmuters.get(where)); + Selected.setColor(this.color); + } + redraw(); + } + + public void nextAngle() { + Transmuter.Angular angle=getTransmuter().getRotation(); + if (angle==Transmuter.Angular.A00) + getTransmuter().setRotation(Transmuter.Angular.A90); + else if (angle==Transmuter.Angular.A90) + getTransmuter().setRotation(Transmuter.Angular.A180); + else if (angle==Transmuter.Angular.A180) + getTransmuter().setRotation(Transmuter.Angular.A270); + else if (angle==Transmuter.Angular.A270) + getTransmuter().setRotation(Transmuter.Angular.A00); + assignTransmuter(whereis); + } + + public void previousTransmuter() { + if (whereis>0) { + whereis--; + assignTransmuter(whereis); + } + } + + public Transmuter getTransmuter() { + return transmuters.get(whereis); + } + + public void nextTransmuter() { + if (whereis test2=new Array(); + test2.add(AssetLoader.getTransmuter("<>")); + test2.add(AssetLoader.getTransmuter(">")); + test2.add(AssetLoader.getTransmuter("++")); + test2.add(AssetLoader.getTransmuter("+")); + test2.add(AssetLoader.getTransmuter("+-+-")); + test2.add(AssetLoader.getTransmuter("00")); + test=new Translist(test2,new Color(1f,1f,1f,0.25f)); + test.setPosition(512, 512); + test.setWidth(256); + test.setHeight(256); this.worlds = aworlds; addervalue=1; worlds.addListener(new ChangeListener() {