62 lines
1.2 KiB
Java
62 lines
1.2 KiB
Java
package com.bernard.nodecames.model;
|
|
|
|
import java.util.UUID;
|
|
|
|
import jakarta.persistence.Embeddable;
|
|
import jakarta.persistence.EmbeddedId;
|
|
import jakarta.persistence.Entity;
|
|
import jakarta.persistence.ManyToOne;
|
|
import jakarta.persistence.MapsId;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.Data;
|
|
import lombok.Getter;
|
|
import lombok.NoArgsConstructor;
|
|
import lombok.Setter;
|
|
|
|
@Getter
|
|
@Setter
|
|
@Entity
|
|
@NoArgsConstructor
|
|
public class World {
|
|
|
|
@EmbeddedId
|
|
WorldId id;
|
|
|
|
@MapsId("gameId")
|
|
@ManyToOne
|
|
Game game;
|
|
|
|
// Config used when resetting this world
|
|
GridConfig initialConfig;
|
|
|
|
@ManyToOne(optional = true)
|
|
Grid currentGrid;
|
|
|
|
boolean won;
|
|
|
|
boolean locked;
|
|
|
|
public World(Game g, String name, GridConfig initConfig, Grid currentGrid, boolean won, boolean locked) {
|
|
this.id = new WorldId(g.getId(), name);
|
|
this.game = g;
|
|
this.initialConfig = initConfig;
|
|
this.currentGrid = currentGrid;
|
|
this.won = won;
|
|
this.locked = locked;
|
|
}
|
|
|
|
public String getName() {
|
|
return this.getId().getName();
|
|
}
|
|
|
|
@Data
|
|
@NoArgsConstructor
|
|
@AllArgsConstructor
|
|
@Embeddable
|
|
public static class WorldId {
|
|
UUID gameId;
|
|
String name;
|
|
}
|
|
|
|
}
|