Texturenpakte Verwaltung und Test hinzugefügt
This commit is contained in:
@@ -1,10 +1,14 @@
|
||||
package de.jaujau.daten;
|
||||
package de.jaujau.UnitTests;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import de.jaujau.daten.Farbe;
|
||||
import de.jaujau.daten.Kartensatz;
|
||||
import de.jaujau.daten.Spieler;
|
||||
|
||||
class TEST_Kartensatz {
|
||||
|
||||
private Kartensatz satz;
|
||||
@@ -82,12 +86,12 @@ class TEST_Kartensatz {
|
||||
|
||||
//Spieler legt Karte auf Ablagestapel
|
||||
satz.ablegen(karteSpieler);
|
||||
assertTrue(karteSpieler == satz.letztekarte);
|
||||
assertTrue(karteSpieler == satz.getletzteKarte());
|
||||
assertTrue(satz.getHand(Spieler.SPIELER).size()==0);
|
||||
|
||||
//Computer legt Karte auf Ablagestapel
|
||||
satz.ablegen(karteComputer);
|
||||
assertTrue(karteComputer == satz.letztekarte);
|
||||
assertTrue(karteComputer == satz.getletzteKarte());
|
||||
assertTrue(satz.getHand(Spieler.COMPUTER).size()==0);
|
||||
|
||||
}
|
||||
|
@@ -1,23 +1,49 @@
|
||||
package de.jaujau.daten;
|
||||
package de.jaujau.UnitTests;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import java.awt.Image;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import de.jaujau.daten.Texturenpaket;
|
||||
|
||||
class TEST_Texturenpaket {
|
||||
|
||||
private Texturenpaket paket;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() throws Exception {
|
||||
paket = new Texturenpaket("/home/sebastian/testpacket.zip");
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void PacketLaden() {
|
||||
void FehlerFreiesPaketLaden() {
|
||||
paket = new Texturenpaket("/home/sebastian/testpaket.zip");
|
||||
assertTrue(paket.ladePacket());
|
||||
System.out.println("Name des Texturen Paketes: " + paket.getName());
|
||||
System.out.println("Level des Texturen Paketes: " + paket.getLevel());
|
||||
}
|
||||
|
||||
@Test
|
||||
void FehlerHaftesPaketLaden() {
|
||||
paket = new Texturenpaket("/home/sebastian/testpaket_fehler.zip");
|
||||
assertFalse(paket.ladePacket());
|
||||
System.out.println("Name des Fehlerhaften Texturen Paketes: " + paket.getName());
|
||||
System.out.println("Level des Fehlerhaften Texturen Paketes: " + paket.getLevel());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void TexturenAusgeben() {
|
||||
paket = new Texturenpaket("/home/sebastian/testpaket.zip");
|
||||
assertTrue(paket.ladePacket());
|
||||
Image Bilder[] = paket.getTexturen();
|
||||
for(int i = 0; i < 32; i++) {
|
||||
assertTrue(Bilder[i] != null);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,10 +1,12 @@
|
||||
package de.jaujau.daten;
|
||||
package de.jaujau.UnitTests;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import de.jaujau.daten.Texturenpakete;
|
||||
|
||||
class TEST_Texturenpakete {
|
||||
|
||||
private Texturenpakete pakete;
|
||||
@@ -16,7 +18,16 @@ class TEST_Texturenpakete {
|
||||
|
||||
@Test
|
||||
void test() {
|
||||
fail("Not yet implemented");
|
||||
assertTrue(pakete.getAnzahlPakete()==0);
|
||||
assertTrue(pakete.addPaket("/home/sebastian/testpaket.zip"));
|
||||
assertTrue(pakete.getAnzahlPakete()==1);
|
||||
assertTrue(pakete.setAktivesPaket(0));
|
||||
assertTrue(pakete.getAktivesPaket()==0);
|
||||
System.out.println(pakete.getName(0));
|
||||
System.out.println(pakete.getName(0));
|
||||
for(int i = 0; i < 32; i++) {
|
||||
assertTrue(pakete.getTextur(i)!=null);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,6 +1,15 @@
|
||||
package de.jaujau.daten;
|
||||
|
||||
import java.awt.Image;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Scanner;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipException;
|
||||
import java.util.zip.ZipFile;
|
||||
import javax.imageio.ImageIO;
|
||||
|
||||
|
||||
/**
|
||||
* Verwaltet ein Texturenpackt
|
||||
@@ -9,8 +18,8 @@ import java.awt.Image;
|
||||
*/
|
||||
public class Texturenpaket {
|
||||
|
||||
private final String name;
|
||||
private final int level;
|
||||
private String name;
|
||||
private int level;
|
||||
private final String pfad;
|
||||
|
||||
|
||||
@@ -30,16 +39,80 @@ public class Texturenpaket {
|
||||
* @return Paket vollständig laden, true/false
|
||||
*/
|
||||
public boolean ladePacket() {
|
||||
System.out.println("Lade Paket");
|
||||
if(testePaket()) {
|
||||
//Paket ist OK
|
||||
|
||||
//Paket Informationen Laden
|
||||
|
||||
try {
|
||||
File zipDatei = new File(pfad);
|
||||
ZipFile paketDatei = new ZipFile(zipDatei);
|
||||
ZipEntry zipInhaltPaketTXT = paketDatei.getEntry("paket.txt");
|
||||
InputStream eingabeStromTXT = paketDatei.getInputStream(zipInhaltPaketTXT);
|
||||
Scanner scanner = new Scanner(eingabeStromTXT);
|
||||
while(scanner.hasNext()) {
|
||||
String Zeile = scanner.next();
|
||||
String Spalte[] = Zeile.split(":");
|
||||
//System.out.println(Spalte.length);
|
||||
if(Spalte.length==2) {
|
||||
System.out.println(Spalte[1]);
|
||||
//Name Auslesen
|
||||
if(Spalte[0].equals("name")) {
|
||||
name = Spalte[1];
|
||||
}
|
||||
//Level Auslesen
|
||||
if(Spalte[0].equals("level")) {
|
||||
level = Integer.parseInt(Spalte[1]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
scanner.close();
|
||||
paketDatei.close();
|
||||
|
||||
} catch (ZipException e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gibt ein Bild das dem Texturenpacket zurück
|
||||
* @param KartenID der Textur
|
||||
* @return Image der Textur
|
||||
* Gibt alle Bilddatein für ein Texturen Paket zurück
|
||||
* @return Image der Texturen des Peketes als Image Array
|
||||
*/
|
||||
public Image getTextur(int KartenID) {
|
||||
public Image[] getTexturen() {
|
||||
if(testePaket()) {
|
||||
|
||||
try {
|
||||
File zipDatei = new File(pfad);
|
||||
ZipFile paketDatei = new ZipFile(zipDatei);
|
||||
Image Bilder[] = new Image[32];
|
||||
|
||||
for(int i = 0; i < 32; i++) {
|
||||
ZipEntry zipInhaltTextur = paketDatei.getEntry(i+".png");
|
||||
InputStream eingabeStromTextur = paketDatei.getInputStream(zipInhaltTextur);
|
||||
Bilder[i] = ImageIO.read(eingabeStromTextur);
|
||||
}
|
||||
return Bilder;
|
||||
|
||||
} catch (ZipException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -60,4 +133,75 @@ public class Texturenpaket {
|
||||
public int getLevel() {
|
||||
return level;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Testet das Texturenpaket auf vollständigkeit
|
||||
* @return Paket vollständig, true/false
|
||||
*/
|
||||
private boolean testePaket() {
|
||||
System.out.println("Teste Paket:");
|
||||
//Testen ob Zip-Datei vorhanden und lesabar ist
|
||||
File zipDatei = new File(pfad);
|
||||
if(zipDatei.exists() || zipDatei.canRead()) {
|
||||
|
||||
try {
|
||||
//Zip Datei öffnen
|
||||
ZipFile paketDatei = new ZipFile(zipDatei);
|
||||
|
||||
//Paket Konfigurations Datei Prüfen
|
||||
ZipEntry zipInhaltPaketTXT = paketDatei.getEntry("paket.txt");
|
||||
InputStream eingabeStromTXT = paketDatei.getInputStream(zipInhaltPaketTXT);
|
||||
Scanner scanner = new Scanner(eingabeStromTXT);
|
||||
boolean PaketName = false;
|
||||
boolean PaketLevel = false;
|
||||
while(scanner.hasNext()) {
|
||||
//Prüfen ob Konfigurations Datei die Einträge "name" und "level" enthält
|
||||
String Zeile = scanner.next();
|
||||
System.out.println(Zeile);
|
||||
if(Zeile.contains("name:")) {
|
||||
PaketName = true;
|
||||
}
|
||||
if(Zeile.contains("level:")) {
|
||||
PaketLevel = true;
|
||||
}
|
||||
}
|
||||
scanner.close();
|
||||
if(!PaketName || !PaketLevel) {
|
||||
System.out.println("Paket Konfiguration fehlerhaft");
|
||||
return false;
|
||||
}
|
||||
|
||||
//Texturen Prüfen
|
||||
for(int i = 0; i < 32; i++) {
|
||||
ZipEntry zipInhaltTextur = paketDatei.getEntry(i+".png");
|
||||
InputStream eingabeStromTextur = paketDatei.getInputStream(zipInhaltTextur);
|
||||
Image bild = ImageIO.read(eingabeStromTextur);
|
||||
if(bild == null) {
|
||||
System.out.println("Datei: " + i + ".png nicht gefunden");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
paketDatei.close();
|
||||
|
||||
} catch (ZipException e) {
|
||||
//Zip Datei nicht leesbar
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
} catch (IOException e) {
|
||||
//Zip Datei nicht lesbar
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
|
||||
//Alles OK
|
||||
System.out.println("Texturen Paket ist OK");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,7 @@
|
||||
package de.jaujau.daten;
|
||||
|
||||
import java.awt.Image;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Diese Klasse Verwaltet die Texturenpackete des Spiels
|
||||
@@ -7,8 +9,105 @@ package de.jaujau.daten;
|
||||
*/
|
||||
public class Texturenpakete {
|
||||
|
||||
private ArrayList<Texturenpaket> TexturenpaketListe;
|
||||
private Image Texturen[];
|
||||
private int AktivesPaket;
|
||||
|
||||
|
||||
public Texturenpakete(){
|
||||
TexturenpaketListe = new ArrayList<Texturenpaket>();
|
||||
AktivesPaket = 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gibt die Anzahl der Vorhanden Texturenpakete aus
|
||||
* @return Anzahl Texturenpakte
|
||||
*/
|
||||
public int getAnzahlPakete() {
|
||||
return TexturenpaketListe.size();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gibt das min Level für ein bestimtes Paket zurück
|
||||
* @param PaketNummer
|
||||
* @return min Level
|
||||
*/
|
||||
public int getLevel(int PaketNr) {
|
||||
if((PaketNr >= 0) && (PaketNr < TexturenpaketListe.size())) {
|
||||
return TexturenpaketListe.get(PaketNr).getLevel();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gibt den Namen eines Bestiment Paketes zurück
|
||||
* @param PaketNummer
|
||||
* @return Name des Paketes
|
||||
*/
|
||||
public String getName(int PaketNr) {
|
||||
if((PaketNr >= 0) && (PaketNr < TexturenpaketListe.size())) {
|
||||
return TexturenpaketListe.get(PaketNr).getName();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gibt die Nummer des AktivenPakes aus
|
||||
* @return Nummer des Aktiven Paketes
|
||||
*/
|
||||
public int getAktivesPaket() {
|
||||
return AktivesPaket;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Setzt das aktive Paket
|
||||
* @param PaketNr des Paketes
|
||||
* @return Setzen erfolgreich true/false
|
||||
*/
|
||||
public boolean setAktivesPaket(int PaketNr) {
|
||||
if((PaketNr >= 0) && (PaketNr < TexturenpaketListe.size())) {
|
||||
AktivesPaket = PaketNr;
|
||||
|
||||
//Texturen Laden
|
||||
Texturen = TexturenpaketListe.get(PaketNr).getTexturen();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Fügt ein Neues Testuren Paket hinzu
|
||||
* Das Paket wird vor dem einfügen auf Vollständfigkeit geprüft
|
||||
* @param Pfad
|
||||
* @return
|
||||
*/
|
||||
public boolean addPaket(String Pfad) {
|
||||
Texturenpaket NeuesPaket = new Texturenpaket(Pfad);
|
||||
if(NeuesPaket.ladePacket()) {
|
||||
TexturenpaketListe.add(NeuesPaket);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gibt eine Textur des aktuellen Paketes als Image zurück
|
||||
* @param KartenNr der Textur
|
||||
* @return Textur als Image
|
||||
*/
|
||||
public Image getTextur(int KartenNr) {
|
||||
if((KartenNr >= 0) && (KartenNr < 32)) {
|
||||
return Texturen[KartenNr];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user