ix: move manager classes to game logic

This commit is contained in:
2021-05-01 21:40:36 +02:00
parent fe249f39ea
commit 2783173898
2 changed files with 6 additions and 2 deletions

View File

@ -1,61 +0,0 @@
package uulm.teamname.marvelous.gamelibrary.entities;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
/** Represents a managed list of {@link Entity}s. */
public class EntityManager {
/** The internal collection of {@link Entity}s */
private final HashSet<Entity> entities = new HashSet<>();
/**
* Takes over all the entities from a different {@link EntityManager}.
* @param other The entity list to take the data from
*/
public void cloneFrom(EntityManager other) {
entities.clear();
for(Entity entity: other.entities) {
entities.add(entity.clone());
}
}
/**
* Clears the list of entities.
*/
public void clear() {
entities.clear();
}
/**
* Adds an entity to the list.
* @param entity The {@link Entity} to add
*/
public void addEntity(Entity entity) {
entities.add(entity);
}
/**
* Adds multiple entities to the list.
* @param entities The entities to add
*/
public void addEntities(Entity... entities) {
this.entities.addAll(Arrays.asList(entities));
}
/**
* Removes an entity from the list.
* @param entity The {@link Entity} to remove
*/
public boolean removeEntity(Entity entity) {
return entities.remove(entity);
}
/**
* Iterates over all entities inside the list.
* @return An iterator over every {@link Entity}
*/
public Iterator<Entity> getEntities() {
return entities.iterator();
}
}

View File

@ -1,52 +0,0 @@
package uulm.teamname.marvelous.gamelibrary.entities;
import java.util.HashMap;
/** Represents a manager for infinity stone cooldowns. */
public class StoneCooldownManager {
/** The cooldown round numbers for every stone */
private final HashMap<StoneType, Integer> cooldowns = new HashMap<>();
/**
* Takes over all the cooldowns from a different {@link StoneCooldownManager}.
* @param other The cooldown manager to take the data from
*/
public void cloneFrom(StoneCooldownManager other) {
cooldowns.clear();
cooldowns.putAll(other.cooldowns);
}
/**
* Decreases all cooldowns by one according to a round having passed.
*/
public void update() {
cooldowns.replaceAll((s, v) -> Math.max(0, cooldowns.get(s) - 1));
}
/**
* Checks if a stone is on cooldown.
* @param stone The {@link StoneType} to check for
* @return Whether or not the stone is on cooldown
*/
public boolean onCooldown(StoneType stone) {
return cooldowns.containsKey(stone);
}
/**
* Retrieves the current cooldown for a stone.
* @param stone The {@link StoneType} to check for
* @return The stone's cooldown in rounds
*/
public int getCooldown(StoneType stone) {
return cooldowns.get(stone);
}
/**
* Marks a stone as on cooldown.
* @param stone The {@link StoneType} to check for
* @param duration The number of rounds the stone should be on cooldown
*/
public void setCooldown(StoneType stone, int duration) {
cooldowns.put(stone, Math.max(0, duration));
}
}