diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..07f39d5
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,27 @@
+# Maven
+**/target
+**/pom.xml.tag
+**/pom.xml.releaseBackup
+**/pom.xml.versionsBackup
+**/pom.xml.next
+**/release.properties
+**/dependency-reduced-pom.xml
+**/buildNumber.properties
+**/.mvn/timing.properties
+**/.mvn/wrapper/maven-wrapper.jar
+
+# VS Code
+**/.vscode
+
+# Local History for Visual Studio Code
+**/.history
+
+# Built Visual Studio Code Extensions
+**/*.vsix
+
+# IntelliJ project files
+**/*.iml
+**/out
+**/gen
+
+**/.idea
\ No newline at end of file
diff --git a/Program/.idea/.gitignore b/Program/.idea/.gitignore
deleted file mode 100644
index 26d3352..0000000
--- a/Program/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/Program/.idea/misc.xml b/Program/.idea/misc.xml
deleted file mode 100644
index 742ef29..0000000
--- a/Program/.idea/misc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Program/.idea/modules.xml b/Program/.idea/modules.xml
deleted file mode 100644
index a7946dc..0000000
--- a/Program/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Program/.idea/uiDesigner.xml b/Program/.idea/uiDesigner.xml
deleted file mode 100644
index 2b63946..0000000
--- a/Program/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/Program/.idea/vcs.xml b/Program/.idea/vcs.xml
deleted file mode 100644
index 35eb1dd..0000000
--- a/Program/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Program/Prototype.zip b/Program/Prototype.zip
deleted file mode 100644
index 75c3263..0000000
Binary files a/Program/Prototype.zip and /dev/null differ
diff --git a/Program/out/production/testProj/ActionHandler.class b/Program/out/production/testProj/ActionHandler.class
deleted file mode 100644
index a4a6a29..0000000
Binary files a/Program/out/production/testProj/ActionHandler.class and /dev/null differ
diff --git a/Program/out/production/testProj/Active.class b/Program/out/production/testProj/Active.class
deleted file mode 100644
index 7357b6b..0000000
Binary files a/Program/out/production/testProj/Active.class and /dev/null differ
diff --git a/Program/out/production/testProj/BlankField.class b/Program/out/production/testProj/BlankField.class
deleted file mode 100644
index 1650f0c..0000000
Binary files a/Program/out/production/testProj/BlankField.class and /dev/null differ
diff --git a/Program/out/production/testProj/Field.class b/Program/out/production/testProj/Field.class
deleted file mode 100644
index 653d282..0000000
Binary files a/Program/out/production/testProj/Field.class and /dev/null differ
diff --git a/Program/out/production/testProj/Fixer.class b/Program/out/production/testProj/Fixer.class
deleted file mode 100644
index 0a1452b..0000000
Binary files a/Program/out/production/testProj/Fixer.class and /dev/null differ
diff --git a/Program/out/production/testProj/Fountain.class b/Program/out/production/testProj/Fountain.class
deleted file mode 100644
index 78404c8..0000000
Binary files a/Program/out/production/testProj/Fountain.class and /dev/null differ
diff --git a/Program/out/production/testProj/Game.class b/Program/out/production/testProj/Game.class
deleted file mode 100644
index f6499d6..0000000
Binary files a/Program/out/production/testProj/Game.class and /dev/null differ
diff --git a/Program/out/production/testProj/GameField.class b/Program/out/production/testProj/GameField.class
deleted file mode 100644
index e6663df..0000000
Binary files a/Program/out/production/testProj/GameField.class and /dev/null differ
diff --git a/Program/out/production/testProj/GameFrame$1.class b/Program/out/production/testProj/GameFrame$1.class
deleted file mode 100644
index c7cd684..0000000
Binary files a/Program/out/production/testProj/GameFrame$1.class and /dev/null differ
diff --git a/Program/out/production/testProj/GameFrame$2.class b/Program/out/production/testProj/GameFrame$2.class
deleted file mode 100644
index bd9f657..0000000
Binary files a/Program/out/production/testProj/GameFrame$2.class and /dev/null differ
diff --git a/Program/out/production/testProj/GameFrame.class b/Program/out/production/testProj/GameFrame.class
deleted file mode 100644
index 4a5e6a8..0000000
Binary files a/Program/out/production/testProj/GameFrame.class and /dev/null differ
diff --git a/Program/out/production/testProj/HelpFrame.class b/Program/out/production/testProj/HelpFrame.class
deleted file mode 100644
index c4c33e3..0000000
Binary files a/Program/out/production/testProj/HelpFrame.class and /dev/null differ
diff --git a/Program/out/production/testProj/Main.class b/Program/out/production/testProj/Main.class
deleted file mode 100644
index 21f4e53..0000000
Binary files a/Program/out/production/testProj/Main.class and /dev/null differ
diff --git a/Program/out/production/testProj/MainMenu$1.class b/Program/out/production/testProj/MainMenu$1.class
deleted file mode 100644
index fdd8f40..0000000
Binary files a/Program/out/production/testProj/MainMenu$1.class and /dev/null differ
diff --git a/Program/out/production/testProj/MainMenu$2.class b/Program/out/production/testProj/MainMenu$2.class
deleted file mode 100644
index adcfd92..0000000
Binary files a/Program/out/production/testProj/MainMenu$2.class and /dev/null differ
diff --git a/Program/out/production/testProj/MainMenu$3.class b/Program/out/production/testProj/MainMenu$3.class
deleted file mode 100644
index cc6be6c..0000000
Binary files a/Program/out/production/testProj/MainMenu$3.class and /dev/null differ
diff --git a/Program/out/production/testProj/MainMenu.class b/Program/out/production/testProj/MainMenu.class
deleted file mode 100644
index 7118fa8..0000000
Binary files a/Program/out/production/testProj/MainMenu.class and /dev/null differ
diff --git a/Program/out/production/testProj/Map.class b/Program/out/production/testProj/Map.class
deleted file mode 100644
index c497f81..0000000
Binary files a/Program/out/production/testProj/Map.class and /dev/null differ
diff --git a/Program/out/production/testProj/Pipe.class b/Program/out/production/testProj/Pipe.class
deleted file mode 100644
index d9ae9fc..0000000
Binary files a/Program/out/production/testProj/Pipe.class and /dev/null differ
diff --git a/Program/out/production/testProj/Player.class b/Program/out/production/testProj/Player.class
deleted file mode 100644
index 5561d0f..0000000
Binary files a/Program/out/production/testProj/Player.class and /dev/null differ
diff --git a/Program/out/production/testProj/Pump.class b/Program/out/production/testProj/Pump.class
deleted file mode 100644
index 94666c3..0000000
Binary files a/Program/out/production/testProj/Pump.class and /dev/null differ
diff --git a/Program/out/production/testProj/Saboteur.class b/Program/out/production/testProj/Saboteur.class
deleted file mode 100644
index aa2a32f..0000000
Binary files a/Program/out/production/testProj/Saboteur.class and /dev/null differ
diff --git a/Program/out/production/testProj/SettingsFrame$1.class b/Program/out/production/testProj/SettingsFrame$1.class
deleted file mode 100644
index d8b864c..0000000
Binary files a/Program/out/production/testProj/SettingsFrame$1.class and /dev/null differ
diff --git a/Program/out/production/testProj/SettingsFrame.class b/Program/out/production/testProj/SettingsFrame.class
deleted file mode 100644
index 32cf334..0000000
Binary files a/Program/out/production/testProj/SettingsFrame.class and /dev/null differ
diff --git a/Program/out/production/testProj/Steppable.class b/Program/out/production/testProj/Steppable.class
deleted file mode 100644
index 5f7dc23..0000000
Binary files a/Program/out/production/testProj/Steppable.class and /dev/null differ
diff --git a/Program/out/production/testProj/Tank.class b/Program/out/production/testProj/Tank.class
deleted file mode 100644
index 1df17e5..0000000
Binary files a/Program/out/production/testProj/Tank.class and /dev/null differ
diff --git a/Program/out/production/testProj/Wait.class b/Program/out/production/testProj/Wait.class
deleted file mode 100644
index 32f1804..0000000
Binary files a/Program/out/production/testProj/Wait.class and /dev/null differ
diff --git a/Program/testProj.iml b/Program/testProj.iml
deleted file mode 100644
index c90834f..0000000
--- a/Program/testProj.iml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/doc/BDD tesztek k\303\251sz\303\255t\303\251se - Cucumber.md" "b/doc/BDD tesztek k\303\251sz\303\255t\303\251se - Cucumber.md"
new file mode 100644
index 0000000..3fee571
--- /dev/null
+++ "b/doc/BDD tesztek k\303\251sz\303\255t\303\251se - Cucumber.md"
@@ -0,0 +1,48 @@
+# BDD tesztek - Cucumber
+
+## Szerelő javít tesztek
+
+### Cső megjavítása
+- Van egy elromlott cső, amin áll egy szerelő, és ezt megpróbálja megjavítani.
+- Ezután a csőnek megjavítottnak kell lennie.
+
+### Pumpa megjavítása
+- Van egy elromlott pumpa, amin áll egy szerelő, és ezt megpróbálja megjavítani.
+- Ezután a pumpának megjavítottnak kell lennie.
+
+## Szabotőr akciók egy csövön tesztek
+
+### Cső elrontása
+- Van egy nem elromlott cső, amin áll egy szabotőr, és ezt megpróbálja elrontani.
+- Ezután a csőnek elromlottnak kell lennie.
+
+### Cső csúszóssá tevése
+- Van egy cső, amin áll egy szabotőr, és ezt megpróbálja csúszóssá tenni.
+- Ezután a csőnek csúszósnak kell lennie.
+
+### Cső ragadóssá tevése
+- Van egy cső, amin áll egy szabotőr, és ezt megpróbálja ragadóssá tenni.
+- Ezután a csőnek ragadósnak kell lennie.
+
+## Szerelő akciók egy ciszternán tesztek
+
+### Cső elvétele
+- Van egy ciszterna, amin áll egy szerelő, és megpróbál elvenni egy csövet a ciszternából.
+- Ezután a ciszternában már csak 4 csőnek kell lennie, és a szerelőnél, kell aktív elemnek lennie.
+
+### Pumpa elvétele
+- Van egy ciszterna, amin áll egy szerelő, és megpróbál elvenni egy pumpát a ciszternából.
+- Ezután a ciszternában már nem szabad pumpának lennie, és a szerelőnél, kell aktív elemnek lennie.
+
+## Játékosok mozgatása tesztek
+
+### Egy játékos egy csőre lép
+- Egy szerelő a kezdőpozíciójában, éppen egy ciszternán áll. Tudván, hogy jobbra tőle egy üres cső található, átlép arra a mezőre.
+- Az **assertEquals** összehasonlító függvénnyel ellenőrzi a teszt végén, hogy a szerelő jelenlegi mezője, amelyen tartózkodik valóban megváltozott-e a szomszédos csőre, illetve a szomszédos csövön beállítódik-e, hogy rajta tartózkodik a szerelő.
+
+### Két játékos egy azonos pumpára lép
+- Egy szerelő a kezdőpozíciójában, éppen egy ciszternán áll. Emellett egy másik játékost, a teszt esetében egy szabotőrt a ciszternától kettővel odébb lévő csőre van elhelyezve. A ciszterna és a cső közé egy pumpa lett letéve, amelyen egyszerre több játékos is tartózkodhat. Mindkét játékos átlép a mezőjükről a szomszédos pumpára.
+- Az **assertEquals** összehasonlító függvénnyel ellenőrzi a teszt végén, hogy mind a szerelő és mind a szabötőr jelenlegi mezője, amelyen tartózkodnak valóban megváltozott-e a szomszédos pumpára, illetve a szomszédos pumpán beállítódik-e, hogy rajta tartózkodik a mindkét játékos.
+
+## Összefoglalás
+A szerintünk átfogó és részletes tesztek megírása után végre is hajtottuk őket, és mindegyikre az elvárt viselkedést kaptuk. A legfontosabb funkciókat többnyire sikerült letesztelni, azonban nehézségeket okozott pár helyen a Getter/Setter függvények hiánya, amely miatt pár esetet nem lehetett/nehezebb volt megvizsgálni. De a végrehajtott tesztek alapján a program helyesen funkcionálónak tűnik.
\ No newline at end of file
diff --git "a/doc/Build keretrendszer + CI be\303\274zemel\303\251se.md" "b/doc/Build keretrendszer + CI be\303\274zemel\303\251se.md"
new file mode 100644
index 0000000..e69de29
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..334dd86
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,90 @@
+
+ 4.0.0
+
+ 1.0-SNAPSHOT
+ hu.main
+ hu.main
+
+
+ 1.8
+ 1.8
+
+
+
+
+
+ io.cucumber
+ cucumber-java
+ 7.17.0
+ test
+
+
+
+
+ io.cucumber
+ cucumber-junit
+ 7.17.0
+ test
+
+
+
+
+
+
+ maven-assembly-plugin
+
+
+
+ Main
+
+
+
+ jar-with-dependencies
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 3.2.0
+
+
+ copy-resources
+ package
+
+ copy-resources
+
+
+ ${project.build.directory}/res
+
+
+ res
+
+ **/*
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.10.1
+
+ 11
+
+
+
+
+
+ maven-surefire-plugin
+ 2.22.2
+
+
+
+
\ No newline at end of file
diff --git a/Program/1.png b/res/1.png
similarity index 100%
rename from Program/1.png
rename to res/1.png
diff --git a/Program/2.png b/res/2.png
similarity index 100%
rename from Program/2.png
rename to res/2.png
diff --git a/Program/Desert.ttf b/res/Desert.ttf
similarity index 100%
rename from Program/Desert.ttf
rename to res/Desert.ttf
diff --git a/Program/Pipe.png b/res/Pipe.png
similarity index 100%
rename from Program/Pipe.png
rename to res/Pipe.png
diff --git a/Program/background.png b/res/background.png
similarity index 100%
rename from Program/background.png
rename to res/background.png
diff --git a/Program/bigbutton.png b/res/bigbutton.png
similarity index 100%
rename from Program/bigbutton.png
rename to res/bigbutton.png
diff --git a/Program/blankfield.png b/res/blankfield.png
similarity index 100%
rename from Program/blankfield.png
rename to res/blankfield.png
diff --git a/Program/blankfieldbig.png b/res/blankfieldbig.png
similarity index 100%
rename from Program/blankfieldbig.png
rename to res/blankfieldbig.png
diff --git a/Program/brokenpipe.png b/res/brokenpipe.png
similarity index 100%
rename from Program/brokenpipe.png
rename to res/brokenpipe.png
diff --git a/Program/brokenpipebig.png b/res/brokenpipebig.png
similarity index 100%
rename from Program/brokenpipebig.png
rename to res/brokenpipebig.png
diff --git a/Program/brokenpipebigrotated.png b/res/brokenpipebigrotated.png
similarity index 100%
rename from Program/brokenpipebigrotated.png
rename to res/brokenpipebigrotated.png
diff --git a/Program/brokenpiperotated.png b/res/brokenpiperotated.png
similarity index 100%
rename from Program/brokenpiperotated.png
rename to res/brokenpiperotated.png
diff --git a/Program/brokenpump.png b/res/brokenpump.png
similarity index 100%
rename from Program/brokenpump.png
rename to res/brokenpump.png
diff --git a/Program/brokenpumpbig.png b/res/brokenpumpbig.png
similarity index 100%
rename from Program/brokenpumpbig.png
rename to res/brokenpumpbig.png
diff --git a/Program/button.png b/res/button.png
similarity index 100%
rename from Program/button.png
rename to res/button.png
diff --git a/Program/disabledbutton.png b/res/disabledbutton.png
similarity index 100%
rename from Program/disabledbutton.png
rename to res/disabledbutton.png
diff --git a/Program/down.png b/res/down.png
similarity index 100%
rename from Program/down.png
rename to res/down.png
diff --git a/Program/exit.png b/res/exit.png
similarity index 100%
rename from Program/exit.png
rename to res/exit.png
diff --git a/Program/fixer.png b/res/fixer.png
similarity index 100%
rename from Program/fixer.png
rename to res/fixer.png
diff --git a/Program/fixer1.png b/res/fixer1.png
similarity index 100%
rename from Program/fixer1.png
rename to res/fixer1.png
diff --git a/Program/fixer1big.png b/res/fixer1big.png
similarity index 100%
rename from Program/fixer1big.png
rename to res/fixer1big.png
diff --git a/Program/fixer2.png b/res/fixer2.png
similarity index 100%
rename from Program/fixer2.png
rename to res/fixer2.png
diff --git a/Program/fixer2big.png b/res/fixer2big.png
similarity index 100%
rename from Program/fixer2big.png
rename to res/fixer2big.png
diff --git a/Program/fixer3.png b/res/fixer3.png
similarity index 100%
rename from Program/fixer3.png
rename to res/fixer3.png
diff --git a/Program/fixer3big.png b/res/fixer3big.png
similarity index 100%
rename from Program/fixer3big.png
rename to res/fixer3big.png
diff --git a/Program/fixer4.png b/res/fixer4.png
similarity index 100%
rename from Program/fixer4.png
rename to res/fixer4.png
diff --git a/Program/fixer4big.png b/res/fixer4big.png
similarity index 100%
rename from Program/fixer4big.png
rename to res/fixer4big.png
diff --git a/Program/fixercurrent.png b/res/fixercurrent.png
similarity index 100%
rename from Program/fixercurrent.png
rename to res/fixercurrent.png
diff --git a/Program/fountain.png b/res/fountain.png
similarity index 100%
rename from Program/fountain.png
rename to res/fountain.png
diff --git a/Program/fountainbig.png b/res/fountainbig.png
similarity index 100%
rename from Program/fountainbig.png
rename to res/fountainbig.png
diff --git a/Program/jatekos kepek/bigbutton.png b/res/jatekos kepek/bigbutton.png
similarity index 100%
rename from Program/jatekos kepek/bigbutton.png
rename to res/jatekos kepek/bigbutton.png
diff --git a/Program/jatekos kepek/button.png b/res/jatekos kepek/button.png
similarity index 100%
rename from Program/jatekos kepek/button.png
rename to res/jatekos kepek/button.png
diff --git a/Program/jatekos kepek/fixer.pdn b/res/jatekos kepek/fixer.pdn
similarity index 100%
rename from Program/jatekos kepek/fixer.pdn
rename to res/jatekos kepek/fixer.pdn
diff --git a/Program/jatekos kepek/fixer.png b/res/jatekos kepek/fixer.png
similarity index 100%
rename from Program/jatekos kepek/fixer.png
rename to res/jatekos kepek/fixer.png
diff --git a/Program/jatekos kepek/fixer1.pdn b/res/jatekos kepek/fixer1.pdn
similarity index 100%
rename from Program/jatekos kepek/fixer1.pdn
rename to res/jatekos kepek/fixer1.pdn
diff --git a/Program/jatekos kepek/fixer1.png b/res/jatekos kepek/fixer1.png
similarity index 100%
rename from Program/jatekos kepek/fixer1.png
rename to res/jatekos kepek/fixer1.png
diff --git a/Program/jatekos kepek/fixer2.png b/res/jatekos kepek/fixer2.png
similarity index 100%
rename from Program/jatekos kepek/fixer2.png
rename to res/jatekos kepek/fixer2.png
diff --git a/Program/jatekos kepek/fixer3.png b/res/jatekos kepek/fixer3.png
similarity index 100%
rename from Program/jatekos kepek/fixer3.png
rename to res/jatekos kepek/fixer3.png
diff --git a/Program/jatekos kepek/fixer4.png b/res/jatekos kepek/fixer4.png
similarity index 100%
rename from Program/jatekos kepek/fixer4.png
rename to res/jatekos kepek/fixer4.png
diff --git a/Program/jatekos kepek/image.png b/res/jatekos kepek/image.png
similarity index 100%
rename from Program/jatekos kepek/image.png
rename to res/jatekos kepek/image.png
diff --git a/Program/jatekos kepek/jatekos.png b/res/jatekos kepek/jatekos.png
similarity index 100%
rename from Program/jatekos kepek/jatekos.png
rename to res/jatekos kepek/jatekos.png
diff --git a/Program/jatekos kepek/left.pdn b/res/jatekos kepek/left.pdn
similarity index 100%
rename from Program/jatekos kepek/left.pdn
rename to res/jatekos kepek/left.pdn
diff --git a/Program/jatekos kepek/saboteur1.pdn b/res/jatekos kepek/saboteur1.pdn
similarity index 100%
rename from Program/jatekos kepek/saboteur1.pdn
rename to res/jatekos kepek/saboteur1.pdn
diff --git a/Program/jatekos kepek/saboteur1.png b/res/jatekos kepek/saboteur1.png
similarity index 100%
rename from Program/jatekos kepek/saboteur1.png
rename to res/jatekos kepek/saboteur1.png
diff --git a/Program/jatekos kepek/saboteur2.png b/res/jatekos kepek/saboteur2.png
similarity index 100%
rename from Program/jatekos kepek/saboteur2.png
rename to res/jatekos kepek/saboteur2.png
diff --git a/Program/jatekos kepek/saboteur3.png b/res/jatekos kepek/saboteur3.png
similarity index 100%
rename from Program/jatekos kepek/saboteur3.png
rename to res/jatekos kepek/saboteur3.png
diff --git a/Program/jatekos kepek/saboteur4.png b/res/jatekos kepek/saboteur4.png
similarity index 100%
rename from Program/jatekos kepek/saboteur4.png
rename to res/jatekos kepek/saboteur4.png
diff --git a/Program/left.png b/res/left.png
similarity index 100%
rename from Program/left.png
rename to res/left.png
diff --git a/Program/leftdisabled.png b/res/leftdisabled.png
similarity index 100%
rename from Program/leftdisabled.png
rename to res/leftdisabled.png
diff --git a/Program/mainmenu.png b/res/mainmenu.png
similarity index 100%
rename from Program/mainmenu.png
rename to res/mainmenu.png
diff --git a/Program/middlebutton.png b/res/middlebutton.png
similarity index 100%
rename from Program/middlebutton.png
rename to res/middlebutton.png
diff --git a/Program/nothing.png b/res/nothing.png
similarity index 100%
rename from Program/nothing.png
rename to res/nothing.png
diff --git a/Program/other.png b/res/other.png
similarity index 100%
rename from Program/other.png
rename to res/other.png
diff --git a/Program/othercurrent.png b/res/othercurrent.png
similarity index 100%
rename from Program/othercurrent.png
rename to res/othercurrent.png
diff --git a/Program/pipebig.png b/res/pipebig.png
similarity index 100%
rename from Program/pipebig.png
rename to res/pipebig.png
diff --git a/Program/pipebigrotated.png b/res/pipebigrotated.png
similarity index 100%
rename from Program/pipebigrotated.png
rename to res/pipebigrotated.png
diff --git a/Program/piperotated.png b/res/piperotated.png
similarity index 100%
rename from Program/piperotated.png
rename to res/piperotated.png
diff --git a/Program/pump.png b/res/pump.png
similarity index 100%
rename from Program/pump.png
rename to res/pump.png
diff --git a/Program/pumpbig.png b/res/pumpbig.png
similarity index 100%
rename from Program/pumpbig.png
rename to res/pumpbig.png
diff --git a/Program/saboteur.png b/res/saboteur.png
similarity index 100%
rename from Program/saboteur.png
rename to res/saboteur.png
diff --git a/Program/saboteur1.png b/res/saboteur1.png
similarity index 100%
rename from Program/saboteur1.png
rename to res/saboteur1.png
diff --git a/Program/saboteur1big.png b/res/saboteur1big.png
similarity index 100%
rename from Program/saboteur1big.png
rename to res/saboteur1big.png
diff --git a/Program/saboteur2.png b/res/saboteur2.png
similarity index 100%
rename from Program/saboteur2.png
rename to res/saboteur2.png
diff --git a/Program/saboteur2big.png b/res/saboteur2big.png
similarity index 100%
rename from Program/saboteur2big.png
rename to res/saboteur2big.png
diff --git a/Program/saboteur3.png b/res/saboteur3.png
similarity index 100%
rename from Program/saboteur3.png
rename to res/saboteur3.png
diff --git a/Program/saboteur3big.png b/res/saboteur3big.png
similarity index 100%
rename from Program/saboteur3big.png
rename to res/saboteur3big.png
diff --git a/Program/saboteur4.png b/res/saboteur4.png
similarity index 100%
rename from Program/saboteur4.png
rename to res/saboteur4.png
diff --git a/Program/saboteur4big.png b/res/saboteur4big.png
similarity index 100%
rename from Program/saboteur4big.png
rename to res/saboteur4big.png
diff --git a/Program/saboteurcurrent.png b/res/saboteurcurrent.png
similarity index 100%
rename from Program/saboteurcurrent.png
rename to res/saboteurcurrent.png
diff --git a/Program/set.png b/res/set.png
similarity index 100%
rename from Program/set.png
rename to res/set.png
diff --git a/Program/setbig.png b/res/setbig.png
similarity index 100%
rename from Program/setbig.png
rename to res/setbig.png
diff --git a/Program/settings.png b/res/settings.png
similarity index 100%
rename from Program/settings.png
rename to res/settings.png
diff --git a/Program/slippery.png b/res/slippery.png
similarity index 100%
rename from Program/slippery.png
rename to res/slippery.png
diff --git a/Program/slipperybig.png b/res/slipperybig.png
similarity index 100%
rename from Program/slipperybig.png
rename to res/slipperybig.png
diff --git a/Program/slipperybigrotated.png b/res/slipperybigrotated.png
similarity index 100%
rename from Program/slipperybigrotated.png
rename to res/slipperybigrotated.png
diff --git a/Program/slipperyrotated.png b/res/slipperyrotated.png
similarity index 100%
rename from Program/slipperyrotated.png
rename to res/slipperyrotated.png
diff --git a/Program/slipperyundest.png b/res/slipperyundest.png
similarity index 100%
rename from Program/slipperyundest.png
rename to res/slipperyundest.png
diff --git a/Program/slipperyundestbig.png b/res/slipperyundestbig.png
similarity index 100%
rename from Program/slipperyundestbig.png
rename to res/slipperyundestbig.png
diff --git a/Program/slipperyundestbigrotated.png b/res/slipperyundestbigrotated.png
similarity index 100%
rename from Program/slipperyundestbigrotated.png
rename to res/slipperyundestbigrotated.png
diff --git a/Program/slipperyundestrotated.png b/res/slipperyundestrotated.png
similarity index 100%
rename from Program/slipperyundestrotated.png
rename to res/slipperyundestrotated.png
diff --git a/Program/startgame.png b/res/startgame.png
similarity index 100%
rename from Program/startgame.png
rename to res/startgame.png
diff --git a/Program/sticky.png b/res/sticky.png
similarity index 100%
rename from Program/sticky.png
rename to res/sticky.png
diff --git a/Program/stickybig.png b/res/stickybig.png
similarity index 100%
rename from Program/stickybig.png
rename to res/stickybig.png
diff --git a/Program/stickybigrotated.png b/res/stickybigrotated.png
similarity index 100%
rename from Program/stickybigrotated.png
rename to res/stickybigrotated.png
diff --git a/Program/stickyrotated.png b/res/stickyrotated.png
similarity index 100%
rename from Program/stickyrotated.png
rename to res/stickyrotated.png
diff --git a/Program/stickyundest.png b/res/stickyundest.png
similarity index 100%
rename from Program/stickyundest.png
rename to res/stickyundest.png
diff --git a/Program/stickyundestbig.png b/res/stickyundestbig.png
similarity index 100%
rename from Program/stickyundestbig.png
rename to res/stickyundestbig.png
diff --git a/Program/stickyundestbigrotated.png b/res/stickyundestbigrotated.png
similarity index 100%
rename from Program/stickyundestbigrotated.png
rename to res/stickyundestbigrotated.png
diff --git a/Program/stickyundestrotated.png b/res/stickyundestrotated.png
similarity index 100%
rename from Program/stickyundestrotated.png
rename to res/stickyundestrotated.png
diff --git a/Program/tank.png b/res/tank.png
similarity index 100%
rename from Program/tank.png
rename to res/tank.png
diff --git a/Program/tankbig.png b/res/tankbig.png
similarity index 100%
rename from Program/tankbig.png
rename to res/tankbig.png
diff --git a/Program/tb.png b/res/tb.png
similarity index 100%
rename from Program/tb.png
rename to res/tb.png
diff --git a/Program/tbbig.png b/res/tbbig.png
similarity index 100%
rename from Program/tbbig.png
rename to res/tbbig.png
diff --git a/Program/undestroyable.png b/res/undestroyable.png
similarity index 100%
rename from Program/undestroyable.png
rename to res/undestroyable.png
diff --git a/Program/undestroyablebig.png b/res/undestroyablebig.png
similarity index 100%
rename from Program/undestroyablebig.png
rename to res/undestroyablebig.png
diff --git a/Program/undestroyablebigrotated.png b/res/undestroyablebigrotated.png
similarity index 100%
rename from Program/undestroyablebigrotated.png
rename to res/undestroyablebigrotated.png
diff --git a/Program/undestroyablerotated.png b/res/undestroyablerotated.png
similarity index 100%
rename from Program/undestroyablerotated.png
rename to res/undestroyablerotated.png
diff --git a/Program/water.png b/res/water.png
similarity index 100%
rename from Program/water.png
rename to res/water.png
diff --git a/Program/waterbig.png b/res/waterbig.png
similarity index 100%
rename from Program/waterbig.png
rename to res/waterbig.png
diff --git a/Program/waterrotated.png b/res/waterrotated.png
similarity index 100%
rename from Program/waterrotated.png
rename to res/waterrotated.png
diff --git a/Program/waterrotatedbig.png b/res/waterrotatedbig.png
similarity index 100%
rename from Program/waterrotatedbig.png
rename to res/waterrotatedbig.png
diff --git a/src/META-INF/MANIFEST.MF b/src/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..5ee19cb
--- /dev/null
+++ b/src/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: Main
+
diff --git a/Program/src/ActionHandler.java b/src/main/java/drukmakoriSzerelok/ActionHandler.java
similarity index 99%
rename from Program/src/ActionHandler.java
rename to src/main/java/drukmakoriSzerelok/ActionHandler.java
index 8432326..82f940c 100644
--- a/Program/src/ActionHandler.java
+++ b/src/main/java/drukmakoriSzerelok/ActionHandler.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.util.*;
/**
diff --git a/Program/src/Active.java b/src/main/java/drukmakoriSzerelok/Active.java
similarity index 98%
rename from Program/src/Active.java
rename to src/main/java/drukmakoriSzerelok/Active.java
index cb81c4c..cf798af 100644
--- a/Program/src/Active.java
+++ b/src/main/java/drukmakoriSzerelok/Active.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
/**
* Absztrakt osztaly, A jatek aktev elemeinek absztrakt ososztaly, amelybol leszarmazik a pumpa, illetve a cso.
* Itt szerepelnek a kozos tulajdonsagaik az aktiv elemeknek, ilyen a mozgathatosag es az elromlas is.
diff --git a/Program/src/BlankField.java b/src/main/java/drukmakoriSzerelok/BlankField.java
similarity index 98%
rename from Program/src/BlankField.java
rename to src/main/java/drukmakoriSzerelok/BlankField.java
index 6dc4e57..f04ccbd 100644
--- a/Program/src/BlankField.java
+++ b/src/main/java/drukmakoriSzerelok/BlankField.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.util.ArrayList;
import java.util.UUID;
diff --git a/Program/src/Field.java b/src/main/java/drukmakoriSzerelok/Field.java
similarity index 99%
rename from Program/src/Field.java
rename to src/main/java/drukmakoriSzerelok/Field.java
index 733cb8f..cc4f612 100644
--- a/Program/src/Field.java
+++ b/src/main/java/drukmakoriSzerelok/Field.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.util.ArrayList;
import java.util.List;
diff --git a/Program/src/Fixer.java b/src/main/java/drukmakoriSzerelok/Fixer.java
similarity index 99%
rename from Program/src/Fixer.java
rename to src/main/java/drukmakoriSzerelok/Fixer.java
index 7679a23..3c93a77 100644
--- a/Program/src/Fixer.java
+++ b/src/main/java/drukmakoriSzerelok/Fixer.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.util.ArrayList;
/**
diff --git a/Program/src/Fountain.java b/src/main/java/drukmakoriSzerelok/Fountain.java
similarity index 99%
rename from Program/src/Fountain.java
rename to src/main/java/drukmakoriSzerelok/Fountain.java
index 2065308..928b1e5 100644
--- a/Program/src/Fountain.java
+++ b/src/main/java/drukmakoriSzerelok/Fountain.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
diff --git a/Program/src/Game.java b/src/main/java/drukmakoriSzerelok/Game.java
similarity index 99%
rename from Program/src/Game.java
rename to src/main/java/drukmakoriSzerelok/Game.java
index 7715710..1225384 100644
--- a/Program/src/Game.java
+++ b/src/main/java/drukmakoriSzerelok/Game.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.util.ArrayList;
/**
diff --git a/Program/src/GameField.java b/src/main/java/drukmakoriSzerelok/GameField.java
similarity index 98%
rename from Program/src/GameField.java
rename to src/main/java/drukmakoriSzerelok/GameField.java
index 2eb8234..c8c40f6 100644
--- a/Program/src/GameField.java
+++ b/src/main/java/drukmakoriSzerelok/GameField.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.awt.*;
import java.util.ArrayList;
import javax.swing.*;
@@ -37,8 +39,8 @@ public GameField(int ln){
* @param png png neve
*/
public void SetBackground(int x, int y, String png){
- fields[x][y].setIcon( new ImageIcon(png+".png"));
- fields[x][y].setDisabledIcon( new ImageIcon(png+".png"));
+ fields[x][y].setIcon( new ImageIcon("res/"+png+".png"));
+ fields[x][y].setDisabledIcon( new ImageIcon("res/"+png+".png"));
}
/**
*
diff --git a/Program/src/GameFrame.java b/src/main/java/drukmakoriSzerelok/GameFrame.java
similarity index 96%
rename from Program/src/GameFrame.java
rename to src/main/java/drukmakoriSzerelok/GameFrame.java
index 2f48903..f3a6b44 100644
--- a/Program/src/GameFrame.java
+++ b/src/main/java/drukmakoriSzerelok/GameFrame.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.AffineTransform;
@@ -61,8 +63,8 @@ public GameFrame() {
public void initComponents(){
JButton background=new JButton();
background.setEnabled(false);
- background.setIcon(new ImageIcon("background.png"));
- background.setDisabledIcon(new ImageIcon("background.png"));
+ background.setIcon(new ImageIcon("res/"+"background.png"));
+ background.setDisabledIcon(new ImageIcon("res/"+"background.png"));
background.setContentAreaFilled(false);
background.setBorderPainted(false);
background.setOpaque(false);
@@ -243,10 +245,10 @@ public void actionPerformed(ActionEvent e) {
background.setBounds (0, 0, 1500, 900);
getContentPane().add(jp);
- ImageIcon leftImg=new ImageIcon("left.png");
- ImageIcon disabledLeftImg=new ImageIcon("leftdisabled.png");
- ImageIcon btn=new ImageIcon("button.png");
- ImageIcon disabledbtn=new ImageIcon("disabledbutton.png");
+ ImageIcon leftImg=new ImageIcon("res/"+"left.png");
+ ImageIcon disabledLeftImg=new ImageIcon("res/"+"leftdisabled.png");
+ ImageIcon btn=new ImageIcon("res/"+"button.png");
+ ImageIcon disabledbtn=new ImageIcon("res/"+"disabledbutton.png");
SetButtonStyle(left, leftImg, disabledLeftImg, 0);
SetButtonStyle(right, leftImg, disabledLeftImg, 180);
SetButtonStyle(up, leftImg, disabledLeftImg, 90);
@@ -294,22 +296,22 @@ public void actionPerformed(ActionEvent e) {
playerBackground.setBorderPainted(false);
playerBackground.setOpaque(false);
playerBackground.setBounds (37, 742, 470, 146);
- playerBackground.setIcon(new ImageIcon("bigbutton.png"));
- playerBackground.setDisabledIcon(new ImageIcon("bigbutton.png"));
+ playerBackground.setIcon(new ImageIcon("res/"+"bigbutton.png"));
+ playerBackground.setDisabledIcon(new ImageIcon("res/"+"bigbutton.png"));
fieldBackground.setEnabled(false);
fieldBackground.setContentAreaFilled(false);
fieldBackground.setBorderPainted(false);
fieldBackground.setOpaque(false);
fieldBackground.setBounds (572, 742, 470, 146);
- fieldBackground.setIcon(new ImageIcon("bigbutton.png"));
- fieldBackground.setDisabledIcon(new ImageIcon("bigbutton.png"));
+ fieldBackground.setIcon(new ImageIcon("res/"+"bigbutton.png"));
+ fieldBackground.setDisabledIcon(new ImageIcon("res/"+"bigbutton.png"));
pointBackground.setEnabled(false);
pointBackground.setContentAreaFilled(false);
pointBackground.setBorderPainted(false);
pointBackground.setOpaque(false);
pointBackground.setBounds (998, 742, 470, 146);
- pointBackground.setIcon(new ImageIcon("middlebutton.png"));
- pointBackground.setDisabledIcon(new ImageIcon("middlebutton.png"));
+ pointBackground.setIcon(new ImageIcon("res/"+"middlebutton.png"));
+ pointBackground.setDisabledIcon(new ImageIcon("res/"+"middlebutton.png"));
}
public void SetButtonStyle(JButton button, ImageIcon img, ImageIcon disabledimg, int angle ){
@@ -623,7 +625,7 @@ public JButton[] GetFieldIcon(){
public void SetIcon(int layer, String png){
- ImageIcon img = new ImageIcon(png+".png");
+ ImageIcon img = new ImageIcon("res/"+png+".png");
fieldicon[layer].setIcon(img);
fieldicon[layer].setDisabledIcon(img);
}
diff --git a/Program/src/HelpFrame.java b/src/main/java/drukmakoriSzerelok/HelpFrame.java
similarity index 99%
rename from Program/src/HelpFrame.java
rename to src/main/java/drukmakoriSzerelok/HelpFrame.java
index db6f79c..7401a29 100644
--- a/Program/src/HelpFrame.java
+++ b/src/main/java/drukmakoriSzerelok/HelpFrame.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.awt.*;
import javax.swing.*;
diff --git a/Program/src/Main.java b/src/main/java/drukmakoriSzerelok/Main.java
similarity index 88%
rename from Program/src/Main.java
rename to src/main/java/drukmakoriSzerelok/Main.java
index cf3d758..f98e13a 100644
--- a/Program/src/Main.java
+++ b/src/main/java/drukmakoriSzerelok/Main.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.io.*;
/**
diff --git a/Program/src/MainMenu.java b/src/main/java/drukmakoriSzerelok/MainMenu.java
similarity index 86%
rename from Program/src/MainMenu.java
rename to src/main/java/drukmakoriSzerelok/MainMenu.java
index 30430b0..f0c115e 100644
--- a/Program/src/MainMenu.java
+++ b/src/main/java/drukmakoriSzerelok/MainMenu.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.awt.*;
import java.awt.event.*;
import java.io.File;
@@ -84,23 +86,23 @@ public void actionPerformed(ActionEvent e) {
}
});
- background.setIcon(new ImageIcon("1.png"));
- background.setDisabledIcon(new ImageIcon("1.png"));
+ background.setIcon(new ImageIcon("res/"+"1.png"));
+ background.setDisabledIcon(new ImageIcon("res/"+"1.png"));
background.setEnabled(false);
background.setOpaque(false);
background.setContentAreaFilled(false);
background.setBorderPainted(false);
background.setFocusable(false);
- start.setIcon(new ImageIcon("startgame.png"));
- start.setDisabledIcon(new ImageIcon("startgame.png"));
+ start.setIcon(new ImageIcon("res/"+"startgame.png"));
+ start.setDisabledIcon(new ImageIcon("res/"+"startgame.png"));
start.setOpaque(false);
start.setContentAreaFilled(false);
- settings.setIcon(new ImageIcon("settings.png"));
- settings.setDisabledIcon(new ImageIcon("settings.png"));
+ settings.setIcon(new ImageIcon("res/"+"settings.png"));
+ settings.setDisabledIcon(new ImageIcon("res/"+"settings.png"));
settings.setOpaque(false);
settings.setContentAreaFilled(false);
- exit.setIcon(new ImageIcon("exit.png"));
- exit.setDisabledIcon(new ImageIcon("exit.png"));
+ exit.setIcon(new ImageIcon("res/"+"exit.png"));
+ exit.setDisabledIcon(new ImageIcon("res/"+"exit.png"));
exit.setOpaque(false);
exit.setContentAreaFilled(false);
background.setBounds (0, 0, 512, 512);
@@ -112,7 +114,7 @@ public void actionPerformed(ActionEvent e) {
Font font=new Font("Consolas", Font.BOLD, 60);
try {
- font = Font.createFont(Font.TRUETYPE_FONT, new File("Desert.ttf"));
+ font = Font.createFont(Font.TRUETYPE_FONT, new File("res/"+"Desert.ttf"));
} catch (FontFormatException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
font = font.deriveFont(Font.BOLD,45);
diff --git a/Program/src/Map.java b/src/main/java/drukmakoriSzerelok/Map.java
similarity index 99%
rename from Program/src/Map.java
rename to src/main/java/drukmakoriSzerelok/Map.java
index 527d5f8..e04d08c 100644
--- a/Program/src/Map.java
+++ b/src/main/java/drukmakoriSzerelok/Map.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.util.ArrayList;
import java.util.List;
diff --git a/Program/src/Pipe.java b/src/main/java/drukmakoriSzerelok/Pipe.java
similarity index 99%
rename from Program/src/Pipe.java
rename to src/main/java/drukmakoriSzerelok/Pipe.java
index 9bed9dc..3878033 100644
--- a/Program/src/Pipe.java
+++ b/src/main/java/drukmakoriSzerelok/Pipe.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
diff --git a/Program/src/Player.java b/src/main/java/drukmakoriSzerelok/Player.java
similarity index 99%
rename from Program/src/Player.java
rename to src/main/java/drukmakoriSzerelok/Player.java
index 270a047..0de9128 100644
--- a/Program/src/Player.java
+++ b/src/main/java/drukmakoriSzerelok/Player.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.util.ArrayList;
import java.util.Random;
diff --git a/Program/src/Pump.java b/src/main/java/drukmakoriSzerelok/Pump.java
similarity index 99%
rename from Program/src/Pump.java
rename to src/main/java/drukmakoriSzerelok/Pump.java
index 1f664a9..2b5d0c2 100644
--- a/Program/src/Pump.java
+++ b/src/main/java/drukmakoriSzerelok/Pump.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
diff --git a/Program/src/Saboteur.java b/src/main/java/drukmakoriSzerelok/Saboteur.java
similarity index 98%
rename from Program/src/Saboteur.java
rename to src/main/java/drukmakoriSzerelok/Saboteur.java
index 4e7f5cf..aac494d 100644
--- a/Program/src/Saboteur.java
+++ b/src/main/java/drukmakoriSzerelok/Saboteur.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.util.ArrayList;
import java.util.Random;
diff --git a/Program/src/SettingsFrame.java b/src/main/java/drukmakoriSzerelok/SettingsFrame.java
similarity index 93%
rename from Program/src/SettingsFrame.java
rename to src/main/java/drukmakoriSzerelok/SettingsFrame.java
index e89b4e6..5fd63ce 100644
--- a/Program/src/SettingsFrame.java
+++ b/src/main/java/drukmakoriSzerelok/SettingsFrame.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
@@ -106,22 +108,22 @@ private void initComponents(){
f2.setEnabled (false);
f3.setEnabled (false);
f4.setEnabled (false);
- s1.setIcon(new ImageIcon("saboteur1.png"));
- s1.setDisabledIcon(new ImageIcon("saboteur1.png"));
- s2.setIcon(new ImageIcon("saboteur2.png"));
- s2.setDisabledIcon(new ImageIcon("saboteur2.png"));
- s3.setIcon(new ImageIcon("saboteur3.png"));
- s3.setDisabledIcon(new ImageIcon("saboteur3.png"));
- s4.setIcon(new ImageIcon("saboteur4.png"));
- s4.setDisabledIcon(new ImageIcon("saboteur4.png"));
- f1.setIcon(new ImageIcon("fixer1.png"));
- f1.setDisabledIcon(new ImageIcon("fixer1.png"));
- f2.setIcon(new ImageIcon("fixer2.png"));
- f2.setDisabledIcon(new ImageIcon("fixer2.png"));
- f3.setIcon(new ImageIcon("fixer3.png"));
- f3.setDisabledIcon(new ImageIcon("fixer3.png"));
- f4.setIcon(new ImageIcon("fixer4.png"));
- f4.setDisabledIcon(new ImageIcon("fixer4.png"));
+ s1.setIcon(new ImageIcon("res/"+"saboteur1.png"));
+ s1.setDisabledIcon(new ImageIcon("res/"+"saboteur1.png"));
+ s2.setIcon(new ImageIcon("res/"+"saboteur2.png"));
+ s2.setDisabledIcon(new ImageIcon("res/"+"saboteur2.png"));
+ s3.setIcon(new ImageIcon("res/"+"saboteur3.png"));
+ s3.setDisabledIcon(new ImageIcon("res/"+"saboteur3.png"));
+ s4.setIcon(new ImageIcon("res/"+"saboteur4.png"));
+ s4.setDisabledIcon(new ImageIcon("res/"+"saboteur4.png"));
+ f1.setIcon(new ImageIcon("res/"+"fixer1.png"));
+ f1.setDisabledIcon(new ImageIcon("res/"+"fixer1.png"));
+ f2.setIcon(new ImageIcon("res/"+"fixer2.png"));
+ f2.setDisabledIcon(new ImageIcon("res/"+"fixer2.png"));
+ f3.setIcon(new ImageIcon("res/"+"fixer3.png"));
+ f3.setDisabledIcon(new ImageIcon("res/"+"fixer3.png"));
+ f4.setIcon(new ImageIcon("res/"+"fixer4.png"));
+ f4.setDisabledIcon(new ImageIcon("res/"+"fixer4.png"));
jp.setPreferredSize (new Dimension (930, 647));
jp.setLayout (null);
@@ -223,8 +225,8 @@ public void actionPerformed(ActionEvent e) {
getContentPane().add(jp);
buttonsDisabler();
- background.setIcon(new ImageIcon("2.png"));
- background.setDisabledIcon(new ImageIcon("2.png"));
+ background.setIcon(new ImageIcon("res/"+"2.png"));
+ background.setDisabledIcon(new ImageIcon("res/"+"2.png"));
background.setEnabled(false);
background.setOpaque(false);
background.setContentAreaFilled(false);
@@ -277,7 +279,7 @@ public void TextFieldStlye(JTextField field, float[] color, float[] color2){
field.setForeground(Color.getHSBColor(color2[0], color2[1], color2[2]));
}
public void SetButtonStyle(JButton button, String img){
- button.setIcon(new ImageIcon(img+".png"));
+ button.setIcon(new ImageIcon("res/"+img+".png"));
button.setOpaque(false);
button.setContentAreaFilled(false);
}
diff --git a/Program/src/Steppable.java b/src/main/java/drukmakoriSzerelok/Steppable.java
similarity index 88%
rename from Program/src/Steppable.java
rename to src/main/java/drukmakoriSzerelok/Steppable.java
index 267525b..b299f29 100644
--- a/Program/src/Steppable.java
+++ b/src/main/java/drukmakoriSzerelok/Steppable.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
/**
* Interfesz, amelyet megvalosito osztalyok a kor vegen frissulnek es uj allapotba lepnek.
*/
diff --git a/Program/src/Tank.java b/src/main/java/drukmakoriSzerelok/Tank.java
similarity index 99%
rename from Program/src/Tank.java
rename to src/main/java/drukmakoriSzerelok/Tank.java
index d08d111..ff6973e 100644
--- a/Program/src/Tank.java
+++ b/src/main/java/drukmakoriSzerelok/Tank.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
import java.util.*;
/**
diff --git a/Program/src/Wait.java b/src/main/java/drukmakoriSzerelok/Wait.java
similarity index 97%
rename from Program/src/Wait.java
rename to src/main/java/drukmakoriSzerelok/Wait.java
index ce80a60..fdd4151 100644
--- a/Program/src/Wait.java
+++ b/src/main/java/drukmakoriSzerelok/Wait.java
@@ -1,3 +1,5 @@
+package drukmakoriSzerelok;
+
/**
* Várakozast iranyito es vegrehajto osztaly.
*/
diff --git a/src/test/java/cucumberTest/CucumberTestRunner.java b/src/test/java/cucumberTest/CucumberTestRunner.java
new file mode 100644
index 0000000..2037fe8
--- /dev/null
+++ b/src/test/java/cucumberTest/CucumberTestRunner.java
@@ -0,0 +1,12 @@
+package cucumberTest;
+
+import io.cucumber.junit.CucumberOptions;
+import org.junit.runner.RunWith;
+import io.cucumber.junit.Cucumber;
+
+
+@RunWith(Cucumber.class)
+@CucumberOptions()
+public class CucumberTestRunner {
+}
+
diff --git a/src/test/java/cucumberTest/FixerActionsOnTank.java b/src/test/java/cucumberTest/FixerActionsOnTank.java
new file mode 100644
index 0000000..99d0eee
--- /dev/null
+++ b/src/test/java/cucumberTest/FixerActionsOnTank.java
@@ -0,0 +1,57 @@
+package cucumberTest;
+
+import drukmakoriSzerelok.Game;
+import drukmakoriSzerelok.Tank;
+import drukmakoriSzerelok.Fixer;
+
+import io.cucumber.java.en.Given;
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
+
+import static org.junit.Assert.assertEquals;
+
+public class FixerActionsOnTank {
+ private Tank tank = new Tank();
+ private Fixer fixer = new Fixer("fixer1","");
+
+ public FixerActionsOnTank(){
+ Game.Get().SetActivePlayer(fixer);
+ }
+
+ @Given("a tank")
+ public void a_tank() {
+ Game game = Game.Get();
+ }
+
+ @Given("the fixer currently standing on that tank")
+ public void the_fixer_currently_standing_on_that_tank() {
+ fixer.SetField(tank);
+ tank.AddPlayer(fixer);
+ }
+
+ @When("the saboteur tries to carry a pipe")
+ public void the_saboteur_tries_to_carry_a_pipe() {
+ fixer.CarryPipe(tank);
+ }
+
+ @When("the saboteur tries to carry a pump")
+ public void the_saboteur_tries_to_carry_a_pump() {
+ fixer.CarryPump(tank);
+ }
+
+ @Then("the tank should have {string} pipes")
+ public void the_tank_should_have_pipes(String answer){
+ assertEquals(answer, String.valueOf(tank.getNumberOfPipes()));
+ }
+
+ @Then("the tank should have {string} pumps")
+ public void the_tank_should_have_pumps(String answer){
+ assertEquals(answer, String.valueOf(tank.getNumberOfPumps()));
+ }
+
+ @Then("the fixer should {string}have an active field")
+ public void the_fixer_should_have_an_active_field(String answer){
+ var result = fixer.GetHasActive() ? "" : "not ";
+ assertEquals(answer, result);
+ }
+}
diff --git a/src/test/java/cucumberTest/FixerFixes.java b/src/test/java/cucumberTest/FixerFixes.java
new file mode 100644
index 0000000..6e60011
--- /dev/null
+++ b/src/test/java/cucumberTest/FixerFixes.java
@@ -0,0 +1,65 @@
+package cucumberTest;
+
+import drukmakoriSzerelok.Fixer;
+import drukmakoriSzerelok.Game;
+import drukmakoriSzerelok.Pipe;
+import drukmakoriSzerelok.Pump;
+
+import io.cucumber.java.en.Given;
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
+
+import static org.junit.Assert.assertEquals;
+
+class IsItBroken{
+ static String isItBroken(boolean status) {
+ return status ? "fixed" : "broken";
+ }
+}
+
+public class FixerFixes {
+ private Pipe pipe = new Pipe();
+ private Pump pump = new Pump();
+ private Fixer fixer = new Fixer("fixer1","");
+
+ private boolean result;
+
+ public FixerFixes(){
+ Game.Get().SetActivePlayer(fixer);
+ }
+
+ @Given("a broken pipe")
+ public void a_broken_pipe() {
+ pipe.SetIsBroken(true);
+ Game game = Game.Get();
+ }
+
+ @Given("a broken pump")
+ public void a_broken_pump() {
+ pump.SetIsBroken(true);
+ Game game = Game.Get();
+ }
+
+ @Given("the fixer currently standing on that pipe")
+ public void the_fixer_currently_standing_on_that_pipe() {
+ fixer.SetField(pipe);
+ pipe.AddPlayer(fixer);
+ }
+
+ @Given("the fixer currently standing on that pump")
+ public void the_fixer_currently_standing_on_that_pump() {
+ fixer.SetField(pump);
+ pump.AddPlayer(fixer);
+ }
+
+ @When("the fixer tries to repair that")
+ public void the_fixer_tries_to_repair_that(){
+ fixer.Fix(pipe);
+ result = ! pipe.GetIsBroken();
+ }
+
+ @Then("it should be {string}")
+ public void it_should_be(String answer){
+ assertEquals(answer, IsItBroken.isItBroken(result));
+ }
+}
diff --git a/src/test/java/cucumberTest/PlayerMoves.java b/src/test/java/cucumberTest/PlayerMoves.java
new file mode 100644
index 0000000..5f87a4d
--- /dev/null
+++ b/src/test/java/cucumberTest/PlayerMoves.java
@@ -0,0 +1,78 @@
+package cucumberTest;
+
+import drukmakoriSzerelok.*;
+import io.cucumber.java.en.Given;
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
+
+import static org.junit.Assert.assertEquals;
+
+public class PlayerMoves{
+ Field tank;
+ Player player;
+ Field neighbour;
+
+ @Given("a default map")
+ public void a_default_map() {
+ Game.Get();
+ }
+ @Given("a fixer currently standing on a tank")
+ public void a_fixer_currently_standing_on_a_tank() {
+ player = Game.Get().GetPlayers().get(0);
+ Game.Get().SetActivePlayer(player);
+ tank = player.GetField();
+ }
+ @Given("a neighbour pipe")
+ public void a_neighbour_pipe() {
+ neighbour = Game.Get().GetMap().GetNeighbourFromDirection(tank, "right");
+ }
+ @When("the fixer tries to move to the neighbour pipe")
+ public void the_fixer_tries_to_move_to_the_neighbour_pipe() {
+ player.Move(neighbour);
+ }
+ @Then("the {string} should be placed on the {string} pipe")
+ public void the_fixer_should_be_placed_on_the_neighbour_pipe(String answer1, String answer2) {
+ var result = player.GetField() == neighbour ? "neighbour" : "tank";
+ var result2 = neighbour.GetPlayer().get(0) == player ? "fixer" : "nobody";
+ assertEquals(answer2, result);
+ assertEquals(answer1, result2);
+ }
+
+
+ Field field1;
+ Field field2;
+ Player player1;
+ Player player2;
+ Field pump;
+
+ @Given("two players currently standing on two separate fields")
+ public void two_players_currently_standing_on_two_separate_fields() {
+ player1 = Game.Get().GetPlayers().get(0);
+ player2 = Game.Get().GetPlayers().get(1);
+ field1 = player1.GetField();
+ field2 = Game.Get().GetMap().GetNeighbourFromDirection(Game.Get().GetMap().GetNeighbourFromDirection(field1, "right"), "right");
+ field2.AddPlayer(player2);
+ player2.SetField(field2);
+ }
+ @Given("a neighbour pump")
+ public void a_neighbour_pump() {
+ pump = Game.Get().GetMap().GetNeighbourFromDirection(field1, "left");
+ pump = new Pump();
+ }
+ @When("both players try to move to the neighbour pump")
+ public void both_players_try_to_move_to_the_neighbour_pump() {
+ Game.Get().SetActivePlayer(player1);
+ player1.Move(pump);
+ Game.Get().SetActivePlayer(player2);
+ player2.Move(pump);
+ }
+ @Then("{string} players should be placed on the {string}")
+ public void both_players_should_be_placed_on_the_pump(String answer1, String answer2) {
+ String result1 = String.valueOf(pump.GetPlayer().size());
+ String result2 = player1.GetField() == pump ? "pump" : "other";
+ String result3 = player2.GetField() == pump ? "pump" : "other";
+ assertEquals(answer1, result1);
+ assertEquals(answer2, result2);
+ assertEquals(answer2, result3);
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/cucumberTest/SaboteurActionsOnPipe.java b/src/test/java/cucumberTest/SaboteurActionsOnPipe.java
new file mode 100644
index 0000000..79eba0c
--- /dev/null
+++ b/src/test/java/cucumberTest/SaboteurActionsOnPipe.java
@@ -0,0 +1,75 @@
+package cucumberTest;
+
+import drukmakoriSzerelok.Saboteur;
+import drukmakoriSzerelok.Game;
+import drukmakoriSzerelok.Pipe;
+
+import io.cucumber.java.en.Given;
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
+
+import static org.junit.Assert.assertEquals;
+
+class IsPipeStatusCorrect {
+ static String isItSlippery(boolean status) {
+ return status ? "" : "not ";
+ }
+
+ static String isItSticky(boolean status) { return status ? "" : "not "; }
+}
+
+public class SaboteurActionsOnPipe {
+ private Pipe pipe = new Pipe();
+ private Saboteur saboteur = new Saboteur("saboteur1","");
+
+ private boolean result;
+
+ public SaboteurActionsOnPipe(){
+ Game.Get().SetActivePlayer(saboteur);
+ }
+
+ @Given("a not broken pipe")
+ public void a_not_broken_pipe() {
+ pipe.SetIsBroken(false);
+ Game game = Game.Get();
+ }
+
+ @Given("the saboteur currently standing on that pipe")
+ public void the_saboteur_currently_standing_on_that_pipe() {
+ saboteur.SetField(pipe);
+ pipe.AddPlayer(saboteur);
+ }
+
+ @When("the saboteur tries to break that")
+ public void the_saboteur_tries_to_break_that() {
+ saboteur.PipeSabotage(pipe);
+ result = ! pipe.GetIsBroken();
+ }
+
+ @Given("a pipe")
+ public void a_pipe() {
+ Game game = Game.Get();
+ }
+
+ @When("the saboteur tries to make that slippery")
+ public void the_saboteur_tries_to_make_that_slippery() {
+ saboteur.MakeSlippery(pipe);
+ result = pipe.GetSlippery() > 0;
+ }
+
+ @When("the saboteur tries to make that sticky")
+ public void the_saboteur_tries_to_make_that_sticky() {
+ saboteur.MakeSticky(pipe);
+ result = pipe.GetSticky() > 0;
+ }
+
+ @Then("the pipe should be {string}slippery")
+ public void the_pipe_should_be_slippery(String answer){
+ assertEquals(answer, IsPipeStatusCorrect.isItSlippery(result));
+ }
+
+ @Then("the pipe should be {string}sticky")
+ public void the_pipe_should_be_sticky(String answer){
+ assertEquals(answer, IsPipeStatusCorrect.isItSticky(result));
+ }
+}
diff --git a/src/test/resources/cucumberTest/FixerActionsOnTank.feature b/src/test/resources/cucumberTest/FixerActionsOnTank.feature
new file mode 100644
index 0000000..7328704
--- /dev/null
+++ b/src/test/resources/cucumberTest/FixerActionsOnTank.feature
@@ -0,0 +1,14 @@
+Feature:
+ Scenario: test carrying pipe
+ Given a tank
+ Given the fixer currently standing on that tank
+ When the saboteur tries to carry a pipe
+ Then the tank should have "4" pipes
+ Then the fixer should ""have an active field
+
+ Scenario: test carrying pump
+ Given a tank
+ Given the fixer currently standing on that tank
+ When the saboteur tries to carry a pump
+ Then the tank should have "0" pumps
+ Then the fixer should ""have an active field
\ No newline at end of file
diff --git a/src/test/resources/cucumberTest/FixerFixes.feature b/src/test/resources/cucumberTest/FixerFixes.feature
new file mode 100644
index 0000000..b7ced98
--- /dev/null
+++ b/src/test/resources/cucumberTest/FixerFixes.feature
@@ -0,0 +1,12 @@
+Feature:
+ Scenario: test fixing a pipe
+ Given a broken pipe
+ Given the fixer currently standing on that pipe
+ When the fixer tries to repair that
+ Then it should be "fixed"
+
+ Scenario: test fixing a pump
+ Given a broken pump
+ Given the fixer currently standing on that pump
+ When the fixer tries to repair that
+ Then it should be "fixed"
\ No newline at end of file
diff --git a/src/test/resources/cucumberTest/PlayerMoves.feature b/src/test/resources/cucumberTest/PlayerMoves.feature
new file mode 100644
index 0000000..e3e83b2
--- /dev/null
+++ b/src/test/resources/cucumberTest/PlayerMoves.feature
@@ -0,0 +1,14 @@
+Feature:
+ Scenario: a player moves to another pipe
+ Given a default map
+ And a fixer currently standing on a tank
+ And a neighbour pipe
+ When the fixer tries to move to the neighbour pipe
+ Then the "fixer" should be placed on the "neighbour" pipe
+
+ Scenario: two players move to the same pump
+ Given a default map
+ And two players currently standing on two separate fields
+ And a neighbour pump
+ When both players try to move to the neighbour pump
+ Then "2" players should be placed on the "pump"
diff --git a/src/test/resources/cucumberTest/SaboteurActionsOnPipe.feature b/src/test/resources/cucumberTest/SaboteurActionsOnPipe.feature
new file mode 100644
index 0000000..2204457
--- /dev/null
+++ b/src/test/resources/cucumberTest/SaboteurActionsOnPipe.feature
@@ -0,0 +1,18 @@
+Feature:
+ Scenario: test breaking a pipe
+ Given a not broken pipe
+ Given the saboteur currently standing on that pipe
+ When the saboteur tries to break that
+ Then it should be "broken"
+
+ Scenario: test making a pipe slippery
+ Given a pipe
+ Given the saboteur currently standing on that pipe
+ When the saboteur tries to make that slippery
+ Then the pipe should be ""slippery
+
+ Scenario: test making a pipe sticky
+ Given a pipe
+ Given the saboteur currently standing on that pipe
+ When the saboteur tries to make that sticky
+ Then the pipe should be ""sticky
\ No newline at end of file