diff --git a/core/assets/george.png b/core/assets/george.png new file mode 100644 index 0000000..7fb0825 Binary files /dev/null and b/core/assets/george.png differ diff --git a/core/src/netwerkprog/game/client/game/characters/DevTest1.java b/core/src/netwerkprog/game/client/game/characters/DevTest1.java index 8a6cb7c..eca2e34 100644 --- a/core/src/netwerkprog/game/client/game/characters/DevTest1.java +++ b/core/src/netwerkprog/game/client/game/characters/DevTest1.java @@ -1,4 +1,12 @@ package netwerkprog.game.client.game.characters; -public class DevTest1 { +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Texture; +import netwerkprog.game.util.game.Character; +import netwerkprog.game.util.game.Faction; + +public class DevTest1 extends Character { + public DevTest1() { + super("DevTest1", Faction.HACKER, new Texture(Gdx.files.internal("core/assets/george.png"))); + } } diff --git a/core/src/netwerkprog/game/client/game/characters/DevTest2.java b/core/src/netwerkprog/game/client/game/characters/DevTest2.java index b4d78fa..058ff40 100644 --- a/core/src/netwerkprog/game/client/game/characters/DevTest2.java +++ b/core/src/netwerkprog/game/client/game/characters/DevTest2.java @@ -1,4 +1,10 @@ package netwerkprog.game.client.game.characters; -public class DevTest2 { +import netwerkprog.game.util.game.Character; +import netwerkprog.game.util.game.Faction; + +public class DevTest2 extends Character { + public DevTest2() { + super("DevTest2", Faction.MEGACORPORATION, null); + } } diff --git a/core/src/netwerkprog/game/client/game/characters/DevTest3.java b/core/src/netwerkprog/game/client/game/characters/DevTest3.java new file mode 100644 index 0000000..7e28fff --- /dev/null +++ b/core/src/netwerkprog/game/client/game/characters/DevTest3.java @@ -0,0 +1,10 @@ +package netwerkprog.game.client.game.characters; + +import netwerkprog.game.util.game.Character; +import netwerkprog.game.util.game.Faction; + +public class DevTest3 extends Character { + public DevTest3() { + super("DevTest3", Faction.AI, null); + } +} diff --git a/core/src/netwerkprog/game/util/game/Character.java b/core/src/netwerkprog/game/util/game/Character.java index 21bc8bd..191fec9 100644 --- a/core/src/netwerkprog/game/util/game/Character.java +++ b/core/src/netwerkprog/game/util/game/Character.java @@ -1,19 +1,30 @@ package netwerkprog.game.util.game; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.TextureRegion; +import com.badlogic.gdx.scenes.scene2d.Actor; + import java.util.Arrays; import java.util.HashSet; -public abstract class Character { +public abstract class Character extends Actor { protected String name; protected Faction faction; protected HashSet abilities; + protected TextureRegion[] sprites; protected boolean override; + protected int x; + protected int y; + private final int maxSize = 1; - public Character(String name, Faction faction, Ability... abilities) { + + public Character(String name, Faction faction, Texture spriteSheet, Ability... abilities) { this.name = name; this.faction = faction; + this.sprites = new TextureRegion[this.maxSize]; this.abilities = new HashSet<>(Arrays.asList(abilities)); this.override = false; + loadSprites(spriteSheet); } public void addAbilities(Ability ability) { @@ -27,4 +38,18 @@ public abstract class Character { public void changeControl() { this.override = !this.override; } + + private void loadSprites(Texture spriteSheet) { + int counter = 0; + TextureRegion[][] temp = TextureRegion.split(spriteSheet,32,32); + for (TextureRegion[] array : temp) { + for (TextureRegion sprite : array) { + this.sprites[counter] = sprite; + counter++; + if (counter >= this.maxSize) { + break; + } + } + } + } } diff --git a/core/src/netwerkprog/game/util/game/Faction.java b/core/src/netwerkprog/game/util/game/Faction.java index dd347f5..08520a5 100644 --- a/core/src/netwerkprog/game/util/game/Faction.java +++ b/core/src/netwerkprog/game/util/game/Faction.java @@ -1,4 +1,13 @@ package netwerkprog.game.util.game; public enum Faction { + MEGACORPORATION("MegaCorp"), + HACKER("Hacker"), + AI("AI"); + + String name; + + Faction(String name) { + this.name = name; + } } diff --git a/core/src/test/java/CharacterLoadingTest.java b/core/src/test/java/CharacterLoadingTest.java new file mode 100644 index 0000000..51962f4 --- /dev/null +++ b/core/src/test/java/CharacterLoadingTest.java @@ -0,0 +1,15 @@ +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Texture; +import netwerkprog.game.client.game.characters.DevTest1; +import netwerkprog.game.util.game.Character; +import org.junit.Test; + +public class CharacterLoadingTest { + + @Test + public void george() { + String path = "core/assets/george.png"; + Texture texture = new Texture(Gdx.files.internal(path)); + Character george = new DevTest1(); + } +}