Remove movement rules system
This commit is contained in:
@@ -3,7 +3,6 @@ package com.bartlomiejpluta.base.api.map.layer.object;
|
||||
import com.bartlomiejpluta.base.api.entity.Entity;
|
||||
import com.bartlomiejpluta.base.api.map.layer.base.Layer;
|
||||
import com.bartlomiejpluta.base.api.move.Movement;
|
||||
import com.bartlomiejpluta.base.api.rule.MovementRule;
|
||||
import org.joml.Vector2ic;
|
||||
|
||||
import java.util.List;
|
||||
@@ -17,12 +16,6 @@ public interface ObjectLayer extends Layer {
|
||||
|
||||
List<Entity> getEntities();
|
||||
|
||||
void registerMovementRule(MovementRule rule);
|
||||
|
||||
void unregisterMovementRule(MovementRule rule);
|
||||
|
||||
void unregisterRules();
|
||||
|
||||
void setPassageAbility(int row, int column, PassageAbility passageAbility);
|
||||
|
||||
PassageAbility[][] getPassageMap();
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
package com.bartlomiejpluta.base.api.rule;
|
||||
|
||||
import com.bartlomiejpluta.base.api.entity.Entity;
|
||||
import com.bartlomiejpluta.base.api.move.Movement;
|
||||
import org.joml.Vector2ic;
|
||||
|
||||
public interface MovementRule {
|
||||
Vector2ic from();
|
||||
|
||||
Vector2ic to();
|
||||
|
||||
void invoke(Movement movement);
|
||||
}
|
||||
@@ -8,7 +8,6 @@ import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
|
||||
import com.bartlomiejpluta.base.api.map.layer.object.PassageAbility;
|
||||
import com.bartlomiejpluta.base.api.map.model.GameMap;
|
||||
import com.bartlomiejpluta.base.api.move.Movement;
|
||||
import com.bartlomiejpluta.base.api.rule.MovementRule;
|
||||
import com.bartlomiejpluta.base.api.screen.Screen;
|
||||
import com.bartlomiejpluta.base.engine.world.map.layer.base.BaseLayer;
|
||||
import com.bartlomiejpluta.base.internal.render.ShaderManager;
|
||||
@@ -36,8 +35,6 @@ public class DefaultObjectLayer extends BaseLayer implements ObjectLayer {
|
||||
|
||||
private final Queue<Movement> movements = new LinkedList<>();
|
||||
|
||||
private final List<MovementRule> movementRules = new ArrayList<>();
|
||||
|
||||
private final int rows;
|
||||
private final int columns;
|
||||
|
||||
@@ -48,21 +45,6 @@ public class DefaultObjectLayer extends BaseLayer implements ObjectLayer {
|
||||
this.passageMap = passageMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerMovementRule(MovementRule rule) {
|
||||
movementRules.add(rule);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterMovementRule(MovementRule rule) {
|
||||
movementRules.remove(rule);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterRules() {
|
||||
movementRules.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addEntity(Entity entity) {
|
||||
var layer = (DefaultObjectLayer) entity.getLayer();
|
||||
@@ -150,18 +132,6 @@ public class DefaultObjectLayer extends BaseLayer implements ObjectLayer {
|
||||
var to = movement.getTo();
|
||||
if (isTileReachable(to)) {
|
||||
movement.perform();
|
||||
|
||||
// Disclaimer
|
||||
// For the sake of an easy adding and removing
|
||||
// rules from the rule.update() method inside
|
||||
// the loop, the loop itself has been implemented
|
||||
// as plain old C-style for loop.
|
||||
for (int i = 0; i < movementRules.size(); ++i) {
|
||||
var rule = movementRules.get(i);
|
||||
if (((from.equals(rule.from())) || (to.equals(rule.to())))) {
|
||||
rule.invoke(movement);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user