From 09255a328328f77428fb35182673a2b5248f10f5 Mon Sep 17 00:00:00 2001
From: Peter Hertkorn <peter.hertkorn@reutlingen-university.de>
Date: Wed, 29 May 2024 09:08:13 +0200
Subject: [PATCH] Add Ufos and Komponenten

---
 src/aliensimulator/AlienSimulator.java        | 11 +++
 src/aliensimulator/ufos/Sternenkreuzer.java   | 16 +++++
 src/aliensimulator/ufos/Transportschiff.java  | 16 +++++
 src/aliensimulator/ufos/Ufo.java              | 67 +++++++++++++++++++
 .../ufos/komponenten/Antrieb.java             |  5 ++
 .../ufos/komponenten/Hyperantrieb.java        |  8 +++
 .../ufos/komponenten/Laserkanone.java         |  8 +++
 .../ufos/komponenten/Metaphasenschild.java    |  8 +++
 .../ufos/komponenten/Phaserkanone.java        |  8 +++
 .../ufos/komponenten/Schild.java              |  5 ++
 .../ufos/komponenten/Verteidigungsschild.java |  8 +++
 .../ufos/komponenten/Waffe.java               |  5 ++
 .../ufos/komponenten/Warpantrieb.java         |  8 +++
 13 files changed, 173 insertions(+)
 create mode 100644 src/aliensimulator/ufos/Sternenkreuzer.java
 create mode 100644 src/aliensimulator/ufos/Transportschiff.java
 create mode 100644 src/aliensimulator/ufos/Ufo.java
 create mode 100644 src/aliensimulator/ufos/komponenten/Antrieb.java
 create mode 100644 src/aliensimulator/ufos/komponenten/Hyperantrieb.java
 create mode 100644 src/aliensimulator/ufos/komponenten/Laserkanone.java
 create mode 100644 src/aliensimulator/ufos/komponenten/Metaphasenschild.java
 create mode 100644 src/aliensimulator/ufos/komponenten/Phaserkanone.java
 create mode 100644 src/aliensimulator/ufos/komponenten/Schild.java
 create mode 100644 src/aliensimulator/ufos/komponenten/Verteidigungsschild.java
 create mode 100644 src/aliensimulator/ufos/komponenten/Waffe.java
 create mode 100644 src/aliensimulator/ufos/komponenten/Warpantrieb.java

diff --git a/src/aliensimulator/AlienSimulator.java b/src/aliensimulator/AlienSimulator.java
index b355177..216b119 100644
--- a/src/aliensimulator/AlienSimulator.java
+++ b/src/aliensimulator/AlienSimulator.java
@@ -6,6 +6,7 @@ import aliensimulator.aliens.*;
 import aliensimulator.predators.Predator;
 import aliensimulator.predators.PredatorFactory;
 import aliensimulator.predators.Yautja;
+import aliensimulator.ufos.Ufo;
 import aliensimulator.verhalten.ErdeFreundlichBesuchen;
 import aliensimulator.verhalten.ErdeNeutralAdapter;
 
@@ -51,5 +52,15 @@ public class AlienSimulator {
 		yautja.fliegen();
 		yautja.erdeBesuchen();
 
+		// TODO create Alien Sternenkreuzer
+		// System.out.println(alienSternenkreuzer);
+		// TODO create Alien Transportschiff
+		//System.out.println(alienTransportschiff);
+
+		// TODO create Predator Sternenkreuzer
+		//System.out.println(predatorSternenkreuzer);
+		// TODO create Predator Transportschiff
+		//System.out.println(predatorTransportschiff);
+
 	}
 }
diff --git a/src/aliensimulator/ufos/Sternenkreuzer.java b/src/aliensimulator/ufos/Sternenkreuzer.java
new file mode 100644
index 0000000..a501acc
--- /dev/null
+++ b/src/aliensimulator/ufos/Sternenkreuzer.java
@@ -0,0 +1,16 @@
+package aliensimulator.ufos;
+
+
+public class Sternenkreuzer extends Ufo {
+
+    public Sternenkreuzer() {
+        super();
+    }
+
+    public void herstellen() {
+    }
+
+    public String toString() {
+        return "Sternenkreuzer\n" + super.toString();
+    }
+}
diff --git a/src/aliensimulator/ufos/Transportschiff.java b/src/aliensimulator/ufos/Transportschiff.java
new file mode 100644
index 0000000..a71c777
--- /dev/null
+++ b/src/aliensimulator/ufos/Transportschiff.java
@@ -0,0 +1,16 @@
+package aliensimulator.ufos;
+
+
+public class Transportschiff extends Ufo {
+
+    public Transportschiff() {
+        super();
+    }
+
+    public void herstellen() {
+    }
+
+    public String toString() {
+        return "Transportschiff\n" + super.toString();
+    }
+}
diff --git a/src/aliensimulator/ufos/Ufo.java b/src/aliensimulator/ufos/Ufo.java
new file mode 100644
index 0000000..0a30abb
--- /dev/null
+++ b/src/aliensimulator/ufos/Ufo.java
@@ -0,0 +1,67 @@
+package aliensimulator.ufos;
+
+import aliensimulator.ufos.komponenten.Antrieb;
+import aliensimulator.ufos.komponenten.Schild;
+import aliensimulator.ufos.komponenten.Waffe;
+
+public abstract class Ufo {
+    String name;
+    Antrieb antrieb;
+    Schild schild;
+    Waffe waffe;
+
+    public abstract void herstellen();
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Antrieb getAntrieb() {
+        return antrieb;
+    }
+
+    public void setAntrieb(Antrieb antrieb) {
+        this.antrieb = antrieb;
+    }
+
+    public Schild getSchild() {
+        return schild;
+    }
+
+    public void setSchild(Schild schild) {
+        this.schild = schild;
+    }
+
+    public Waffe getWaffe() {
+        return waffe;
+    }
+
+    public void setWaffe(Waffe waffe) {
+        this.waffe = waffe;
+    }
+
+
+    @Override
+    public String toString() {
+        StringBuffer result = new StringBuffer();
+        result.append("Name: " + name + "\n");
+
+        if (antrieb != null) {
+            result.append(antrieb + "\n");
+        }
+
+        if (schild != null) {
+            result.append(schild + "\n");
+        }
+
+        if (waffe != null) {
+            result.append(waffe + "\n");
+        }
+
+        return result.toString();
+    }
+}
diff --git a/src/aliensimulator/ufos/komponenten/Antrieb.java b/src/aliensimulator/ufos/komponenten/Antrieb.java
new file mode 100644
index 0000000..d7f7fdc
--- /dev/null
+++ b/src/aliensimulator/ufos/komponenten/Antrieb.java
@@ -0,0 +1,5 @@
+package aliensimulator.ufos.komponenten;
+
+public interface Antrieb {
+    public String toString();
+}
diff --git a/src/aliensimulator/ufos/komponenten/Hyperantrieb.java b/src/aliensimulator/ufos/komponenten/Hyperantrieb.java
new file mode 100644
index 0000000..a2e8d0a
--- /dev/null
+++ b/src/aliensimulator/ufos/komponenten/Hyperantrieb.java
@@ -0,0 +1,8 @@
+package aliensimulator.ufos.komponenten;
+
+public class Hyperantrieb implements Antrieb {
+    @Override
+    public String toString() {
+        return "Hyperantrieb";
+    }
+}
diff --git a/src/aliensimulator/ufos/komponenten/Laserkanone.java b/src/aliensimulator/ufos/komponenten/Laserkanone.java
new file mode 100644
index 0000000..04def28
--- /dev/null
+++ b/src/aliensimulator/ufos/komponenten/Laserkanone.java
@@ -0,0 +1,8 @@
+package aliensimulator.ufos.komponenten;
+
+public class Laserkanone implements Waffe {
+    @Override
+    public String toString() {
+        return "Laserkanone";
+    }
+}
\ No newline at end of file
diff --git a/src/aliensimulator/ufos/komponenten/Metaphasenschild.java b/src/aliensimulator/ufos/komponenten/Metaphasenschild.java
new file mode 100644
index 0000000..7139e88
--- /dev/null
+++ b/src/aliensimulator/ufos/komponenten/Metaphasenschild.java
@@ -0,0 +1,8 @@
+package aliensimulator.ufos.komponenten;
+
+public class Metaphasenschild implements Schild {
+    @Override
+    public String toString() {
+        return "Metaphasenschild";
+    }
+}
\ No newline at end of file
diff --git a/src/aliensimulator/ufos/komponenten/Phaserkanone.java b/src/aliensimulator/ufos/komponenten/Phaserkanone.java
new file mode 100644
index 0000000..ff2b82c
--- /dev/null
+++ b/src/aliensimulator/ufos/komponenten/Phaserkanone.java
@@ -0,0 +1,8 @@
+package aliensimulator.ufos.komponenten;
+
+public class Phaserkanone implements Waffe {
+    @Override
+    public String toString() {
+        return "Phaserkanone";
+    }
+}
\ No newline at end of file
diff --git a/src/aliensimulator/ufos/komponenten/Schild.java b/src/aliensimulator/ufos/komponenten/Schild.java
new file mode 100644
index 0000000..ccb0c1c
--- /dev/null
+++ b/src/aliensimulator/ufos/komponenten/Schild.java
@@ -0,0 +1,5 @@
+package aliensimulator.ufos.komponenten;
+
+public interface Schild {
+    public String toString();
+}
diff --git a/src/aliensimulator/ufos/komponenten/Verteidigungsschild.java b/src/aliensimulator/ufos/komponenten/Verteidigungsschild.java
new file mode 100644
index 0000000..8b29b17
--- /dev/null
+++ b/src/aliensimulator/ufos/komponenten/Verteidigungsschild.java
@@ -0,0 +1,8 @@
+package aliensimulator.ufos.komponenten;
+
+public class Verteidigungsschild implements Schild {
+    @Override
+    public String toString() {
+        return "Verteidigungsschild";
+    }
+}
\ No newline at end of file
diff --git a/src/aliensimulator/ufos/komponenten/Waffe.java b/src/aliensimulator/ufos/komponenten/Waffe.java
new file mode 100644
index 0000000..02cb6a7
--- /dev/null
+++ b/src/aliensimulator/ufos/komponenten/Waffe.java
@@ -0,0 +1,5 @@
+package aliensimulator.ufos.komponenten;
+
+public interface Waffe {
+    public String toString();
+}
diff --git a/src/aliensimulator/ufos/komponenten/Warpantrieb.java b/src/aliensimulator/ufos/komponenten/Warpantrieb.java
new file mode 100644
index 0000000..c2faa88
--- /dev/null
+++ b/src/aliensimulator/ufos/komponenten/Warpantrieb.java
@@ -0,0 +1,8 @@
+package aliensimulator.ufos.komponenten;
+
+public class Warpantrieb implements Antrieb {
+    @Override
+    public String toString() {
+        return "Warpantrieb";
+    }
+}
-- 
GitLab