mirror of
https://github.com/Stefan-5422/School-Programming-Projekt-022022.git
synced 2026-09-10 07:36:05 +02:00
Add tie in off global event system; Add test offerer and reciever
This commit is contained in:
@@ -3,7 +3,9 @@ package com.yes.yes;
|
|||||||
import com.yes.yes.managers.GameManager;
|
import com.yes.yes.managers.GameManager;
|
||||||
import com.yes.yes.managers.PlayerManager;
|
import com.yes.yes.managers.PlayerManager;
|
||||||
import com.yes.yes.managers.UiManager;
|
import com.yes.yes.managers.UiManager;
|
||||||
|
import com.yes.yes.utils.GlobalEventHandler;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
|
import javafx.event.ActionEvent;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.layout.VBox;
|
import javafx.scene.layout.VBox;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
package com.yes.yes;
|
package com.yes.yes;
|
||||||
|
|
||||||
|
import com.yes.yes.utils.GlobalEventHandler;
|
||||||
|
import javafx.event.ActionEvent;
|
||||||
|
import javafx.fxml.FXML;
|
||||||
import javafx.fxml.FXMLLoader;
|
import javafx.fxml.FXMLLoader;
|
||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
@@ -11,6 +14,12 @@ public class YesApplication extends javafx.application.Application {
|
|||||||
launch();
|
launch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void stop() {
|
||||||
|
System.out.println("closing bro");
|
||||||
|
GlobalEventHandler.trigger("closing",null);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start(Stage stage) throws IOException {
|
public void start(Stage stage) throws IOException {
|
||||||
FXMLLoader fxmlLoader = new FXMLLoader(YesApplication.class.getResource("main-view.fxml"));
|
FXMLLoader fxmlLoader = new FXMLLoader(YesApplication.class.getResource("main-view.fxml"));
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public class TestBehaviour extends Component {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update() {
|
public void update() {
|
||||||
System.out.println("Updating " + parent.getClass().getSimpleName());
|
/*System.out.println("Updating " + parent.getClass().getSimpleName());
|
||||||
for (int x = -1; x < 2; x++) {
|
for (int x = -1; x < 2; x++) {
|
||||||
for (int y = -1; y < 2; y++) {
|
for (int y = -1; y < 2; y++) {
|
||||||
try {
|
try {
|
||||||
@@ -36,6 +36,6 @@ public class TestBehaviour extends Component {
|
|||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,10 @@
|
|||||||
package com.yes.yes.behaviours;
|
package com.yes.yes.behaviours;
|
||||||
|
|
||||||
import com.yes.yes.utils.BlockContainer;
|
import com.yes.yes.utils.*;
|
||||||
import com.yes.yes.utils.Component;
|
|
||||||
import com.yes.yes.utils.Coordinate;
|
|
||||||
import com.yes.yes.utils.Entity;
|
|
||||||
|
|
||||||
public class TestOffererBehaviour extends Component {
|
public class TestOffererBehaviour extends Component {
|
||||||
|
|
||||||
private Entity reciever;
|
private Entity receiver;
|
||||||
|
|
||||||
public TestOffererBehaviour(Entity entity, BlockContainer blockContainer) {
|
public TestOffererBehaviour(Entity entity, BlockContainer blockContainer) {
|
||||||
super(entity, blockContainer);
|
super(entity, blockContainer);
|
||||||
@@ -16,7 +13,7 @@ public class TestOffererBehaviour extends Component {
|
|||||||
private void placed(Entity entity) {
|
private void placed(Entity entity) {
|
||||||
try {
|
try {
|
||||||
if (blockContainer.getBlock(new Coordinate(1, 0)) == entity) {
|
if (blockContainer.getBlock(new Coordinate(1, 0)) == entity) {
|
||||||
this.reciever = entity;
|
this.receiver = entity;
|
||||||
}
|
}
|
||||||
} catch (IllegalAccessException e) {
|
} catch (IllegalAccessException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@@ -26,7 +23,7 @@ public class TestOffererBehaviour extends Component {
|
|||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
try {
|
try {
|
||||||
this.reciever = blockContainer.getBlock(new Coordinate(1, 0));
|
this.receiver = blockContainer.getBlock(new Coordinate(1, 0));
|
||||||
} catch (IllegalAccessException e) {
|
} catch (IllegalAccessException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -36,8 +33,10 @@ public class TestOffererBehaviour extends Component {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update() {
|
public void update() {
|
||||||
if(reciever == null) return;
|
if(receiver == null) return;
|
||||||
|
|
||||||
reciever.trigger("offerItem", someItem);
|
Item someItem = new Item();
|
||||||
|
|
||||||
|
receiver.trigger("offerItem", someItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package com.yes.yes.behaviours;
|
||||||
|
|
||||||
|
import com.yes.yes.utils.*;
|
||||||
|
|
||||||
|
public class TestRecieveBeahaviour extends Component {
|
||||||
|
|
||||||
|
public TestRecieveBeahaviour(Entity entity, BlockContainer blockContainer) {
|
||||||
|
super(entity, blockContainer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initialize() {
|
||||||
|
this.parent.addListener("offerItem", this::recieve);
|
||||||
|
}
|
||||||
|
|
||||||
|
void recieve(Item item) {
|
||||||
|
System.out.println("Received Item");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ package com.yes.yes.entities.machines;
|
|||||||
import com.yes.yes.behaviours.ItemBehaviour;
|
import com.yes.yes.behaviours.ItemBehaviour;
|
||||||
import com.yes.yes.behaviours.PlaceBehaviour;
|
import com.yes.yes.behaviours.PlaceBehaviour;
|
||||||
import com.yes.yes.behaviours.TestBehaviour;
|
import com.yes.yes.behaviours.TestBehaviour;
|
||||||
|
import com.yes.yes.behaviours.TestRecieveBeahaviour;
|
||||||
import com.yes.yes.utils.BlockContainer;
|
import com.yes.yes.utils.BlockContainer;
|
||||||
import com.yes.yes.utils.Entity;
|
import com.yes.yes.utils.Entity;
|
||||||
import javafx.scene.shape.Circle;
|
import javafx.scene.shape.Circle;
|
||||||
@@ -21,5 +22,6 @@ public class TestMachine extends Entity {
|
|||||||
this.addBehaviour(new PlaceBehaviour(this, blockContainer));
|
this.addBehaviour(new PlaceBehaviour(this, blockContainer));
|
||||||
this.addBehaviour(new TestBehaviour(this, blockContainer));
|
this.addBehaviour(new TestBehaviour(this, blockContainer));
|
||||||
this.addBehaviour(new ItemBehaviour(this, blockContainer));
|
this.addBehaviour(new ItemBehaviour(this, blockContainer));
|
||||||
|
this.addBehaviour(new TestRecieveBeahaviour(this, blockContainer));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.yes.yes.entities.machines;
|
|||||||
import com.yes.yes.behaviours.ItemBehaviour;
|
import com.yes.yes.behaviours.ItemBehaviour;
|
||||||
import com.yes.yes.behaviours.PlaceBehaviour;
|
import com.yes.yes.behaviours.PlaceBehaviour;
|
||||||
import com.yes.yes.behaviours.TestBehaviour;
|
import com.yes.yes.behaviours.TestBehaviour;
|
||||||
|
import com.yes.yes.behaviours.TestOffererBehaviour;
|
||||||
import com.yes.yes.utils.BlockContainer;
|
import com.yes.yes.utils.BlockContainer;
|
||||||
import com.yes.yes.utils.Entity;
|
import com.yes.yes.utils.Entity;
|
||||||
import javafx.scene.shape.Rectangle;
|
import javafx.scene.shape.Rectangle;
|
||||||
@@ -18,5 +19,6 @@ public class TestMachine2 extends Entity {
|
|||||||
this.addBehaviour(new PlaceBehaviour(this, blockContainer));
|
this.addBehaviour(new PlaceBehaviour(this, blockContainer));
|
||||||
this.addBehaviour(new TestBehaviour(this, blockContainer));
|
this.addBehaviour(new TestBehaviour(this, blockContainer));
|
||||||
this.addBehaviour(new ItemBehaviour(this, blockContainer));
|
this.addBehaviour(new ItemBehaviour(this, blockContainer));
|
||||||
|
this.addBehaviour(new TestOffererBehaviour(this, blockContainer));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,11 +3,16 @@ package com.yes.yes.managers;
|
|||||||
import com.yes.yes.entities.machines.TestMachine;
|
import com.yes.yes.entities.machines.TestMachine;
|
||||||
import com.yes.yes.entities.machines.TestMachine2;
|
import com.yes.yes.entities.machines.TestMachine2;
|
||||||
import com.yes.yes.utils.EntityRegistry;
|
import com.yes.yes.utils.EntityRegistry;
|
||||||
|
import com.yes.yes.utils.GlobalEventHandler;
|
||||||
import com.yes.yes.utils.RegistryEntry;
|
import com.yes.yes.utils.RegistryEntry;
|
||||||
import com.yes.yes.utils.exceptions.AlreadyExistsException;
|
import com.yes.yes.utils.exceptions.AlreadyExistsException;
|
||||||
import com.yes.yes.world.World;
|
import com.yes.yes.world.World;
|
||||||
import javafx.scene.layout.VBox;
|
import javafx.scene.layout.VBox;
|
||||||
|
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
public class GameManager {
|
public class GameManager {
|
||||||
private final VBox root;
|
private final VBox root;
|
||||||
private World world;
|
private World world;
|
||||||
@@ -32,5 +37,11 @@ public class GameManager {
|
|||||||
} catch (AlreadyExistsException e) {
|
} catch (AlreadyExistsException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
|
||||||
|
executor.scheduleAtFixedRate(() -> GlobalEventHandler.trigger("TimerTick", null), 0, 3, TimeUnit.SECONDS);
|
||||||
|
|
||||||
|
GlobalEventHandler.addListener("closing",(__)->executor.shutdown());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,10 @@ public abstract class Entity extends javafx.scene.Group {
|
|||||||
private ArrayList<Component> behaviours = new ArrayList<>();
|
private ArrayList<Component> behaviours = new ArrayList<>();
|
||||||
private int rotation;
|
private int rotation;
|
||||||
|
|
||||||
|
public Entity() {
|
||||||
|
GlobalEventHandler.addListener("TimerTick",(__)->update());
|
||||||
|
}
|
||||||
|
|
||||||
public final void addBehaviour(Component behaviour) {
|
public final void addBehaviour(Component behaviour) {
|
||||||
behaviours.add(behaviour);
|
behaviours.add(behaviour);
|
||||||
behaviour.initialize();
|
behaviour.initialize();
|
||||||
@@ -28,7 +32,7 @@ public abstract class Entity extends javafx.scene.Group {
|
|||||||
|
|
||||||
public final void update() {
|
public final void update() {
|
||||||
for (Component behaviour : behaviours) {
|
for (Component behaviour : behaviours) {
|
||||||
System.out.println("Updating " + behaviour.getClass().getSimpleName());
|
//System.out.println("Updating " + behaviour.getClass().getSimpleName());
|
||||||
behaviour.update();
|
behaviour.update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user