fix: ajout d'un id pour les niveaux et ajout du champs grid_orig qui correspond à la grille originale, corrections de bogues, ajout de grilles spéciales (last= dernière grille) sauvegarde automatique lors de la sortie des niveaux, dialogue modale qui prévient lors de l'application des préférences.
This commit is contained in:
parent
83026ed654
commit
0fda8ec977
|
@ -13,6 +13,7 @@ public class InitWorlds {
|
||||||
thelevels[0]=new Level(
|
thelevels[0]=new Level(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Introduction",
|
"Introduction",
|
||||||
"Prise en main de l'interface de WireChem{#169} et amener l'électron neutre sur le senseur.",
|
"Prise en main de l'interface de WireChem{#169} et amener l'électron neutre sur le senseur.",
|
||||||
"e0",
|
"e0",
|
||||||
|
@ -38,6 +39,7 @@ public class InitWorlds {
|
||||||
thelevels[1]=new Level(
|
thelevels[1]=new Level(
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Trajectoires",
|
"Trajectoires",
|
||||||
"Comprendre les trajectoires empruntées par les électrons afin de mieux appréhender la conception de systèmes.",
|
"Comprendre les trajectoires empruntées par les électrons afin de mieux appréhender la conception de systèmes.",
|
||||||
"e0",
|
"e0",
|
||||||
|
@ -63,6 +65,7 @@ public class InitWorlds {
|
||||||
thelevels[2]=new Level(
|
thelevels[2]=new Level(
|
||||||
0,
|
0,
|
||||||
2,
|
2,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Pistes",
|
"Pistes",
|
||||||
"Utiliser des pistes afin de réaliser un circuit qui permet l'arrivée d'un électron neutre sur le senseur.",
|
"Utiliser des pistes afin de réaliser un circuit qui permet l'arrivée d'un électron neutre sur le senseur.",
|
||||||
"e0",
|
"e0",
|
||||||
|
@ -89,6 +92,7 @@ public class InitWorlds {
|
||||||
thelevels[3]=new Level(
|
thelevels[3]=new Level(
|
||||||
0,
|
0,
|
||||||
3,
|
3,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Positiveur",
|
"Positiveur",
|
||||||
"Comprendre le fonctionnement de l'élément positiveur et générer 8 électrons positifs sur le senseur.",
|
"Comprendre le fonctionnement de l'élément positiveur et générer 8 électrons positifs sur le senseur.",
|
||||||
"e+",
|
"e+",
|
||||||
|
@ -114,6 +118,7 @@ public class InitWorlds {
|
||||||
thelevels[4]=new Level(
|
thelevels[4]=new Level(
|
||||||
0,
|
0,
|
||||||
4,
|
4,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Super-électrons",
|
"Super-électrons",
|
||||||
"Générer 2 super-électrons negatifs par colision et les amener sur le senseur.",
|
"Générer 2 super-électrons negatifs par colision et les amener sur le senseur.",
|
||||||
"E-",
|
"E-",
|
||||||
|
@ -139,6 +144,7 @@ public class InitWorlds {
|
||||||
thelevels[5]=new Level(
|
thelevels[5]=new Level(
|
||||||
0,
|
0,
|
||||||
5,
|
5,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Activation",
|
"Activation",
|
||||||
"L'objectif est de générer 6 électrons neutres et de découvrir les liaisons de fibres par lesquelles transitent les photons. Certains modifieurs nécessitent désormais l'activation par des photons.",
|
"L'objectif est de générer 6 électrons neutres et de découvrir les liaisons de fibres par lesquelles transitent les photons. Certains modifieurs nécessitent désormais l'activation par des photons.",
|
||||||
"e0",
|
"e0",
|
||||||
|
@ -164,6 +170,7 @@ public class InitWorlds {
|
||||||
thelevels[6]=new Level(
|
thelevels[6]=new Level(
|
||||||
0,
|
0,
|
||||||
6,
|
6,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Fibres",
|
"Fibres",
|
||||||
"A vous de dessiner votre infrastructure à base de fibres et de pistes mais aussi de modifieur activable afin de faire parvenir des éléctrons positifs et neutres sur les senseurs.",
|
"A vous de dessiner votre infrastructure à base de fibres et de pistes mais aussi de modifieur activable afin de faire parvenir des éléctrons positifs et neutres sur les senseurs.",
|
||||||
"eX",
|
"eX",
|
||||||
|
@ -190,6 +197,7 @@ public class InitWorlds {
|
||||||
thelevels[7]=new Level(
|
thelevels[7]=new Level(
|
||||||
0,
|
0,
|
||||||
7,
|
7,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Protons",
|
"Protons",
|
||||||
"Générer deux protons sur le senseur en utilisant un réacteur et un super-positron. Le réacteur est un élément qui nécessite l'activation.",
|
"Générer deux protons sur le senseur en utilisant un réacteur et un super-positron. Le réacteur est un élément qui nécessite l'activation.",
|
||||||
"p",
|
"p",
|
||||||
|
@ -215,6 +223,7 @@ public class InitWorlds {
|
||||||
thelevels[8]=new Level(
|
thelevels[8]=new Level(
|
||||||
0,
|
0,
|
||||||
8,
|
8,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Hydrogène",
|
"Hydrogène",
|
||||||
"Générer le premier atome complet : l'hydrogène avec un proton et un électron négatif sur la couche K.",
|
"Générer le premier atome complet : l'hydrogène avec un proton et un électron négatif sur la couche K.",
|
||||||
"H",
|
"H",
|
||||||
|
@ -240,6 +249,7 @@ public class InitWorlds {
|
||||||
thelevels[9]=new Level(
|
thelevels[9]=new Level(
|
||||||
1,
|
1,
|
||||||
0,
|
0,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Deutérium",
|
"Deutérium",
|
||||||
"Générer le Deutérium, un isostope de l'hydrogène, celui-ci comporte un neutron en plus du proton et de l'électron négatif sur la couche K.",
|
"Générer le Deutérium, un isostope de l'hydrogène, celui-ci comporte un neutron en plus du proton et de l'électron négatif sur la couche K.",
|
||||||
"D",
|
"D",
|
||||||
|
@ -265,6 +275,7 @@ public class InitWorlds {
|
||||||
thelevels[10]=new Level(
|
thelevels[10]=new Level(
|
||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Tritium",
|
"Tritium",
|
||||||
"Générer le second isostope de l'hydrogène : cet atome plus lourd que le Deutérium comporte alors deux neutrons, un proton ainsi qu'un électron négatif sur la couche K.",
|
"Générer le second isostope de l'hydrogène : cet atome plus lourd que le Deutérium comporte alors deux neutrons, un proton ainsi qu'un électron négatif sur la couche K.",
|
||||||
"T",
|
"T",
|
||||||
|
@ -290,6 +301,7 @@ public class InitWorlds {
|
||||||
thelevels[11]=new Level(
|
thelevels[11]=new Level(
|
||||||
1,
|
1,
|
||||||
2,
|
2,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Hélium-4",
|
"Hélium-4",
|
||||||
"L'isotope le plus courant de l'Hélium dans l'atmosphère terrestre est l'Hélium-4. Générer le en associant deux protons, deux neutrons et deux électrons négatifs sur la couche K.",
|
"L'isotope le plus courant de l'Hélium dans l'atmosphère terrestre est l'Hélium-4. Générer le en associant deux protons, deux neutrons et deux électrons négatifs sur la couche K.",
|
||||||
"He",
|
"He",
|
||||||
|
@ -315,6 +327,7 @@ public class InitWorlds {
|
||||||
thelevels[12]=new Level(
|
thelevels[12]=new Level(
|
||||||
1,
|
1,
|
||||||
3,
|
3,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Hélium-3",
|
"Hélium-3",
|
||||||
"Générer le seul autre isotope stable de l'hélium, ce dernier n'étant présent qu'à l'état de traces sur Terre. Cet isotope comporte deux protons,un neutron et deux électrons négatifs sur la couche K.",
|
"Générer le seul autre isotope stable de l'hélium, ce dernier n'étant présent qu'à l'état de traces sur Terre. Cet isotope comporte deux protons,un neutron et deux électrons négatifs sur la couche K.",
|
||||||
"He",
|
"He",
|
||||||
|
@ -340,6 +353,7 @@ public class InitWorlds {
|
||||||
thelevels[13]=new Level(
|
thelevels[13]=new Level(
|
||||||
1,
|
1,
|
||||||
4,
|
4,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Hélium-8",
|
"Hélium-8",
|
||||||
"l'Hélium-8 est le plus étudié des isotopes lourds de l'Hélium avec l'Hélium-6. Cet isostope comporte deux protons, six neutrons et deux électrons négatifs sur la couche K.",
|
"l'Hélium-8 est le plus étudié des isotopes lourds de l'Hélium avec l'Hélium-6. Cet isostope comporte deux protons, six neutrons et deux électrons négatifs sur la couche K.",
|
||||||
"He",
|
"He",
|
||||||
|
@ -365,6 +379,7 @@ public class InitWorlds {
|
||||||
thelevels[14]=new Level(
|
thelevels[14]=new Level(
|
||||||
1,
|
1,
|
||||||
5,
|
5,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Lithium",
|
"Lithium",
|
||||||
"Générer un isostope de l'hydrogène qui comporte un proton et un neutron ainsi qu'un électron négatif sur la couche K.",
|
"Générer un isostope de l'hydrogène qui comporte un proton et un neutron ainsi qu'un électron négatif sur la couche K.",
|
||||||
"Li",
|
"Li",
|
||||||
|
@ -390,6 +405,7 @@ public class InitWorlds {
|
||||||
thelevels[15]=new Level(
|
thelevels[15]=new Level(
|
||||||
1,
|
1,
|
||||||
6,
|
6,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Carbone",
|
"Carbone",
|
||||||
"Générer un isostope de l'hydrogène qui comporte un proton et un neutron ainsi qu'un électron négatif sur la couche K.",
|
"Générer un isostope de l'hydrogène qui comporte un proton et un neutron ainsi qu'un électron négatif sur la couche K.",
|
||||||
"C",
|
"C",
|
||||||
|
@ -415,6 +431,7 @@ public class InitWorlds {
|
||||||
thelevels[16]=new Level(
|
thelevels[16]=new Level(
|
||||||
1,
|
1,
|
||||||
7,
|
7,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Oxygène",
|
"Oxygène",
|
||||||
"Générer un isostope de l'hydrogène qui comporte un proton et un neutron ainsi qu'un électron négatif sur la couche K.",
|
"Générer un isostope de l'hydrogène qui comporte un proton et un neutron ainsi qu'un électron négatif sur la couche K.",
|
||||||
"O",
|
"O",
|
||||||
|
@ -440,6 +457,7 @@ public class InitWorlds {
|
||||||
thelevels[17]=new Level(
|
thelevels[17]=new Level(
|
||||||
1,
|
1,
|
||||||
8,
|
8,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"Néon",
|
"Néon",
|
||||||
"Générer le premier atome complet : l'hydrogène avec un proton et un électron négatif sur la couche K.",
|
"Générer le premier atome complet : l'hydrogène avec un proton et un électron négatif sur la couche K.",
|
||||||
"Ne",
|
"Ne",
|
||||||
|
@ -465,6 +483,7 @@ public class InitWorlds {
|
||||||
thelevels[18]=new Level(
|
thelevels[18]=new Level(
|
||||||
2,
|
2,
|
||||||
1,
|
1,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"test",
|
"test",
|
||||||
"C'est un test.",
|
"C'est un test.",
|
||||||
"e0",
|
"e0",
|
||||||
|
@ -490,6 +509,7 @@ public class InitWorlds {
|
||||||
thelevels[19]=new Level(
|
thelevels[19]=new Level(
|
||||||
2,
|
2,
|
||||||
2,
|
2,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"test",
|
"test",
|
||||||
"C'est un test.",
|
"C'est un test.",
|
||||||
"e0",
|
"e0",
|
||||||
|
@ -516,6 +536,7 @@ public class InitWorlds {
|
||||||
thelevels[20]=new Level(
|
thelevels[20]=new Level(
|
||||||
3,
|
3,
|
||||||
1,
|
1,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"test",
|
"test",
|
||||||
"C'est un test.",
|
"C'est un test.",
|
||||||
"e0",
|
"e0",
|
||||||
|
@ -543,6 +564,7 @@ public class InitWorlds {
|
||||||
thelevels[21]=new Level(
|
thelevels[21]=new Level(
|
||||||
3,
|
3,
|
||||||
2,
|
2,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"test",
|
"test",
|
||||||
"C'est un test.",
|
"C'est un test.",
|
||||||
"e0",
|
"e0",
|
||||||
|
@ -568,6 +590,7 @@ public class InitWorlds {
|
||||||
thelevels[22]=new Level(
|
thelevels[22]=new Level(
|
||||||
4,
|
4,
|
||||||
1,
|
1,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"test",
|
"test",
|
||||||
"C'est un test.",
|
"C'est un test.",
|
||||||
"e0",
|
"e0",
|
||||||
|
@ -595,6 +618,7 @@ public class InitWorlds {
|
||||||
thelevels[23]=new Level(
|
thelevels[23]=new Level(
|
||||||
4,
|
4,
|
||||||
2,
|
2,
|
||||||
|
(int)(Math.random()*Integer.MAX_VALUE),
|
||||||
"test",
|
"test",
|
||||||
"C'est un test.",
|
"C'est un test.",
|
||||||
"e0",
|
"e0",
|
||||||
|
|
|
@ -6,15 +6,17 @@ public class Level implements Serializable{
|
||||||
public String Name;
|
public String Name;
|
||||||
public String Description;
|
public String Description;
|
||||||
public String Element;
|
public String Element;
|
||||||
public int[] Current;
|
public transient int[] Current;
|
||||||
public int[] Victory;
|
public int[] Victory;
|
||||||
public int aWorld;
|
public int aWorld;
|
||||||
public int aLevel;
|
public int aLevel;
|
||||||
|
public int id;
|
||||||
public float X;
|
public float X;
|
||||||
public float Y;
|
public float Y;
|
||||||
public int Tech;
|
public int Tech;
|
||||||
public int Cout;
|
public int Cout;
|
||||||
public Grid Grid;
|
public Grid Grid_orig;
|
||||||
|
public transient Grid Grid;
|
||||||
public int Cycle;
|
public int Cycle;
|
||||||
public int Temp;
|
public int Temp;
|
||||||
public int Rayon;
|
public int Rayon;
|
||||||
|
@ -27,9 +29,10 @@ public class Level implements Serializable{
|
||||||
public String Tuto;
|
public String Tuto;
|
||||||
public int[][] Link;
|
public int[][] Link;
|
||||||
|
|
||||||
public Level(int aWorld, int aLevel,String Name,String Description,String Element,int[] Current,int[] Victory,float X,float Y,int Tech,int Cout,Grid World,int Cycle,int Temp,int Rayon,int Nrj,int Maxcycle,int Maxtemp,int Maxrayon,int Maxnrj,String Tuto,boolean Special, int[][] Link){
|
public Level(int aWorld, int aLevel,int id,String Name,String Description,String Element,int[] Current,int[] Victory,float X,float Y,int Tech,int Cout,Grid World,int Cycle,int Temp,int Rayon,int Nrj,int Maxcycle,int Maxtemp,int Maxrayon,int Maxnrj,String Tuto,boolean Special, int[][] Link){
|
||||||
this.aWorld=aWorld;
|
this.aWorld=aWorld;
|
||||||
this.aLevel=aLevel;
|
this.aLevel=aLevel;
|
||||||
|
this.id=id;
|
||||||
this.Name=Name;
|
this.Name=Name;
|
||||||
this.Description=Description;
|
this.Description=Description;
|
||||||
this.Element=Element;
|
this.Element=Element;
|
||||||
|
@ -40,6 +43,7 @@ public Level(int aWorld, int aLevel,String Name,String Description,String Elemen
|
||||||
this.Tech=Tech;
|
this.Tech=Tech;
|
||||||
this.Cout=Cout;
|
this.Cout=Cout;
|
||||||
this.Grid=World;
|
this.Grid=World;
|
||||||
|
this.Grid_orig=World;
|
||||||
this.Cycle=Cycle;
|
this.Cycle=Cycle;
|
||||||
this.Temp=Temp;
|
this.Temp=Temp;
|
||||||
this.Rayon=Rayon;
|
this.Rayon=Rayon;
|
||||||
|
|
|
@ -66,6 +66,14 @@ public abstract class Base {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Grid getGrid(int user,int level, String tag){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean setGrid(int user,int level, String tag, Grid data){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean setGrid(int user,int level, Grid data){
|
public boolean setGrid(int user,int level, Grid data){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,7 +96,7 @@ public class LocalBase extends Base {
|
||||||
creation = "create table if not exists stat (id integer)";
|
creation = "create table if not exists stat (id integer)";
|
||||||
else if (model==datatype.userdata) {
|
else if (model==datatype.userdata) {
|
||||||
dbHandler.execSQL("CREATE TABLE if not exists locks(date DATETIME DEFAULT CURRENT_TIMESTAMP, level INTEGER NOT NULL, user INTEGER NOT NULL, PRIMARY KEY(level,user));");
|
dbHandler.execSQL("CREATE TABLE if not exists locks(date DATETIME DEFAULT CURRENT_TIMESTAMP, level INTEGER NOT NULL, user INTEGER NOT NULL, PRIMARY KEY(level,user));");
|
||||||
dbHandler.execSQL("CREATE TABLE if not exists grids(date DATETIME DEFAULT CURRENT_TIMESTAMP, level INTEGER NOT NULL, user INTEGER NOT NULL, object TEXT, PRIMARY KEY(level,user,date));");
|
dbHandler.execSQL("CREATE TABLE if not exists grids(date DATETIME DEFAULT CURRENT_TIMESTAMP, level INTEGER NOT NULL, user INTEGER NOT NULL, tag TEXT, object TEXT, PRIMARY KEY(level,user,date));");
|
||||||
dbHandler.execSQL("CREATE TABLE if not exists transmuters(date DATETIME DEFAULT CURRENT_TIMESTAMP, user INTEGER NOT NULL, object TEXT, PRIMARY KEY(user));");
|
dbHandler.execSQL("CREATE TABLE if not exists transmuters(date DATETIME DEFAULT CURRENT_TIMESTAMP, user INTEGER NOT NULL, object TEXT, PRIMARY KEY(user));");
|
||||||
dbHandler.execSQL("CREATE TABLE if not exists research(date DATETIME DEFAULT CURRENT_TIMESTAMP, user INTEGER NOT NULL, value INT, PRIMARY KEY(user));");
|
dbHandler.execSQL("CREATE TABLE if not exists research(date DATETIME DEFAULT CURRENT_TIMESTAMP, user INTEGER NOT NULL, value INT, PRIMARY KEY(user));");
|
||||||
}
|
}
|
||||||
|
@ -132,9 +132,7 @@ public class LocalBase extends Base {
|
||||||
Level[] mc=null;
|
Level[] mc=null;
|
||||||
if (cursor.next())
|
if (cursor.next())
|
||||||
try {
|
try {
|
||||||
Gdx.app.debug(getClass().getSimpleName(),"TEST2");
|
|
||||||
byte[] bytes = Base64Coder.decodeLines(cursor.getString(0));
|
byte[] bytes = Base64Coder.decodeLines(cursor.getString(0));
|
||||||
Gdx.app.debug(getClass().getSimpleName(),"TEST3");
|
|
||||||
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
|
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
|
||||||
ObjectInputStream ins = new ObjectInputStream(bais);
|
ObjectInputStream ins = new ObjectInputStream(bais);
|
||||||
mc=(Level[]) ins.readObject();
|
mc=(Level[]) ins.readObject();
|
||||||
|
@ -264,7 +262,30 @@ public class LocalBase extends Base {
|
||||||
public Grid getGrid(int user,int level,int place){
|
public Grid getGrid(int user,int level,int place){
|
||||||
DatabaseCursor cursor=null;
|
DatabaseCursor cursor=null;
|
||||||
try {
|
try {
|
||||||
cursor = dbHandler.rawQuery("select object from grids where user="+user+" and level="+level+" order by date desc limit "+place+",1;");
|
cursor = dbHandler.rawQuery("select object from grids where user="+user+" and level="+level+" and tag is null order by date desc limit "+place+",1;");
|
||||||
|
} catch (SQLiteGdxException e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
Grid mc=null;
|
||||||
|
if (cursor.next())
|
||||||
|
try {
|
||||||
|
byte[] bytes = DatatypeConverter.parseBase64Binary(cursor.getString(0));
|
||||||
|
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
|
||||||
|
ObjectInputStream ins = new ObjectInputStream(bais);
|
||||||
|
mc=(Grid) ins.readObject();
|
||||||
|
ins.close();
|
||||||
|
return mc;
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Grid getGrid(int user,int level,String tag){
|
||||||
|
DatabaseCursor cursor=null;
|
||||||
|
try {
|
||||||
|
cursor = dbHandler.rawQuery("select object from grids where user="+user+" and level="+level+" and tag='"+tag+"' order by date desc limit 1;");
|
||||||
} catch (SQLiteGdxException e) {
|
} catch (SQLiteGdxException e) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -302,10 +323,32 @@ public class LocalBase extends Base {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean setGrid(int user,int level, String tag, Grid data){
|
||||||
|
String encoded = "";
|
||||||
|
try {
|
||||||
|
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||||
|
ObjectOutputStream oos = new ObjectOutputStream(bos);
|
||||||
|
oos.writeObject(data);
|
||||||
|
oos.flush();
|
||||||
|
oos.close();
|
||||||
|
bos.close();
|
||||||
|
byte[] bytes = bos.toByteArray();
|
||||||
|
encoded = DatatypeConverter.printBase64Binary(bytes);
|
||||||
|
try {
|
||||||
|
dbHandler.rawQuery("delete from grids where user="+user+" and level="+level+" and tag='"+tag+"';");
|
||||||
|
} catch (Exception e) {}
|
||||||
|
dbHandler.rawQuery("insert into grids (user,level,tag,object) values ("+user+","+level+",'"+tag+"','"+encoded+"');");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public Array<String> getGrids(int user, int level){
|
public Array<String> getGrids(int user, int level){
|
||||||
DatabaseCursor cursor=null;
|
DatabaseCursor cursor=null;
|
||||||
try {
|
try {
|
||||||
cursor = dbHandler.rawQuery("select date from grids where level="+level+" and user="+user+" order by date desc;");
|
cursor = dbHandler.rawQuery("select date from grids where level="+level+" and user="+user+" and tag is null order by date desc;");
|
||||||
} catch (SQLiteGdxException e) {
|
} catch (SQLiteGdxException e) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,9 @@ import fr.evolving.renderers.LevelRenderer;
|
||||||
import fr.evolving.UI.ButtonLevel;
|
import fr.evolving.UI.ButtonLevel;
|
||||||
import fr.evolving.UI.Objectives;
|
import fr.evolving.UI.Objectives;
|
||||||
import fr.evolving.UI.TouchMaptiles;
|
import fr.evolving.UI.TouchMaptiles;
|
||||||
|
import fr.evolving.UI.WarnDialog;
|
||||||
import fr.evolving.assets.AssetLoader;
|
import fr.evolving.assets.AssetLoader;
|
||||||
|
import fr.evolving.assets.InitWorlds;
|
||||||
import fr.evolving.assets.Preference;
|
import fr.evolving.assets.Preference;
|
||||||
import fr.evolving.automata.Level;
|
import fr.evolving.automata.Level;
|
||||||
import fr.evolving.automata.Positiver_I;
|
import fr.evolving.automata.Positiver_I;
|
||||||
|
@ -80,6 +82,7 @@ public class GameScreen implements Screen {
|
||||||
private InputMultiplexer multiplexer;
|
private InputMultiplexer multiplexer;
|
||||||
private Array<InputProcessor> processors;
|
private Array<InputProcessor> processors;
|
||||||
private Timer ScrollTimer;
|
private Timer ScrollTimer;
|
||||||
|
private WarnDialog dialog;
|
||||||
private TimerTask ScrollTask;
|
private TimerTask ScrollTask;
|
||||||
private Stage stage,stage_menu,stage_info,stage_tooltip;
|
private Stage stage,stage_menu,stage_info,stage_tooltip;
|
||||||
private HorizontalGroup table;
|
private HorizontalGroup table;
|
||||||
|
@ -192,7 +195,21 @@ public class GameScreen implements Screen {
|
||||||
|
|
||||||
// This is the constructor, not the class declaration
|
// This is the constructor, not the class declaration
|
||||||
public GameScreen(Level alevel) {
|
public GameScreen(Level alevel) {
|
||||||
Gdx.app.debug(getClass().getSimpleName(),"Création des Barres verticales & horizontales");
|
this.level=alevel;
|
||||||
|
Gdx.app.debug(getClass().getSimpleName(),"Récupération des derniers niveaux.");
|
||||||
|
this.level.Grid=AssetLoader.Datahandler.user().getGrid(0, this.level.id, "LAST");
|
||||||
|
if (this.level.Grid==null) {
|
||||||
|
Gdx.app.debug(getClass().getSimpleName(),"Copie monde original.");
|
||||||
|
this.level.Grid=this.level.Grid_orig;
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Gdx.app.debug(getClass().getSimpleName(),"Récupération de la dernière grille.");
|
||||||
|
this.level.Grid.tiling_copper();
|
||||||
|
this.level.Grid.tiling_transmuter();
|
||||||
|
}
|
||||||
|
Gdx.app.debug(getClass().getSimpleName(),"Création des Barres verticales & horizontales.");
|
||||||
table = new HorizontalGroup();
|
table = new HorizontalGroup();
|
||||||
table.bottom().padLeft(5f).padBottom(8f).space(10f);
|
table.bottom().padLeft(5f).padBottom(8f).space(10f);
|
||||||
table2 = new VerticalGroup();
|
table2 = new VerticalGroup();
|
||||||
|
@ -208,7 +225,6 @@ public class GameScreen implements Screen {
|
||||||
stage_menu = new Stage(AssetLoader.viewport);
|
stage_menu = new Stage(AssetLoader.viewport);
|
||||||
stage_info = new Stage(AssetLoader.viewport);
|
stage_info = new Stage(AssetLoader.viewport);
|
||||||
stage_tooltip = new Stage(AssetLoader.viewport);
|
stage_tooltip = new Stage(AssetLoader.viewport);
|
||||||
this.level=alevel;
|
|
||||||
oldx=0;
|
oldx=0;
|
||||||
oldy=0;
|
oldy=0;
|
||||||
unroll=false;
|
unroll=false;
|
||||||
|
@ -280,6 +296,17 @@ public class GameScreen implements Screen {
|
||||||
objectives.setPosition(890,AssetLoader.height-95);
|
objectives.setPosition(890,AssetLoader.height-95);
|
||||||
buttonlevel=new ButtonLevel(level,true,1.0f);
|
buttonlevel=new ButtonLevel(level,true,1.0f);
|
||||||
buttonlevel.setPosition(1760,AssetLoader.height-125);
|
buttonlevel.setPosition(1760,AssetLoader.height-125);
|
||||||
|
buttonlevel.addListener(new ClickListener() {
|
||||||
|
@Override
|
||||||
|
public void clicked(InputEvent event, float x, float y) {
|
||||||
|
Gdx.app.debug(getClass().getSimpleName(),"Remise à zéro du monde");
|
||||||
|
GameScreen.this.level.Grid=GameScreen.this.level.Grid_orig;
|
||||||
|
level.Grid.tiling_copper();
|
||||||
|
level.Grid.tiling_transmuter();
|
||||||
|
map.redraw(53);
|
||||||
|
buttonlevel.setChecked(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
Gdx.app.debug(getClass().getSimpleName(),"Création de la barre d'information");
|
Gdx.app.debug(getClass().getSimpleName(),"Création de la barre d'information");
|
||||||
info_tech=new ImageTextButton("0",AssetLoader.Skin_level,"info_tech");
|
info_tech=new ImageTextButton("0",AssetLoader.Skin_level,"info_tech");
|
||||||
info_tech.setSize(48, 48);
|
info_tech.setSize(48, 48);
|
||||||
|
@ -317,9 +344,11 @@ public class GameScreen implements Screen {
|
||||||
info_nom.setPosition(1230, AssetLoader.height-710);
|
info_nom.setPosition(1230, AssetLoader.height-710);
|
||||||
info_desc=new TextArea("Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description", AssetLoader.Skin_level, "info_desc") ;
|
info_desc=new TextArea("Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description", AssetLoader.Skin_level, "info_desc") ;
|
||||||
info_desc.setBounds(1220, AssetLoader.height-965, 575, 150);
|
info_desc.setBounds(1220, AssetLoader.height-965, 575, 150);
|
||||||
|
dialog=new WarnDialog(AssetLoader.Skin_ui);
|
||||||
Gdx.app.debug(getClass().getSimpleName(),"Création d'une tilemap");
|
Gdx.app.debug(getClass().getSimpleName(),"Création d'une tilemap");
|
||||||
map=new TouchMaptiles(level,128,128);
|
map=new TouchMaptiles(level,128,128);
|
||||||
map.setBounds(0, 0, AssetLoader.width, AssetLoader.height);
|
map.setBounds(0, 0, AssetLoader.width, AssetLoader.height);
|
||||||
|
map.redraw(53);
|
||||||
map.addListener(new ActorGestureListener(){
|
map.addListener(new ActorGestureListener(){
|
||||||
@Override
|
@Override
|
||||||
public void zoom(InputEvent event, float initialDistance, float distance) {
|
public void zoom(InputEvent event, float initialDistance, float distance) {
|
||||||
|
@ -722,16 +751,18 @@ public class GameScreen implements Screen {
|
||||||
readsaved();
|
readsaved();
|
||||||
}
|
}
|
||||||
else if (caller.getName()=="save") {
|
else if (caller.getName()=="save") {
|
||||||
AssetLoader.Datahandler.user().setGrid(0, level.aLevel, level.Grid);
|
AssetLoader.Datahandler.user().setGrid(0, level.id, level.Grid);
|
||||||
readsaved();
|
readsaved();
|
||||||
}
|
}
|
||||||
else if (caller.getName()=="levels") {
|
else if (caller.getName()=="levels") {
|
||||||
Gdx.app.debug("Barre","Affichage des niveaux.");
|
Gdx.app.debug("Barre","Affichage des niveaux.");
|
||||||
|
AssetLoader.Datahandler.user().setGrid(0, level.id, "LAST",this.level.Grid);
|
||||||
((Game)Gdx.app.getApplicationListener()).setScreen(new LevelScreen(level.aWorld));
|
((Game)Gdx.app.getApplicationListener()).setScreen(new LevelScreen(level.aWorld));
|
||||||
}
|
}
|
||||||
else if (caller.getName()=="tree") {
|
else if (caller.getName()=="tree") {
|
||||||
}
|
}
|
||||||
else if (caller.getName()=="exits") {
|
else if (caller.getName()=="exits") {
|
||||||
|
AssetLoader.Datahandler.user().setGrid(0, level.id, "LAST",this.level.Grid);
|
||||||
Gdx.app.exit();
|
Gdx.app.exit();
|
||||||
}
|
}
|
||||||
else if (caller.getName()=="screen") {
|
else if (caller.getName()=="screen") {
|
||||||
|
@ -927,7 +958,7 @@ public class GameScreen implements Screen {
|
||||||
selSaved.addListener(new ClickListener(){
|
selSaved.addListener(new ClickListener(){
|
||||||
public void clicked(InputEvent event, float x, float y) {
|
public void clicked(InputEvent event, float x, float y) {
|
||||||
if (this.getTapCount()>1)
|
if (this.getTapCount()>1)
|
||||||
level.Grid=AssetLoader.Datahandler.user().getGrid(0, level.aLevel, selSaved.getSelectedIndex());
|
level.Grid=AssetLoader.Datahandler.user().getGrid(0, level.id, selSaved.getSelectedIndex());
|
||||||
level.Grid.tiling_copper();
|
level.Grid.tiling_copper();
|
||||||
level.Grid.tiling_transmuter();
|
level.Grid.tiling_transmuter();
|
||||||
map.redraw(53);
|
map.redraw(53);
|
||||||
|
@ -939,8 +970,9 @@ public class GameScreen implements Screen {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void readsaved() {
|
public void readsaved() {
|
||||||
selSaved.setItems(AssetLoader.Datahandler.user().getGrids(0, level.aLevel));
|
Array<String> items=AssetLoader.Datahandler.user().getGrids(0, level.id);
|
||||||
|
if (items!=null)
|
||||||
|
selSaved.setItems(items);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Table Createoption() {
|
public Table Createoption() {
|
||||||
|
@ -1098,6 +1130,7 @@ public class GameScreen implements Screen {
|
||||||
private void onSaveClicked() {
|
private void onSaveClicked() {
|
||||||
winOptions.setVisible(false);
|
winOptions.setVisible(false);
|
||||||
writepref();
|
writepref();
|
||||||
|
dialog.Show("Veuillez redémmarrer pour que les préférences soient appliquées.", stage);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onCancelClicked() {
|
private void onCancelClicked() {
|
||||||
|
|
|
@ -84,7 +84,6 @@ public class LevelScreen implements Screen {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void play() {
|
public void play() {
|
||||||
//thelevels= InitWorlds.go();
|
|
||||||
if (!AssetLoader.Datahandler.verifyall())
|
if (!AssetLoader.Datahandler.verifyall())
|
||||||
Gdx.app.debug(getClass().getSimpleName(),"Pilotes de bases de donnée défaillant.");
|
Gdx.app.debug(getClass().getSimpleName(),"Pilotes de bases de donnée défaillant.");
|
||||||
else
|
else
|
||||||
|
@ -94,6 +93,8 @@ public class LevelScreen implements Screen {
|
||||||
if (world<0)
|
if (world<0)
|
||||||
world=0;
|
world=0;
|
||||||
thelevels=AssetLoader.Datahandler.game().getworld(Preference.prefs.getString("world"));
|
thelevels=AssetLoader.Datahandler.game().getworld(Preference.prefs.getString("world"));
|
||||||
|
/*thelevels= InitWorlds.go();
|
||||||
|
AssetLoader.Datahandler.game().setworld(thelevels,Preference.prefs.getString("world")); */
|
||||||
loadWorld(world);
|
loadWorld(world);
|
||||||
Previous.setVisible(true);
|
Previous.setVisible(true);
|
||||||
Next.setVisible(true);
|
Next.setVisible(true);
|
||||||
|
@ -492,19 +493,7 @@ public class LevelScreen implements Screen {
|
||||||
Worlddatalabel.setPosition(1480, 300);
|
Worlddatalabel.setPosition(1480, 300);
|
||||||
Gamedata.setWorldlist(Worlddata);
|
Gamedata.setWorldlist(Worlddata);
|
||||||
Statdata.Refresh();
|
Statdata.Refresh();
|
||||||
try {
|
|
||||||
Thread.sleep(1000);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
Userdata.Refresh();
|
Userdata.Refresh();
|
||||||
try {
|
|
||||||
Thread.sleep(1000);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
Gamedata.Refresh();
|
Gamedata.Refresh();
|
||||||
Gdx.app.debug(getClass().getSimpleName(),"Affichage du menu.");
|
Gdx.app.debug(getClass().getSimpleName(),"Affichage du menu.");
|
||||||
if (aworld!=-1)
|
if (aworld!=-1)
|
||||||
|
|
Loading…
Reference in New Issue