From ae83f6448e7af924e81d5fb485089760821112dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20Hord=C3=A9?= Date: Fri, 1 Jul 2016 14:38:23 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20avancement=20du=20mode=20=C3=A9dition,?= =?UTF-8?q?=20cr=C3=A9ation=20de=20liens...etc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/src/fr/evolving/automata/Worlds.java | 39 ++++- core/src/fr/evolving/database/Base.java | 2 +- core/src/fr/evolving/database/LocalBase.java | 7 +- core/src/fr/evolving/screens/LevelScreen.java | 156 +++++++++++++----- 4 files changed, 154 insertions(+), 50 deletions(-) diff --git a/core/src/fr/evolving/automata/Worlds.java b/core/src/fr/evolving/automata/Worlds.java index 01440d2..186c307 100644 --- a/core/src/fr/evolving/automata/Worlds.java +++ b/core/src/fr/evolving/automata/Worlds.java @@ -418,15 +418,46 @@ public class Worlds extends Actor { return -1; } + public boolean getLockLevel() { + return getLockLevel(usedlevel.aLevel); + } + + public boolean getLockLevel(int levelid) { + Level level=findLevel(levelid); + if (level!=null) + return AssetLoader.Datahandler.user().getLevellock(0, level.id); + else + return false; + } + + public void LockLevel() { + if (usedlevel!=null) { + AssetLoader.Datahandler.user().setLevelunlock(0, usedlevel.id, true); + usedlevel.Locked=true; + } + } + + public void LockLevel(int levelid) { + Level level=findLevel(levelid); + if (level!=null) { + AssetLoader.Datahandler.user().setLevelunlock(0, level.id, true); + findLevel(levelid).Locked=true; + } + } + public void unLockLevel() { - AssetLoader.Datahandler.user().setLevelunlock(0, usedlevel.id); - usedlevel.Locked=false; + if (usedlevel!=null) { + AssetLoader.Datahandler.user().setLevelunlock(0, usedlevel.id, false); + usedlevel.Locked=false; + } } public void unLockLevel(int levelid) { Level level=findLevel(levelid); - AssetLoader.Datahandler.user().setLevelunlock(0, level.id); - findLevel(levelid).Locked=false; + if (level!=null) { + AssetLoader.Datahandler.user().setLevelunlock(0, level.id, false); + findLevel(levelid).Locked=false; + } } public void set(String campaign) { diff --git a/core/src/fr/evolving/database/Base.java b/core/src/fr/evolving/database/Base.java index 2102c42..ea9e26d 100644 --- a/core/src/fr/evolving/database/Base.java +++ b/core/src/fr/evolving/database/Base.java @@ -44,7 +44,7 @@ public abstract class Base { return false; } - public boolean setLevelunlock(int user, int level) { + public boolean setLevelunlock(int user, int level, boolean state) { return false; } diff --git a/core/src/fr/evolving/database/LocalBase.java b/core/src/fr/evolving/database/LocalBase.java index 072d26a..c93df48 100644 --- a/core/src/fr/evolving/database/LocalBase.java +++ b/core/src/fr/evolving/database/LocalBase.java @@ -183,10 +183,11 @@ public class LocalBase extends Base { return true; } - public boolean setLevelunlock(int user, int level) { + public boolean setLevelunlock(int user, int level, boolean state) { + String request="insert into locks (user,level) values (" + user + "," + level + ");"; + if (state) request="delete from locks where user="+user+" and level="+level+";"; try { - dbHandler.execSQL("insert into locks (user,level) values (" + user - + "," + level + ");"); + dbHandler.execSQL(request); } catch (SQLiteGdxException e) { return false; } diff --git a/core/src/fr/evolving/screens/LevelScreen.java b/core/src/fr/evolving/screens/LevelScreen.java index 79a069f..c45bb57 100644 --- a/core/src/fr/evolving/screens/LevelScreen.java +++ b/core/src/fr/evolving/screens/LevelScreen.java @@ -12,7 +12,9 @@ import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.Group; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.Stage; +import com.badlogic.gdx.scenes.scene2d.Touchable; import com.badlogic.gdx.scenes.scene2d.actions.Actions; +import com.badlogic.gdx.scenes.scene2d.ui.Button; import com.badlogic.gdx.scenes.scene2d.ui.ButtonGroup; import com.badlogic.gdx.scenes.scene2d.ui.Image; import com.badlogic.gdx.scenes.scene2d.ui.ImageButton; @@ -61,7 +63,7 @@ public class LevelScreen implements Screen { private Stage stage; private Table table; private WarningDialog dialog; - private ImageButton Previous, Next, Exit, logosmall, databaseSave, adder, signer, finisher, deletelinker, deletebutton, addbutton, unlocked, duplicate, moveit; + private ImageButton Previous, Next, Exit, logosmall, databaseSave, adder, signer, finisher, deletelinker, deletebutton, addbutton, unlocked, duplicate, moveit,modify, link; public Image MenuSolo, MenuMulti, MenuScenario; private ImageTextButton cout, tech, cycle, temp, rayon, nrj, up_cycle, up_temp, up_rayon, up_nrj, research, up; private TextButton buttonConnect, buttonPlay, buttonStat, buttonSave, buttonApply, buttonPlaythis; @@ -71,10 +73,10 @@ public class LevelScreen implements Screen { private TextArea TextDescriptive; public Worlds worlds; private Objectives Victory; - private VerticalGroup vertibar; + private VerticalGroup vertibar,vertibarmod; public ButtonLevel selected; public int addervalue; - public ButtonGroup chooser; + public ButtonGroup