mirror of
https://athene2.informatik.unibw-muenchen.de/progproj/gruppen-ht24/Gruppe-02.git
synced 2024-11-24 22:49:44 +01:00
remove 2d map view
This commit is contained in:
parent
46d2dce372
commit
a66c570b51
@ -1,75 +0,0 @@
|
|||||||
package pp.monopoly.client.gui;
|
|
||||||
|
|
||||||
import com.jme3.material.Material;
|
|
||||||
import com.jme3.material.RenderState.BlendMode;
|
|
||||||
import com.jme3.math.ColorRGBA;
|
|
||||||
import com.jme3.scene.Geometry;
|
|
||||||
import com.jme3.scene.Node;
|
|
||||||
import com.jme3.scene.Spatial.CullHint;
|
|
||||||
import com.jme3.scene.shape.Quad;
|
|
||||||
|
|
||||||
import pp.monopoly.client.MonopolyApp;
|
|
||||||
import pp.monopoly.model.Board;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents the visual view of a {@link Board}, used to display the map structure and elements.
|
|
||||||
* This class handles the graphical representation of the board, including background setup and grid lines.
|
|
||||||
*/
|
|
||||||
class MapView {
|
|
||||||
private static final float FIELD_SIZE = 40f;
|
|
||||||
private static final float BACKGROUND_DEPTH = -4f;
|
|
||||||
private static final ColorRGBA BACKGROUND_COLOR = new ColorRGBA(0, 0.05f, 0.05f, 0.5f);
|
|
||||||
|
|
||||||
private final MonopolyApp app;
|
|
||||||
private final Node mapNode = new Node("map");
|
|
||||||
private final Board board;
|
|
||||||
private final MapViewSynchronizer synchronizer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructs a new MapView for a given {@link Board} and {@link MonopolyApp}.
|
|
||||||
*
|
|
||||||
* @param board the board to visualize
|
|
||||||
* @param app the main application instance
|
|
||||||
*/
|
|
||||||
MapView(Board board, MonopolyApp app) {
|
|
||||||
this.board = board;
|
|
||||||
this.app = app;
|
|
||||||
this.synchronizer = new MapViewSynchronizer(this);
|
|
||||||
setupBackground();
|
|
||||||
app.getGameLogic().addListener(synchronizer);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unregisters the {@link MapViewSynchronizer} from listening to board changes.
|
|
||||||
*/
|
|
||||||
void unregister() {
|
|
||||||
app.getGameLogic().removeListener(synchronizer);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets up the background of the map view using a quad geometry.
|
|
||||||
*/
|
|
||||||
private void setupBackground() {
|
|
||||||
Material mat = new Material(app.getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md");
|
|
||||||
mat.setColor("Color", BACKGROUND_COLOR);
|
|
||||||
mat.getAdditionalRenderState().setBlendMode(BlendMode.Alpha);
|
|
||||||
Geometry background = new Geometry("MapBackground", new Quad(board.getWidth() * FIELD_SIZE, board.getHeight() * FIELD_SIZE));
|
|
||||||
background.setMaterial(mat);
|
|
||||||
background.setLocalTranslation(0f, 1f, BACKGROUND_DEPTH);
|
|
||||||
background.setCullHint(CullHint.Never);
|
|
||||||
mapNode.attachChild(background);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the root node containing all visual elements in this map view.
|
|
||||||
*
|
|
||||||
* @return the root node for the map view
|
|
||||||
*/
|
|
||||||
public Node getNode() {
|
|
||||||
return mapNode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Board getBoard() {
|
|
||||||
return board;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,45 +0,0 @@
|
|||||||
package pp.monopoly.client.gui;
|
|
||||||
|
|
||||||
import com.jme3.scene.Spatial;
|
|
||||||
|
|
||||||
import pp.monopoly.model.Figure;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Synchronizes the visual representation of the board with the game model.
|
|
||||||
* Handles updates for items on the board.
|
|
||||||
*/
|
|
||||||
class MapViewSynchronizer extends BoardSynchronizer {
|
|
||||||
private final MapView view;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructs a new MapViewSynchronizer for the given MapView.
|
|
||||||
*
|
|
||||||
* @param view the MapView to synchronize with the game model
|
|
||||||
*/
|
|
||||||
public MapViewSynchronizer(MapView view) {
|
|
||||||
super(view.getBoard(), view.getNode());
|
|
||||||
this.view = view;
|
|
||||||
addExisting();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Enables the state by performing initial setup, such as adding any items to the view.
|
|
||||||
*/
|
|
||||||
|
|
||||||
protected void enableState() {
|
|
||||||
// Platz für zusätzliche Initialisierungen
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Disables the state by clearing the view.
|
|
||||||
*/
|
|
||||||
|
|
||||||
protected void disableState() {
|
|
||||||
view.getNode().detachAllChildren(); // Entfernt alle visuellen Elemente vom Knoten
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public Spatial visit(Figure figure) {
|
|
||||||
return figure.accept(this);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user