Create AbstractEntity class

This commit is contained in:
2022-08-23 19:44:18 +02:00
parent 1715b75eab
commit 38d7baaef1
5 changed files with 286 additions and 16 deletions

View File

@@ -6,6 +6,7 @@ import com.bartlomiejpluta.base.api.camera.Camera;
import com.bartlomiejpluta.base.api.character.Character;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.context.GamePauseEvent;
import com.bartlomiejpluta.base.api.entity.Entity;
import com.bartlomiejpluta.base.api.event.Event;
import com.bartlomiejpluta.base.api.event.EventType;
import com.bartlomiejpluta.base.api.gui.GUI;
@@ -24,6 +25,7 @@ import com.bartlomiejpluta.base.engine.gui.render.NanoVGGUI;
import com.bartlomiejpluta.base.engine.gui.xml.inflater.Inflater;
import com.bartlomiejpluta.base.engine.world.animation.manager.AnimationManager;
import com.bartlomiejpluta.base.engine.world.character.manager.CharacterManager;
import com.bartlomiejpluta.base.engine.world.entity.AbstractEntity;
import com.bartlomiejpluta.base.engine.world.icon.manager.IconManager;
import com.bartlomiejpluta.base.engine.world.image.manager.ImageManager;
import com.bartlomiejpluta.base.engine.world.map.manager.MapManager;
@@ -160,6 +162,11 @@ public class DefaultContext implements Context {
return animationManager.loadObject(animationUid);
}
@Override
public Entity createAbstractEntity() {
return new AbstractEntity();
}
@Override
public Icon createIcon(@NonNull String iconSetUid, int row, int column) {
return iconManager.createIcon(iconSetUid, row, column);

View File

@@ -0,0 +1,52 @@
package com.bartlomiejpluta.base.engine.world.entity;
import com.bartlomiejpluta.base.api.camera.Camera;
import com.bartlomiejpluta.base.api.entity.Entity;
import com.bartlomiejpluta.base.api.event.Event;
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.engine.world.location.LocationableModel;
import com.bartlomiejpluta.base.internal.render.ShaderManager;
import com.bartlomiejpluta.base.lib.event.EventHandler;
import lombok.Getter;
import lombok.Setter;
public class AbstractEntity extends LocationableModel implements Entity {
private final EventHandler eventHandler = new EventHandler();
@Getter
@Setter
private boolean blocking;
@Getter
@Setter
private int zIndex;
@Getter
private ObjectLayer layer;
@Override
public void onAdd(ObjectLayer layer) {
this.layer = layer;
}
@Override
public void onRemove(ObjectLayer layer) {
this.layer = null;
}
@Override
public <E extends Event> void handleEvent(E event) {
eventHandler.handleEvent(event);
}
@Override
public void update(float dt) {
// noop
}
@Override
public void render(Screen screen, Camera camera, ShaderManager shaderManager) {
// noop
}
}