feat: création d'un actor qui affiche une liste de transmuteurs selectionnables...
This commit is contained in:
parent
90609b9597
commit
ee6c8ca2a4
|
@ -50,7 +50,7 @@ public class Transhower extends Actor {
|
||||||
setTransmuter(transmuter);
|
setTransmuter(transmuter);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void clear() {
|
public void clearer() {
|
||||||
this.transmuter=null;
|
this.transmuter=null;
|
||||||
for (int x = 0; x < layer.getWidth(); x++) {
|
for (int x = 0; x < layer.getWidth(); x++) {
|
||||||
for (int y = 0; y < layer.getHeight(); y++) {
|
for (int y = 0; y < layer.getHeight(); y++) {
|
||||||
|
@ -136,7 +136,7 @@ public class Transhower extends Actor {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTransmuter(Transmuter transmuter) {
|
public void setTransmuter(Transmuter transmuter) {
|
||||||
this.clear();
|
this.clearer();
|
||||||
this.transmuter=transmuter;
|
this.transmuter=transmuter;
|
||||||
this.redraw();
|
this.redraw();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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<Transmuter> transmuters;
|
||||||
|
private ImageButton Next,Previous;
|
||||||
|
Transhower Selected;
|
||||||
|
Table table;
|
||||||
|
int whereis;
|
||||||
|
Color color;
|
||||||
|
|
||||||
|
public Translist(Array<Transmuter> 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<Transmuter> 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<transmuters.size-1) {
|
||||||
|
whereis++;
|
||||||
|
assignTransmuter(whereis);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void redraw() {
|
||||||
|
Selected.setBounds(this.getX(), this.getY(), this.getWidth(), this.getHeight());
|
||||||
|
table.setBounds(this.getX(), this.getY(), this.getWidth(), this.getHeight());
|
||||||
|
table.clear();
|
||||||
|
table.add(Previous).left().pad(this.getWidth()/4).padTop(this.getHeight()).size(this.getWidth()/512*64, this.getHeight()/512*64);
|
||||||
|
table.add(Next).right().pad(this.getWidth()/4).padTop(this.getHeight()).size(this.getWidth()/512*64, this.getHeight()/512*64);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Actor hit(float x, float y, boolean touchable) {
|
||||||
|
Actor actor=table.hit(x, y, touchable);
|
||||||
|
if (actor!=null) {
|
||||||
|
return actor;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return super.hit(x, y, touchable);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBounds(float x, float y, float width, float height) {
|
||||||
|
super.setBounds(x, y, width, height);
|
||||||
|
redraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHeight(float height) {
|
||||||
|
super.setHeight(height);
|
||||||
|
redraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPosition(float x, float y) {
|
||||||
|
super.setPosition(x, y);
|
||||||
|
redraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWidth(float width) {
|
||||||
|
super.setWidth(width);
|
||||||
|
redraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void draw(Batch batch, float parentAlpha) {
|
||||||
|
Selected.draw(batch, parentAlpha);
|
||||||
|
table.draw(batch, parentAlpha);
|
||||||
|
}
|
||||||
|
}
|
|
@ -28,6 +28,7 @@ import fr.evolving.UI.ButtonLevel;
|
||||||
import fr.evolving.UI.Objectives;
|
import fr.evolving.UI.Objectives;
|
||||||
import fr.evolving.UI.ServerList;
|
import fr.evolving.UI.ServerList;
|
||||||
import fr.evolving.UI.Transhower;
|
import fr.evolving.UI.Transhower;
|
||||||
|
import fr.evolving.UI.Translist;
|
||||||
import fr.evolving.UI.WarnDialog;
|
import fr.evolving.UI.WarnDialog;
|
||||||
import fr.evolving.UI.Worldlist;
|
import fr.evolving.UI.Worldlist;
|
||||||
import fr.evolving.assets.AssetLoader;
|
import fr.evolving.assets.AssetLoader;
|
||||||
|
@ -63,7 +64,7 @@ public class LevelScreen implements Screen {
|
||||||
public ButtonLevel selected;
|
public ButtonLevel selected;
|
||||||
public int addervalue;
|
public int addervalue;
|
||||||
|
|
||||||
public Transhower test;
|
public Translist test;
|
||||||
|
|
||||||
|
|
||||||
public void play() {
|
public void play() {
|
||||||
|
@ -271,10 +272,17 @@ public class LevelScreen implements Screen {
|
||||||
}
|
}
|
||||||
|
|
||||||
public LevelScreen(Worlds aworlds) {
|
public LevelScreen(Worlds aworlds) {
|
||||||
test=new Transhower(AssetLoader.getTransmuter("--"),Transmuter.Angular.A270,true, new Color(0,1f,0f,1f));
|
Array<Transmuter> test2=new Array<Transmuter>();
|
||||||
test.setPosition(1920/2, 70);
|
test2.add(AssetLoader.getTransmuter("<>"));
|
||||||
test.setWidth(512);
|
test2.add(AssetLoader.getTransmuter(">"));
|
||||||
test.setHeight(512);
|
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;
|
this.worlds = aworlds;
|
||||||
addervalue=1;
|
addervalue=1;
|
||||||
worlds.addListener(new ChangeListener() {
|
worlds.addListener(new ChangeListener() {
|
||||||
|
|
Loading…
Reference in New Issue