Add *EventListener methods to Entity
This commit is contained in:
@@ -19,8 +19,4 @@ public interface Character extends Movable, Animated, Entity {
|
|||||||
void changeCharacterSet(String characterSetUid);
|
void changeCharacterSet(String characterSetUid);
|
||||||
|
|
||||||
CompletableFuture<Void> performInstantAnimation();
|
CompletableFuture<Void> performInstantAnimation();
|
||||||
|
|
||||||
<E extends Event> void addEventListener(EventType<E> type, Consumer<E> listener);
|
|
||||||
|
|
||||||
<E extends Event> void removeEventListener(EventType<E> type, Consumer<E> listener);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
package com.bartlomiejpluta.base.api.entity;
|
package com.bartlomiejpluta.base.api.entity;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.event.Event;
|
||||||
|
import com.bartlomiejpluta.base.api.event.EventType;
|
||||||
import com.bartlomiejpluta.base.api.event.Reactive;
|
import com.bartlomiejpluta.base.api.event.Reactive;
|
||||||
import com.bartlomiejpluta.base.api.location.Locationable;
|
import com.bartlomiejpluta.base.api.location.Locationable;
|
||||||
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
|
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
|
||||||
import com.bartlomiejpluta.base.internal.logic.Updatable;
|
import com.bartlomiejpluta.base.internal.logic.Updatable;
|
||||||
import com.bartlomiejpluta.base.internal.render.Renderable;
|
import com.bartlomiejpluta.base.internal.render.Renderable;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public interface Entity extends Locationable, Renderable, Updatable, Reactive {
|
public interface Entity extends Locationable, Renderable, Updatable, Reactive {
|
||||||
boolean isBlocking();
|
boolean isBlocking();
|
||||||
|
|
||||||
@@ -20,4 +24,8 @@ public interface Entity extends Locationable, Renderable, Updatable, Reactive {
|
|||||||
void onAdd(ObjectLayer layer);
|
void onAdd(ObjectLayer layer);
|
||||||
|
|
||||||
void onRemove(ObjectLayer layer);
|
void onRemove(ObjectLayer layer);
|
||||||
|
|
||||||
|
<E extends Event> void addEventListener(EventType<E> type, Consumer<E> listener);
|
||||||
|
|
||||||
|
<E extends Event> void removeEventListener(EventType<E> type, Consumer<E> listener);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.bartlomiejpluta.base.lib.entity;
|
|||||||
import com.bartlomiejpluta.base.api.camera.Camera;
|
import com.bartlomiejpluta.base.api.camera.Camera;
|
||||||
import com.bartlomiejpluta.base.api.entity.Entity;
|
import com.bartlomiejpluta.base.api.entity.Entity;
|
||||||
import com.bartlomiejpluta.base.api.event.Event;
|
import com.bartlomiejpluta.base.api.event.Event;
|
||||||
|
import com.bartlomiejpluta.base.api.event.EventType;
|
||||||
import com.bartlomiejpluta.base.api.location.Locationable;
|
import com.bartlomiejpluta.base.api.location.Locationable;
|
||||||
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
|
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
|
||||||
import com.bartlomiejpluta.base.api.move.Direction;
|
import com.bartlomiejpluta.base.api.move.Direction;
|
||||||
@@ -13,6 +14,8 @@ import org.joml.Matrix4fc;
|
|||||||
import org.joml.Vector2fc;
|
import org.joml.Vector2fc;
|
||||||
import org.joml.Vector2ic;
|
import org.joml.Vector2ic;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public abstract class EntityDelegate implements Entity {
|
public abstract class EntityDelegate implements Entity {
|
||||||
protected final Entity entity;
|
protected final Entity entity;
|
||||||
|
|
||||||
@@ -195,6 +198,16 @@ public abstract class EntityDelegate implements Entity {
|
|||||||
entity.setZIndex(zIndex);
|
entity.setZIndex(zIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <E extends Event> void addEventListener(EventType<E> type, Consumer<E> listener) {
|
||||||
|
entity.addEventListener(type, listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <E extends Event> void removeEventListener(EventType<E> type, Consumer<E> listener) {
|
||||||
|
entity.removeEventListener(type, listener);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <E extends Event> void handleEvent(E event) {
|
public <E extends Event> void handleEvent(E event) {
|
||||||
entity.handleEvent(event);
|
entity.handleEvent(event);
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.bartlomiejpluta.base.lib.icon;
|
|||||||
|
|
||||||
import com.bartlomiejpluta.base.api.camera.Camera;
|
import com.bartlomiejpluta.base.api.camera.Camera;
|
||||||
import com.bartlomiejpluta.base.api.event.Event;
|
import com.bartlomiejpluta.base.api.event.Event;
|
||||||
|
import com.bartlomiejpluta.base.api.event.EventType;
|
||||||
import com.bartlomiejpluta.base.api.icon.Icon;
|
import com.bartlomiejpluta.base.api.icon.Icon;
|
||||||
import com.bartlomiejpluta.base.api.location.Locationable;
|
import com.bartlomiejpluta.base.api.location.Locationable;
|
||||||
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
|
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
|
||||||
@@ -14,6 +15,8 @@ import org.joml.Matrix4fc;
|
|||||||
import org.joml.Vector2fc;
|
import org.joml.Vector2fc;
|
||||||
import org.joml.Vector2ic;
|
import org.joml.Vector2ic;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public abstract class IconDelegate implements Icon {
|
public abstract class IconDelegate implements Icon {
|
||||||
protected final Icon icon;
|
protected final Icon icon;
|
||||||
|
|
||||||
@@ -221,6 +224,16 @@ public abstract class IconDelegate implements Icon {
|
|||||||
icon.setZIndex(zIndex);
|
icon.setZIndex(zIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <E extends Event> void addEventListener(EventType<E> type, Consumer<E> listener) {
|
||||||
|
icon.addEventListener(type, listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <E extends Event> void removeEventListener(EventType<E> type, Consumer<E> listener) {
|
||||||
|
icon.removeEventListener(type, listener);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <E extends Event> void handleEvent(E event) {
|
public <E extends Event> void handleEvent(E event) {
|
||||||
icon.handleEvent(event);
|
icon.handleEvent(event);
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.bartlomiejpluta.base.engine.world.entity;
|
|||||||
import com.bartlomiejpluta.base.api.camera.Camera;
|
import com.bartlomiejpluta.base.api.camera.Camera;
|
||||||
import com.bartlomiejpluta.base.api.entity.Entity;
|
import com.bartlomiejpluta.base.api.entity.Entity;
|
||||||
import com.bartlomiejpluta.base.api.event.Event;
|
import com.bartlomiejpluta.base.api.event.Event;
|
||||||
|
import com.bartlomiejpluta.base.api.event.EventType;
|
||||||
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
|
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
|
||||||
import com.bartlomiejpluta.base.api.screen.Screen;
|
import com.bartlomiejpluta.base.api.screen.Screen;
|
||||||
import com.bartlomiejpluta.base.engine.world.location.LocationableModel;
|
import com.bartlomiejpluta.base.engine.world.location.LocationableModel;
|
||||||
@@ -11,6 +12,8 @@ import com.bartlomiejpluta.base.lib.event.EventHandler;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public class AbstractEntity extends LocationableModel implements Entity {
|
public class AbstractEntity extends LocationableModel implements Entity {
|
||||||
private final EventHandler eventHandler = new EventHandler();
|
private final EventHandler eventHandler = new EventHandler();
|
||||||
|
|
||||||
@@ -35,6 +38,16 @@ public class AbstractEntity extends LocationableModel implements Entity {
|
|||||||
this.layer = null;
|
this.layer = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <E extends Event> void addEventListener(EventType<E> type, Consumer<E> listener) {
|
||||||
|
eventHandler.addListener(type, listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <E extends Event> void removeEventListener(EventType<E> type, Consumer<E> listener) {
|
||||||
|
eventHandler.removeListener(type, listener);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <E extends Event> void handleEvent(E event) {
|
public <E extends Event> void handleEvent(E event) {
|
||||||
eventHandler.handleEvent(event);
|
eventHandler.handleEvent(event);
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.bartlomiejpluta.base.engine.world.icon.model;
|
package com.bartlomiejpluta.base.engine.world.icon.model;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.event.Event;
|
import com.bartlomiejpluta.base.api.event.Event;
|
||||||
|
import com.bartlomiejpluta.base.api.event.EventType;
|
||||||
import com.bartlomiejpluta.base.api.icon.Icon;
|
import com.bartlomiejpluta.base.api.icon.Icon;
|
||||||
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
|
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
|
||||||
import com.bartlomiejpluta.base.engine.core.gl.object.mesh.Mesh;
|
import com.bartlomiejpluta.base.engine.core.gl.object.mesh.Mesh;
|
||||||
@@ -13,6 +14,8 @@ import lombok.Setter;
|
|||||||
import org.joml.Vector2f;
|
import org.joml.Vector2f;
|
||||||
import org.joml.Vector2fc;
|
import org.joml.Vector2fc;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public class DefaultIcon extends Sprite implements Icon {
|
public class DefaultIcon extends Sprite implements Icon {
|
||||||
private final EventHandler eventHandler = new EventHandler();
|
private final EventHandler eventHandler = new EventHandler();
|
||||||
private final IconSetManager iconSetManager;
|
private final IconSetManager iconSetManager;
|
||||||
@@ -65,11 +68,6 @@ public class DefaultIcon extends Sprite implements Icon {
|
|||||||
this.layer = null;
|
this.layer = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public <E extends Event> void handleEvent(E event) {
|
|
||||||
eventHandler.handleEvent(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void changeIcon(int row, int column) {
|
public void changeIcon(int row, int column) {
|
||||||
material.setSpritePosition(column, row);
|
material.setSpritePosition(column, row);
|
||||||
@@ -147,6 +145,21 @@ public class DefaultIcon extends Sprite implements Icon {
|
|||||||
return iconScale.y;
|
return iconScale.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <E extends Event> void addEventListener(EventType<E> type, Consumer<E> listener) {
|
||||||
|
eventHandler.addListener(type, listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <E extends Event> void removeEventListener(EventType<E> type, Consumer<E> listener) {
|
||||||
|
eventHandler.removeListener(type, listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <E extends Event> void handleEvent(E event) {
|
||||||
|
eventHandler.handleEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(float dt) {
|
public void update(float dt) {
|
||||||
// noop
|
// noop
|
||||||
|
|||||||
Reference in New Issue
Block a user