diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000000000000000000000000000000000..68d498f6e44899a805df4209ee14c4edb1f2a631 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "core/src/cz/nic/tablexia/shared"] + path = core/src/cz/nic/tablexia/shared + url = git@gitlab.labs.nic.cz:mlatner/Tablexia-Model.git diff --git a/core/src/cz/nic/tablexia/TablexiaSettings.java b/core/src/cz/nic/tablexia/TablexiaSettings.java index dbed7b65c0ab6756ddbcf8598aea7067a12da67d..fdbe4957946223ec0ca566acaace9480e9d2fcdd 100644 --- a/core/src/cz/nic/tablexia/TablexiaSettings.java +++ b/core/src/cz/nic/tablexia/TablexiaSettings.java @@ -11,7 +11,8 @@ import cz.nic.tablexia.bus.ApplicationBus; import cz.nic.tablexia.game.GameDefinition; import cz.nic.tablexia.game.difficulty.GameDifficulty; import cz.nic.tablexia.loader.application.ApplicationTextManager; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.model.UserDAO; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.screen.AbstractTablexiaScreen; import cz.nic.tablexia.screen.gamemenu.GameMenuScreen; import cz.nic.tablexia.screen.loader.LoaderScreen; @@ -163,7 +164,7 @@ public class TablexiaSettings { public void loadPreferences(boolean reset) { preferences = Gdx.app.getPreferences(PREFERENCES_KEY + BUILD_TYPE.getKey()); selectedLocale = LocaleDefinition.getLocaleDefinitionForKey(preferences.getString(LOCALE_KEY)); - selectedUser = reset ? null : User.selectUser(preferences.getLong(SELECTED_USER)); + selectedUser = reset ? null : UserDAO.selectUser(preferences.getLong(SELECTED_USER)); } diff --git a/core/src/cz/nic/tablexia/TablexiaStorage.java b/core/src/cz/nic/tablexia/TablexiaStorage.java index f5573a642e14f34644178f93781047380630fd05..77bcaf315cebc6ac333cb1f343bf1eb12fb33170 100644 --- a/core/src/cz/nic/tablexia/TablexiaStorage.java +++ b/core/src/cz/nic/tablexia/TablexiaStorage.java @@ -17,9 +17,10 @@ import java.util.Map; import cz.nic.tablexia.bus.ApplicationBus; import cz.nic.tablexia.loader.TablexiaAbstractFileManager; +import cz.nic.tablexia.model.UserDAO; import cz.nic.tablexia.model.game.Game; import cz.nic.tablexia.model.game.GamePause; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.model.game.GameScore; import cz.nic.tablexia.screen.AbstractTablexiaScreen; import cz.nic.tablexia.util.Log; @@ -121,7 +122,7 @@ public class TablexiaStorage { private void initTables() { try { Statement statement = createStatement(); - statement.execute(User.CREATE_TABLE); + statement.execute(UserDAO.CREATE_TABLE); statement.execute(Game.CREATE_TABLE); statement.execute(GameScore.CREATE_TABLE); statement.execute(GamePause.CREATE_TABLE); @@ -134,7 +135,7 @@ public class TablexiaStorage { } private void MigrateData() { - User.migrateUserSignaturesData(); + UserDAO.migrateUserSignaturesData(); } private void reset(boolean reset) { diff --git a/core/src/cz/nic/tablexia/debug/DebugInfo.java b/core/src/cz/nic/tablexia/debug/DebugInfo.java index a7f1435ebcf5e21b965156a47f40c5c263b37f6b..ef726f3f2746ec69853b97872c6a65360dcab43d 100644 --- a/core/src/cz/nic/tablexia/debug/DebugInfo.java +++ b/core/src/cz/nic/tablexia/debug/DebugInfo.java @@ -22,7 +22,7 @@ import cz.nic.tablexia.TablexiaApplication.ScreenChangedEvent; import cz.nic.tablexia.TablexiaSettings; import cz.nic.tablexia.bus.ApplicationBus; import cz.nic.tablexia.loader.application.ApplicationAtlasManager; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.screen.AbstractTablexiaScreen.ScreenInfoEvent; import static com.badlogic.gdx.scenes.scene2d.actions.Actions.alpha; diff --git a/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java b/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java index 6155dbd0882d0983700260eca8de0897736ecd3b..c3c8eda74825f38319d3a857acdeb1b5f7386f26 100644 --- a/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java +++ b/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java @@ -41,6 +41,7 @@ import cz.nic.tablexia.loader.application.ApplicationFontManager; import cz.nic.tablexia.loader.application.ApplicationTextManager; import cz.nic.tablexia.menu.AbstractMenu; import cz.nic.tablexia.menu.main.MainMenu; +import cz.nic.tablexia.model.UserDAO; import cz.nic.tablexia.model.game.Game; import cz.nic.tablexia.screen.AbstractTablexiaScreen; import cz.nic.tablexia.screen.gamemenu.GameMenuScreen; @@ -280,7 +281,7 @@ public abstract class AbstractTablexiaGame<T> extends AbstractTablexiaScreen<T> // create new TablexiaRandom random = TablexiaSettings.GAMES_RANDOM_SEED == null ? new TablexiaRandom() : new TablexiaRandom(TablexiaSettings.GAMES_RANDOM_SEED); GameDefinition gameDefinition = GameDefinition.getGameDefinitionForClass(AbstractTablexiaGame.this.getClass()); - GameDifficulty gameDifficulty = gameDefinition.hasTutorial() && getSelectedUser().isTutorialForGameDefinition(gameDefinition) ? GameDifficulty.TUTORIAL : TablexiaSettings.getInstance().getGameDifficulty(gameDefinition); + GameDifficulty gameDifficulty = gameDefinition.hasTutorial() && UserDAO.isTutorialForGameDefinition(gameDefinition, getSelectedUser()) ? GameDifficulty.TUTORIAL : TablexiaSettings.getInstance().getGameDifficulty(gameDefinition); game = Game.createGame(getSelectedUser(), gameDifficulty, gameDefinition, random); Log.info(getClass(), "[DB] Created new GAME object: " + game); } else { diff --git a/core/src/cz/nic/tablexia/game/games/robbery/RobberyGame.java b/core/src/cz/nic/tablexia/game/games/robbery/RobberyGame.java index 39d31cb47d3e6c4d48f07e5d31c66a56e8c484c9..be2732b27c4a2827e5c8c5bd94707dc1d3484ad6 100644 --- a/core/src/cz/nic/tablexia/game/games/robbery/RobberyGame.java +++ b/core/src/cz/nic/tablexia/game/games/robbery/RobberyGame.java @@ -19,7 +19,7 @@ import cz.nic.tablexia.game.games.robbery.creature.CreatureFactory; import cz.nic.tablexia.game.games.robbery.rules.GameRule; import cz.nic.tablexia.game.games.robbery.rules.GameRulesDefinition; import cz.nic.tablexia.loader.application.ApplicationTextManager; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.model.game.Game; import cz.nic.tablexia.screen.AbstractTablexiaScreen; import cz.nic.tablexia.util.ScaleUtil; diff --git a/core/src/cz/nic/tablexia/game/trophy/GameTrophyDefinition.java b/core/src/cz/nic/tablexia/game/trophy/GameTrophyDefinition.java index 5bd23ec312d85dfe1850bf98ba886d1487790918..60188ee5664f2d15438021a7dd851cb294d89d03 100644 --- a/core/src/cz/nic/tablexia/game/trophy/GameTrophyDefinition.java +++ b/core/src/cz/nic/tablexia/game/trophy/GameTrophyDefinition.java @@ -21,7 +21,7 @@ package cz.nic.tablexia.game.trophy; import cz.nic.tablexia.game.GameDefinition; import cz.nic.tablexia.game.difficulty.GameDifficulty; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.model.game.GameTrophy; /** diff --git a/core/src/cz/nic/tablexia/game/trophy/ITrophyDefinition.java b/core/src/cz/nic/tablexia/game/trophy/ITrophyDefinition.java index cd368c8976b8d346e7224e1893de779eab4494e8..a73024f38a4877babdeb4e8f55e39abaa2daeccb 100644 --- a/core/src/cz/nic/tablexia/game/trophy/ITrophyDefinition.java +++ b/core/src/cz/nic/tablexia/game/trophy/ITrophyDefinition.java @@ -18,18 +18,13 @@ ******************************************************************************/ package cz.nic.tablexia.game.trophy; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; - -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.shared.model.User; public interface ITrophyDefinition { - public String getTrophyName(); - public String getTrophyDescription(); - public boolean hasTrophy(User user); - public String name(); + String getTrophyName(); + String getTrophyDescription(); + boolean hasTrophy(User user); + String name(); } diff --git a/core/src/cz/nic/tablexia/game/trophy/UserTrophyDefinition.java b/core/src/cz/nic/tablexia/game/trophy/UserTrophyDefinition.java index e0b1e1fa44c423789d8955a391230ffbc8b1228b..96cf927513b97cda95057e7a93afcbba88103859 100644 --- a/core/src/cz/nic/tablexia/game/trophy/UserTrophyDefinition.java +++ b/core/src/cz/nic/tablexia/game/trophy/UserTrophyDefinition.java @@ -23,7 +23,7 @@ import java.util.ArrayList; import java.util.List; import cz.nic.tablexia.game.difficulty.GameDifficulty; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.model.game.*; /** diff --git a/core/src/cz/nic/tablexia/menu/main/user/UserSelectBox.java b/core/src/cz/nic/tablexia/menu/main/user/UserSelectBox.java index 0d0b7eeb54b61f7b327b60c61fd7df85431fc284..0439985974ddddf5bcf015a5987dc92402ce0380 100644 --- a/core/src/cz/nic/tablexia/menu/main/user/UserSelectBox.java +++ b/core/src/cz/nic/tablexia/menu/main/user/UserSelectBox.java @@ -16,9 +16,11 @@ import cz.nic.tablexia.TablexiaApplication; import cz.nic.tablexia.TablexiaSettings; import cz.nic.tablexia.bus.ApplicationBus; import cz.nic.tablexia.loader.application.ApplicationAtlasManager; +import cz.nic.tablexia.menu.user.UserMenuItem; import cz.nic.tablexia.menu.user.UserMenuNewSelectBoxItemGroup; import cz.nic.tablexia.menu.user.UserMenuSelectBoxItemGroup; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.model.UserDAO; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.screen.createuser.PanoramaScreen; import cz.nic.tablexia.util.ui.AbstractTablexiaSelectBox; @@ -70,8 +72,8 @@ public class UserSelectBox extends AbstractTablexiaSelectBox<UserSelectBox.UserS removeCaptureListener(changeListener); UserMenuSelectBoxItemGroup selectedUserItem = null; List<UserSelectBoxItem> userItems = new ArrayList<UserSelectBoxItem>(); - for (User user: User.selectActiveUsers()) { - UserMenuSelectBoxItemGroup userItem = new UserMenuSelectBoxItemGroup(user, getWidth()); + for (User user: UserDAO.selectActiveUsers()) { + UserMenuSelectBoxItemGroup userItem = new UserMenuSelectBoxItemGroup(new UserMenuItem(user), getWidth()); userItems.add(userItem); if (user.equals(TablexiaSettings.getInstance().getSelectedUser())) { selectedUserItem = userItem; diff --git a/core/src/cz/nic/tablexia/menu/user/UserMenu.java b/core/src/cz/nic/tablexia/menu/user/UserMenu.java index e49c2ec5628e285391b453177def6b8b8fc36a95..d6b2c7f54a8041ced55cf038f6d0dda73ba0f4b6 100644 --- a/core/src/cz/nic/tablexia/menu/user/UserMenu.java +++ b/core/src/cz/nic/tablexia/menu/user/UserMenu.java @@ -15,8 +15,8 @@ import cz.nic.tablexia.bus.ApplicationBus; import cz.nic.tablexia.bus.event.MenuControlEvent; import cz.nic.tablexia.loader.application.ApplicationSoundManager; import cz.nic.tablexia.menu.AbstractMenu; -import cz.nic.tablexia.menu.IMenuItem; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.model.UserDAO; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.screen.createuser.PanoramaScreen; /** @@ -54,7 +54,8 @@ public class UserMenu extends AbstractMenu { container.setFillParent(true); final float userMenuItemWidth = getBackground().getWidth(); - for (final IMenuItem menuItem : User.selectActiveUsers()) { + for (final User user : UserDAO.selectActiveUsers()) { + final UserMenuItem menuItem = new UserMenuItem(user); Group userItemGroup = getGroupForMenuItem(menuItem, getWidth()); userItemGroup.setSize(userMenuItemWidth, USER_ITEM_HEIGHT); userItemGroup.addListener(new ClickListener() { @@ -96,7 +97,7 @@ public class UserMenu extends AbstractMenu { //////////////////////////// CREATE USER EVENT HANDLING @Handler - public void handleCreatedUserEvent(User.CreatedUserEvent createdUserEvent) { + public void handleCreatedUserEvent(UserDAO.CreatedUserEvent createdUserEvent) { initMenuItems(); } } diff --git a/core/src/cz/nic/tablexia/menu/user/UserMenuItem.java b/core/src/cz/nic/tablexia/menu/user/UserMenuItem.java new file mode 100644 index 0000000000000000000000000000000000000000..8f2302d17825e76541a9932744c6486a3578a1b7 --- /dev/null +++ b/core/src/cz/nic/tablexia/menu/user/UserMenuItem.java @@ -0,0 +1,59 @@ +package cz.nic.tablexia.menu.user; + +import com.badlogic.gdx.scenes.scene2d.Group; + +import cz.nic.tablexia.TablexiaSettings; +import cz.nic.tablexia.menu.AbstractMenu; +import cz.nic.tablexia.menu.IMenuItem; +import cz.nic.tablexia.shared.model.User; + +/** + * Created by frantisek on 11.1.16. + */ +public class UserMenuItem implements IMenuItem { + + private User user; + + private static final Class<UserMenuSelectBoxItemGroup> USER_ITEM_CLASS = UserMenuSelectBoxItemGroup.class; + + + public UserMenuItem(User user) { + this.user = user; + } + + @Override + public String getTitle() { + return user.getName(); + } + + @Override + public String getDescription() { + return null; + } + + @Override + public String[] getIcons() { + // TODO return user avatar + return null; + } + + @Override + public Class<? extends Group> getItemGroupClass() { + return USER_ITEM_CLASS; + } + + @Override + public void performAction() { + TablexiaSettings.getInstance().setSelectedUser(this.user); + } + + @Override + public AbstractMenu.MenuAction getMenuAction() { + return AbstractMenu.MenuAction.HIDE; + } + + @Override + public IMenuItem[] getSubmenu() { + return null; + } +} diff --git a/core/src/cz/nic/tablexia/menu/user/UserMenuSelectBoxItemGroup.java b/core/src/cz/nic/tablexia/menu/user/UserMenuSelectBoxItemGroup.java index 6eb5957a0eab33dc9e104347e87fef65e2775f5c..860b739ee33c3a2281674b6e3a8212a7dfad4e0f 100644 --- a/core/src/cz/nic/tablexia/menu/user/UserMenuSelectBoxItemGroup.java +++ b/core/src/cz/nic/tablexia/menu/user/UserMenuSelectBoxItemGroup.java @@ -11,7 +11,6 @@ import cz.nic.tablexia.loader.application.ApplicationAtlasManager; import cz.nic.tablexia.loader.application.ApplicationFontManager; import cz.nic.tablexia.menu.IMenuItem; import cz.nic.tablexia.menu.main.user.UserSelectBox; -import cz.nic.tablexia.model.User; /** * Created by Matyáš Latner. @@ -26,10 +25,10 @@ public class UserMenuSelectBoxItemGroup extends Group implements UserSelectBox.U private final NinePatch background; private final BitmapFont font; private final TextureRegionDrawable image; - private final User user; + private final UserMenuItem userMenuItem; public UserMenuSelectBoxItemGroup(IMenuItem menuItem, float width) { - this.user = (User) menuItem; + this.userMenuItem = (UserMenuItem)menuItem; background = ApplicationAtlasManager.getInstance().getPatch(ApplicationAtlasManager.USERMENU_MENUITEM_BACKGROUND); font = ApplicationFontManager.getInstance().getFont(TEXT_FONT); @@ -37,7 +36,7 @@ public class UserMenuSelectBoxItemGroup extends Group implements UserSelectBox.U } public void performAction() { - user.performAction(); + userMenuItem.performAction(); } @Override @@ -52,6 +51,6 @@ public class UserMenuSelectBoxItemGroup extends Group implements UserSelectBox.U float textPositionX = getX() + imageWidth + TEXT_LEFT_OFFSET; float textPositionY = getY() + getHeight() / 2; - font.draw(batch, user.getName(), textPositionX, textPositionY + font.getLineHeight() / 3); + font.draw(batch, userMenuItem.getTitle(), textPositionX, textPositionY + font.getLineHeight() / 3); } } diff --git a/core/src/cz/nic/tablexia/model/User.java b/core/src/cz/nic/tablexia/model/UserDAO.java similarity index 70% rename from core/src/cz/nic/tablexia/model/User.java rename to core/src/cz/nic/tablexia/model/UserDAO.java index 3f1ca363b3cb4a7d610c1b3220e5315575731b0e..f6c63b847f7f5a83a76557653f066de4be0a85f6 100644 --- a/core/src/cz/nic/tablexia/model/User.java +++ b/core/src/cz/nic/tablexia/model/UserDAO.java @@ -1,7 +1,5 @@ package cz.nic.tablexia.model; -import com.badlogic.gdx.scenes.scene2d.Group; - import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; @@ -10,170 +8,18 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import cz.nic.tablexia.TablexiaSettings; import cz.nic.tablexia.TablexiaStorage; import cz.nic.tablexia.bus.ApplicationBus; import cz.nic.tablexia.game.GameDefinition; import cz.nic.tablexia.game.difficulty.GameDifficulty; -import cz.nic.tablexia.menu.AbstractMenu; -import cz.nic.tablexia.menu.IMenuItem; -import cz.nic.tablexia.menu.user.UserMenuSelectBoxItemGroup; import cz.nic.tablexia.model.game.Game; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.util.Log; /** * Created by lhoracek, Matyáš Latner */ -public class User implements IMenuItem { - - private static final Class<UserMenuSelectBoxItemGroup> USER_ITEM_CLASS = UserMenuSelectBoxItemGroup.class; - - public enum Gender { - FEMALE(0), - MALE(1); - - private int genderId; - - Gender(int genderId) { - this.genderId = genderId; - } - - public static Gender getGenderForId(int genderId) { - for (Gender gender : Gender.values()) { - if (gender.genderId == genderId) { - return gender; - } - } - return null; - } - } - - private final Long id; - private final String name; - private final String avatar; - private final String signature; - private final int age; - private final Gender gender; - private boolean deleted; - private boolean help; - private boolean intro; - - //need to be pulic for testing purposes - public User(long id, String name, int age, Gender gender, String avatar, String signature, boolean deleted, boolean help, boolean intro) { - this.id = id; - this.name = name; - this.age = age; - this.gender = gender; - this.signature = signature; - this.avatar = avatar; - this.deleted = deleted; - this.help = help; - this.intro = intro; - } - - public Long getId() { - return id; - } - - public String getName() { - return name; - } - - public int getAge() { - return age; - } - - public Gender getGender() { - return gender; - } - - public boolean isDeleted() { - return deleted; - } - - public boolean isHelp() { - return help; - } - - public boolean isIntro() { - return intro; - } - - public String getAvatar() { - return avatar; - } - - public String getSignature() { - return signature; - } - - public void setIntro(boolean intro) { - this.intro = intro; - } - - public void setHelp(boolean help) { - this.help = help; - } - - public void setDeleted(boolean deleted) { - this.deleted = deleted; - } - - @Override - public boolean equals(Object obj) { - if (obj == null) { - return false; - } - if (!(obj instanceof User)) { - return false; - } - return ((User) obj).getId().equals(getId()); - } - - @Override - public String toString() { - return "USER[id: " + id + ", name: " + name + ", age: " + age + ", gen: " + gender.name() + ", del: " + deleted + ", help: " + help + ", intro: " + intro + "]"; - } - - -//////////////////////////// USER MENU ITEM - - @Override - public String getTitle() { - return getName(); - } - - @Override - public String getDescription() { - return null; - } - - @Override - public String[] getIcons() { - // TODO return user avatar - return null; - } - - @Override - public Class<? extends Group> getItemGroupClass() { - return USER_ITEM_CLASS; - } - - @Override - public void performAction() { - TablexiaSettings.getInstance().setSelectedUser(this); - } - - @Override - public AbstractMenu.MenuAction getMenuAction() { - return AbstractMenu.MenuAction.HIDE; - } - - @Override - public IMenuItem[] getSubmenu() { - return null; - } - +public class UserDAO { //////////////////////////// DB ACCESS @@ -195,7 +41,7 @@ public class User implements IMenuItem { long id = resultSet.getLong(1); String name = resultSet.getString(2); int age = resultSet.getInt(3); - Gender gender = Gender.getGenderForId(resultSet.getInt(4)); + User.Gender gender = User.Gender.getGenderForId(resultSet.getInt(4)); String avatar = resultSet.getString(5); String signature = resultSet.getString(6); boolean deleted = resultSet.getInt(7) != 0; @@ -214,13 +60,13 @@ public class User implements IMenuItem { return users; } - public static User createUser(String name, int age, Gender gender, String avatar, String signature) { + public static User createUser(String name, int age, User.Gender gender, String avatar, String signature) { User user = null; try { PreparedStatement insertStatement = TablexiaStorage.getInstance().prepareStatement(INSERT_USER); insertStatement.setString(1, name); insertStatement.setInt(2, age); - insertStatement.setInt(3, gender.genderId); + insertStatement.setInt(3, gender.getGenderId()); insertStatement.setString(4, avatar); insertStatement.setString(5, signature); insertStatement.executeUpdate(); @@ -262,7 +108,7 @@ public class User implements IMenuItem { if (resultSet.next()) { String name = resultSet.getString(2); int age = resultSet.getInt(3); - Gender gender = Gender.getGenderForId(resultSet.getInt(4)); + User.Gender gender = User.Gender.getGenderForId(resultSet.getInt(4)); String avatar = resultSet.getString(5); String signature = resultSet.getString(6); boolean deleted = resultSet.getInt(7) != 0; @@ -292,7 +138,7 @@ public class User implements IMenuItem { Long id = resultSet.getLong(1); String name = resultSet.getString(2); int age = resultSet.getInt(3); - Gender gender = Gender.getGenderForId(resultSet.getInt(4)); + User.Gender gender = User.Gender.getGenderForId(resultSet.getInt(4)); String avatar = resultSet.getString(5); String signature = resultSet.getString(6); boolean deleted = resultSet.getInt(7) != 0; @@ -312,8 +158,8 @@ public class User implements IMenuItem { return selectedUser; } - public boolean isTutorialForGameDefinition(GameDefinition gameDefinition) { - return Game.getNumberOfCompleteGamesForGameDefinitionAndDifficulty(gameDefinition, GameDifficulty.TUTORIAL, this) < 1; + public static boolean isTutorialForGameDefinition(GameDefinition gameDefinition, User user) { + return Game.getNumberOfCompleteGamesForGameDefinitionAndDifficulty(gameDefinition, GameDifficulty.TUTORIAL, user) < 1; } public static boolean userNameExists(String name) { diff --git a/core/src/cz/nic/tablexia/model/game/Game.java b/core/src/cz/nic/tablexia/model/game/Game.java index b637450e15ab02a562efecbd729e12a9ac79f717..f611167020cd9a022ed218afac48b41acfcbe075 100644 --- a/core/src/cz/nic/tablexia/model/game/Game.java +++ b/core/src/cz/nic/tablexia/model/game/Game.java @@ -17,7 +17,8 @@ import cz.nic.tablexia.game.AbstractTablexiaGame; import cz.nic.tablexia.game.GameDefinition; import cz.nic.tablexia.game.common.TablexiaRandom; import cz.nic.tablexia.game.difficulty.GameDifficulty; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.model.UserDAO; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.util.Log; /** @@ -244,7 +245,7 @@ public class Game { String startTimeStr = resultSet.getString(6); String endTimeStr = resultSet.getString(7); selectedGame = new Game(resultSet.getLong(1), - User.selectUser(resultSet.getLong(2)), + UserDAO.selectUser(resultSet.getLong(2)), GameDifficulty.getGameDifficultyForDifficultyNumber(resultSet.getInt(3)), GameDefinition.getGameDefinitionForGameNumber(resultSet.getInt(4)), new TablexiaRandom(resultSet.getLong(5)), @@ -283,7 +284,7 @@ public class Game { String startTimeStr = resultSet.getString(6); String endTimeStr = resultSet.getString(7); game = new Game(resultSet.getLong(1), - User.selectUser(resultSet.getLong(2)), + UserDAO.selectUser(resultSet.getLong(2)), GameDifficulty.getGameDifficultyForDifficultyNumber(resultSet.getInt(3)), GameDefinition.getGameDefinitionForGameNumber(resultSet.getInt(4)), new TablexiaRandom(resultSet.getLong(5)), diff --git a/core/src/cz/nic/tablexia/model/game/GamePause.java b/core/src/cz/nic/tablexia/model/game/GamePause.java index 7c092bc03d517c1a5224996b715d4694fcecda68..363ec3ec77ef51d14cbc5841051775615abb665f 100644 --- a/core/src/cz/nic/tablexia/model/game/GamePause.java +++ b/core/src/cz/nic/tablexia/model/game/GamePause.java @@ -7,7 +7,7 @@ import java.util.ArrayList; import java.util.List; import cz.nic.tablexia.TablexiaStorage; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.util.Log; /** diff --git a/core/src/cz/nic/tablexia/model/game/GameTrophy.java b/core/src/cz/nic/tablexia/model/game/GameTrophy.java index c01f6700976af31a77ecbb4e89ded79b3a460834..51eb22e48d417aa755e7443d85d530bf7453aa9a 100644 --- a/core/src/cz/nic/tablexia/model/game/GameTrophy.java +++ b/core/src/cz/nic/tablexia/model/game/GameTrophy.java @@ -12,7 +12,8 @@ import cz.nic.tablexia.game.GameDefinition; import cz.nic.tablexia.game.common.TablexiaRandom; import cz.nic.tablexia.game.difficulty.GameDifficulty; import cz.nic.tablexia.game.trophy.GameTrophyDefinition; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.model.UserDAO; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.util.Log; /** @@ -73,7 +74,7 @@ public class GameTrophy { String startTimeStr = resultSet.getString(6); String endTimeStr = resultSet.getString(7); games.add(new Game(resultSet.getLong(1), - User.selectUser(resultSet.getLong(2)), + UserDAO.selectUser(resultSet.getLong(2)), GameDifficulty.getGameDifficultyForDifficultyNumber(resultSet.getInt(3)), GameDefinition.getGameDefinitionForGameNumber(resultSet.getInt(4)), new TablexiaRandom(resultSet.getLong(5)), diff --git a/core/src/cz/nic/tablexia/model/game/UserTrophy.java b/core/src/cz/nic/tablexia/model/game/UserTrophy.java index 12b7facddcfac5cf11131420ce5fa91425d6d3a1..4012e47b8d56741643c73213ebe248c4cb1c0471 100644 --- a/core/src/cz/nic/tablexia/model/game/UserTrophy.java +++ b/core/src/cz/nic/tablexia/model/game/UserTrophy.java @@ -21,7 +21,8 @@ import cz.nic.tablexia.game.GameDefinition; import cz.nic.tablexia.game.common.TablexiaRandom; import cz.nic.tablexia.game.difficulty.GameDifficulty; import cz.nic.tablexia.game.trophy.UserTrophyDefinition; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.model.UserDAO; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.util.Log; /** @@ -166,7 +167,7 @@ public class UserTrophy { String startTimeStr = resultSet.getString(6); String endTimeStr = resultSet.getString(7); games.add(new Game(resultSet.getLong(1), - User.selectUser(resultSet.getLong(2)), + UserDAO.selectUser(resultSet.getLong(2)), GameDifficulty.getGameDifficultyForDifficultyNumber(resultSet.getInt(3)), GameDefinition.getGameDefinitionForGameNumber(resultSet.getInt(4)), new TablexiaRandom(resultSet.getLong(5)), diff --git a/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java b/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java index ef220cacafb53a768b775988918a70ca428d8f16..34a0cceb13d3cac726afb5f3e2b45c09cca7c326 100644 --- a/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java +++ b/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java @@ -42,7 +42,7 @@ import cz.nic.tablexia.loader.TablexiaDataManager; import cz.nic.tablexia.loader.TablexiaSoundManager; import cz.nic.tablexia.loader.application.ApplicationAtlasManager; import cz.nic.tablexia.loader.application.ApplicationFontManager; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.util.Log; import cz.nic.tablexia.util.ScaleUtil; import cz.nic.tablexia.util.Utility; diff --git a/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java b/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java index 5c18056b894091c5cfd265c14e011776ded15a13..fbbd10ff4fcde1b19be524aed62791800db095bb 100644 --- a/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java +++ b/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java @@ -40,7 +40,8 @@ import cz.nic.tablexia.TablexiaSettings; import cz.nic.tablexia.bus.ApplicationBus; import cz.nic.tablexia.loader.application.ApplicationAtlasManager; import cz.nic.tablexia.loader.application.ApplicationFontManager; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.model.UserDAO; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.screen.AbstractTablexiaScreen; import cz.nic.tablexia.screen.createuser.form.FormActorsLayout; import cz.nic.tablexia.screen.createuser.form.SignatureDialog; @@ -303,7 +304,7 @@ public class FormScreen extends AbstractTablexiaScreen<Void> { clearValidations(); validations.put(VALIDATION_STAMP, true); stampIt(); - User user = User.createUser(nameField.getText(), FormScreen.this.age, FormScreen.this.gender, mugshot, signature); + User user = UserDAO.createUser(nameField.getText(), FormScreen.this.age, FormScreen.this.gender, mugshot, signature); TablexiaSettings.getInstance().setSelectedUser(user); ApplicationBus.getInstance().post(new Tablexia.ChangeScreenEvent(TablexiaSettings.INITIAL_SCREEN, TablexiaApplication.ScreenTransaction.FADE)).asynchronously(); } @@ -348,7 +349,7 @@ public class FormScreen extends AbstractTablexiaScreen<Void> { return false; } - if (User.userNameExists(nameField.getText())) { + if (UserDAO.userNameExists(nameField.getText())) { displayHintDialog(VALIDATION_USERNAME_EXISTS, nameField); return false; } diff --git a/core/src/cz/nic/tablexia/screen/gamemenu/GameMenuScreen.java b/core/src/cz/nic/tablexia/screen/gamemenu/GameMenuScreen.java index 137356cef867c6c8a2bd67c635e51a7190ea7279..231e231737cd310d9c8ce1f81f4b1bec57fbe436 100644 --- a/core/src/cz/nic/tablexia/screen/gamemenu/GameMenuScreen.java +++ b/core/src/cz/nic/tablexia/screen/gamemenu/GameMenuScreen.java @@ -16,7 +16,7 @@ import java.util.Map; import cz.nic.tablexia.bus.ApplicationBus; import cz.nic.tablexia.game.GameDefinition; import cz.nic.tablexia.menu.game.GameMenuDefinition; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.model.UserDAO; import cz.nic.tablexia.screen.AbstractTablexiaScreen; import cz.nic.tablexia.screen.gamemenu.actions.ScrollHomeAction; import cz.nic.tablexia.screen.gamemenu.event.ShowGameMenuPageEvent; @@ -150,7 +150,7 @@ public class GameMenuScreen extends AbstractTablexiaScreen<int[][]> { public void run() { pagedScrollPane.setTouchable(Touchable.enabled); getSelectedUser().setIntro(false); - User.updateUser(getSelectedUser()); + UserDAO.updateUser(getSelectedUser()); } }))); } diff --git a/core/src/cz/nic/tablexia/screen/gamemenu/pages/OfficeMenuPage.java b/core/src/cz/nic/tablexia/screen/gamemenu/pages/OfficeMenuPage.java index 29fe873dd8d4a3a4fac4f959f199c91910d852b7..f9409add8f7868f60d8b179cf56a61d512ae5838 100644 --- a/core/src/cz/nic/tablexia/screen/gamemenu/pages/OfficeMenuPage.java +++ b/core/src/cz/nic/tablexia/screen/gamemenu/pages/OfficeMenuPage.java @@ -17,7 +17,8 @@ import cz.nic.tablexia.TablexiaApplication; import cz.nic.tablexia.TablexiaSettings; import cz.nic.tablexia.bus.ApplicationBus; import cz.nic.tablexia.loader.application.ApplicationAtlasManager; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.model.UserDAO; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.screen.AbstractTablexiaScreen; import cz.nic.tablexia.screen.encyclopedia.EncyclopediaScreen; import cz.nic.tablexia.screen.gamemenu.GameMenuAssets; @@ -109,7 +110,7 @@ public class OfficeMenuPage extends MenuPage { //Have user seen the help overlay ? if(TablexiaSettings.getInstance().getSelectedUser().isHelp()) { TablexiaSettings.getInstance().getSelectedUser().setHelp(false); - User.updateUser(TablexiaSettings.getInstance().getSelectedUser()); + UserDAO.updateUser(TablexiaSettings.getInstance().getSelectedUser()); toggleHelpOverlay(); } diff --git a/core/src/cz/nic/tablexia/screen/profile/ProfileScreen.java b/core/src/cz/nic/tablexia/screen/profile/ProfileScreen.java index a582cfff99cb99d65a99f90ee823f440fc771f79..540b439b392680eb7c6f47404bc1563fd1e29c1e 100644 --- a/core/src/cz/nic/tablexia/screen/profile/ProfileScreen.java +++ b/core/src/cz/nic/tablexia/screen/profile/ProfileScreen.java @@ -12,7 +12,7 @@ import cz.nic.tablexia.Tablexia; import cz.nic.tablexia.TablexiaApplication; import cz.nic.tablexia.TablexiaSettings; import cz.nic.tablexia.bus.ApplicationBus; -import cz.nic.tablexia.model.User; +import cz.nic.tablexia.shared.model.User; import cz.nic.tablexia.screen.createuser.FormScreen; import cz.nic.tablexia.util.ui.ClickListenerWithSound; diff --git a/core/src/cz/nic/tablexia/shared b/core/src/cz/nic/tablexia/shared new file mode 160000 index 0000000000000000000000000000000000000000..965e91fb41c73b291946f5c105f8fdcadff912f8 --- /dev/null +++ b/core/src/cz/nic/tablexia/shared @@ -0,0 +1 @@ +Subproject commit 965e91fb41c73b291946f5c105f8fdcadff912f8