mirror of
https://athene2.informatik.unibw-muenchen.de/progproj/gruppen-ht24/Gruppe-02.git
synced 2025-01-18 22:56:15 +01:00
refactor PlayerColor
fixed default playermodel selection
This commit is contained in:
parent
09ea8a046e
commit
1f37eb9962
@ -25,7 +25,7 @@ import com.simsilica.lemur.style.ElementId;
|
|||||||
|
|
||||||
import pp.dialog.Dialog;
|
import pp.dialog.Dialog;
|
||||||
import pp.monopoly.client.MonopolyApp;
|
import pp.monopoly.client.MonopolyApp;
|
||||||
import pp.monopoly.game.server.PlayerColor;
|
import pp.monopoly.game.server.Player;
|
||||||
import pp.monopoly.message.client.PlayerReady;
|
import pp.monopoly.message.client.PlayerReady;
|
||||||
import pp.monopoly.notification.Sound;
|
import pp.monopoly.notification.Sound;
|
||||||
|
|
||||||
@ -67,6 +67,9 @@ public class LobbyMenu extends Dialog {
|
|||||||
/** Selected player figure. */
|
/** Selected player figure. */
|
||||||
private String figure;
|
private String figure;
|
||||||
|
|
||||||
|
private VersionedReference<Set<Integer>> selectionRef;
|
||||||
|
private Selector<String> figureDropdown;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs the lobby menu for player configuration.
|
* Constructs the lobby menu for player configuration.
|
||||||
*
|
*
|
||||||
@ -142,7 +145,7 @@ public class LobbyMenu extends Dialog {
|
|||||||
figureDropdownContainer.setBackground(null);
|
figureDropdownContainer.setBackground(null);
|
||||||
|
|
||||||
VersionedList<String> figures = new VersionedList<>();
|
VersionedList<String> figures = new VersionedList<>();
|
||||||
figures.add("Laptop");
|
figures.add("Computer");
|
||||||
figures.add("Flugzeug");
|
figures.add("Flugzeug");
|
||||||
figures.add("Jägermeister");
|
figures.add("Jägermeister");
|
||||||
figures.add("Katze");
|
figures.add("Katze");
|
||||||
@ -150,8 +153,7 @@ public class LobbyMenu extends Dialog {
|
|||||||
figures.add("Handyholster");
|
figures.add("Handyholster");
|
||||||
|
|
||||||
|
|
||||||
|
figureDropdown = new Selector<>(figures, "glass");
|
||||||
Selector<String> figureDropdown = new Selector<>(figures, "glass");
|
|
||||||
figureDropdown.setBackground(new QuadBackgroundComponent(ColorRGBA.DarkGray));
|
figureDropdown.setBackground(new QuadBackgroundComponent(ColorRGBA.DarkGray));
|
||||||
figureDropdown.setPreferredSize(new Vector3f(100, 20, 0));
|
figureDropdown.setPreferredSize(new Vector3f(100, 20, 0));
|
||||||
figureDropdownContainer.addChild(figureDropdown);
|
figureDropdownContainer.addChild(figureDropdown);
|
||||||
@ -159,10 +161,12 @@ public class LobbyMenu extends Dialog {
|
|||||||
Vector3f dimens2 = figureDropdown.getPopupContainer().getPreferredSize();
|
Vector3f dimens2 = figureDropdown.getPopupContainer().getPreferredSize();
|
||||||
dimens2.setX( dimens.getX() );
|
dimens2.setX( dimens.getX() );
|
||||||
figureDropdown.getPopupContainer().setPreferredSize(new Vector3f(200,200,5));
|
figureDropdown.getPopupContainer().setPreferredSize(new Vector3f(200,200,5));
|
||||||
figureDropdown.getSelectionModel().setSelection(0);
|
|
||||||
figure = "Laptop";
|
|
||||||
|
|
||||||
addSelectionActionListener(figureDropdown, this::onDropdownSelectionChanged);
|
// Create selection ref for updating
|
||||||
|
selectionRef = figureDropdown.getSelectionModel().createReference();
|
||||||
|
// Set default
|
||||||
|
figureDropdown.getSelectionModel().setSelection(0);
|
||||||
|
onDropdownSelectionChanged(figureDropdown);
|
||||||
|
|
||||||
Container buttonContainer = menuContainer.addChild(new Container(new SpringGridLayout(Axis.X, Axis.Y)));
|
Container buttonContainer = menuContainer.addChild(new Container(new SpringGridLayout(Axis.X, Axis.Y)));
|
||||||
buttonContainer.setPreferredSize(new Vector3f(100, 40, 0));
|
buttonContainer.setPreferredSize(new Vector3f(100, 40, 0));
|
||||||
@ -216,6 +220,7 @@ public class LobbyMenu extends Dialog {
|
|||||||
1 // Höhere Z-Ebene für den Vordergrund
|
1 // Höhere Z-Ebene für den Vordergrund
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
app.getGuiNode().attachChild(menuContainer);
|
app.getGuiNode().attachChild(menuContainer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,31 +252,12 @@ public class LobbyMenu extends Dialog {
|
|||||||
|
|
||||||
// Create a material with a solid color
|
// Create a material with a solid color
|
||||||
Material material = new Material(app.getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md");
|
Material material = new Material(app.getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md");
|
||||||
material.setColor("Color", idToColor()); // Set the desired color
|
material.setColor("Color", Player.getColor(app.getId()).getColor()); // Set the desired color
|
||||||
circleGeometry.setMaterial(material);
|
circleGeometry.setMaterial(material);
|
||||||
|
|
||||||
return circleGeometry;
|
return circleGeometry;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Maps the player's ID to a corresponding color.
|
|
||||||
*
|
|
||||||
* @return the color associated with the player's ID
|
|
||||||
*/
|
|
||||||
private ColorRGBA idToColor() {
|
|
||||||
switch (app.getId()+1) {
|
|
||||||
case 1: return PlayerColor.CYAN.getColor();
|
|
||||||
case 2: return PlayerColor.YELLOW.getColor();
|
|
||||||
case 3: return PlayerColor.RED.getColor();
|
|
||||||
case 4: return PlayerColor.PINK.getColor();
|
|
||||||
case 5: return PlayerColor.GREEN.getColor();
|
|
||||||
case 6: return PlayerColor.PURPLE.getColor();
|
|
||||||
|
|
||||||
default:
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Toggles the player's ready state and sends the configuration to the server.
|
* Toggles the player's ready state and sends the configuration to the server.
|
||||||
*/
|
*/
|
||||||
@ -287,42 +273,11 @@ public class LobbyMenu extends Dialog {
|
|||||||
new SettingsMenu(app).open();
|
new SettingsMenu(app).open();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
@Override
|
||||||
* Adds a custom action listener to a dropdown selector.
|
public void update(float tpf) {
|
||||||
*
|
if (selectionRef.update()) {
|
||||||
* @param selector the selector to add the listener to
|
onDropdownSelectionChanged(figureDropdown);
|
||||||
* @param listener the action to perform when a selection changes
|
}
|
||||||
*/
|
|
||||||
private void addSelectionActionListener(Selector<String> selector, SelectionActionListener<String> listener) {
|
|
||||||
VersionedReference<Set<Integer>> selectionRef = selector.getSelectionModel().createReference();
|
|
||||||
|
|
||||||
app.getStateManager().attach(new BaseAppState() {
|
|
||||||
@Override
|
|
||||||
public void update(float tpf) {
|
|
||||||
if (selectionRef.update()) {
|
|
||||||
String selected = selectionRef.get().toString();
|
|
||||||
listener.onSelectionChanged(selected);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void initialize(Application app) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void cleanup(Application app) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onEnable() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onDisable() {
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -330,30 +285,20 @@ public class LobbyMenu extends Dialog {
|
|||||||
*
|
*
|
||||||
* @param selected the selected figure
|
* @param selected the selected figure
|
||||||
*/
|
*/
|
||||||
private void onDropdownSelectionChanged(String selected) {
|
private void onDropdownSelectionChanged(Selector<String> selector) {
|
||||||
app.getGameLogic().playSound(Sound.BUTTON);
|
app.getGameLogic().playSound(Sound.BUTTON);
|
||||||
switch (selected) {
|
switch (selector.getSelectedItem()) {
|
||||||
case "[0]":
|
case "Jägermeister":
|
||||||
figure = "Computer";
|
|
||||||
break;
|
|
||||||
case "[1]":
|
|
||||||
figure = "Flugzeug";
|
|
||||||
break;
|
|
||||||
case "[2]":
|
|
||||||
figure = "Jaegermeister";
|
figure = "Jaegermeister";
|
||||||
break;
|
break;
|
||||||
case "[3]":
|
case "Handyholster":
|
||||||
figure = "Katze";
|
|
||||||
break;
|
|
||||||
case "[4]":
|
|
||||||
figure = "OOP";
|
|
||||||
break;
|
|
||||||
case "[5]":
|
|
||||||
figure = "Holster";
|
figure = "Holster";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
figure = selector.getSelectedItem();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
System.out.println("FIGUR:::::"+figure);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -133,7 +133,7 @@ public class Toolbar extends Dialog implements GameEventListener {
|
|||||||
|
|
||||||
// Spielerfarbe abrufen
|
// Spielerfarbe abrufen
|
||||||
Player currentPlayer = playerHandler.getPlayerById(app.getId());
|
Player currentPlayer = playerHandler.getPlayerById(app.getId());
|
||||||
ColorRGBA playerColor = currentPlayer.getColor().getColor();
|
ColorRGBA playerColor = Player.getColor(currentPlayer.getId()).getColor();
|
||||||
|
|
||||||
// Oberer Balken
|
// Oberer Balken
|
||||||
Container playerColorBar = new Container();
|
Container playerColorBar = new Container();
|
||||||
@ -381,7 +381,7 @@ public class Toolbar extends Dialog implements GameEventListener {
|
|||||||
for (Player player : playerHandler.getPlayers()) {
|
for (Player player : playerHandler.getPlayers()) {
|
||||||
if (player.getId() != app.getId()) {
|
if (player.getId() != app.getId()) {
|
||||||
// Spielerfarbe abrufen
|
// Spielerfarbe abrufen
|
||||||
ColorRGBA playerColor = (player.getColor().getColor());
|
ColorRGBA playerColor = (Player.getColor(player.getId()).getColor());
|
||||||
|
|
||||||
// Label für den Spieler erstellen
|
// Label für den Spieler erstellen
|
||||||
Label playerLabel = new Label(
|
Label playerLabel = new Label(
|
||||||
|
@ -90,7 +90,7 @@ public class Player implements FieldVisitor<Void>{
|
|||||||
return figure;
|
return figure;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PlayerColor getColor() {
|
public static PlayerColor getColor(int id) {
|
||||||
switch ((id%6)+1) {
|
switch ((id%6)+1) {
|
||||||
case 1: return PlayerColor.CYAN;
|
case 1: return PlayerColor.CYAN;
|
||||||
case 2: return PlayerColor.YELLOW;
|
case 2: return PlayerColor.YELLOW;
|
||||||
|
@ -6,22 +6,24 @@ import com.jme3.math.ColorRGBA;
|
|||||||
* Enum representing six distinct colors for players in the game.
|
* Enum representing six distinct colors for players in the game.
|
||||||
*/
|
*/
|
||||||
public enum PlayerColor {
|
public enum PlayerColor {
|
||||||
CYAN(new ColorRGBA(1 / 255f, 190 / 255f, 254 / 255f, 1)),
|
CYAN(new ColorRGBA(1 / 255f, 190 / 255f, 254 / 255f, 1), "Cyan"),
|
||||||
YELLOW(new ColorRGBA(255 / 255f, 255 / 255f, 0 / 255f, 1)),
|
YELLOW(new ColorRGBA(255 / 255f, 255 / 255f, 0 / 255f, 1), "Gelb"),
|
||||||
RED(new ColorRGBA(255 / 255f, 0 / 255f, 0 / 255f, 1)),
|
RED(new ColorRGBA(255 / 255f, 0 / 255f, 0 / 255f, 1), "Rot"),
|
||||||
PINK(new ColorRGBA(255 / 255f, 77 / 255f, 166 / 255f, 1)),
|
PINK(new ColorRGBA(255 / 255f, 77 / 255f, 166 / 255f, 1), "Pink"),
|
||||||
GREEN(new ColorRGBA(0 / 255f, 204 / 255f, 0 / 255f, 1)),
|
GREEN(new ColorRGBA(0 / 255f, 204 / 255f, 0 / 255f, 1), "Grün"),
|
||||||
PURPLE(new ColorRGBA(143 / 255f, 0 / 255f, 255 / 255f, 1));
|
PURPLE(new ColorRGBA(143 / 255f, 0 / 255f, 255 / 255f, 1), "Lila");
|
||||||
|
|
||||||
private final ColorRGBA color;
|
private final ColorRGBA color;
|
||||||
|
private final String colorName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a PlayerColor with the specified ColorRGBA value.
|
* Constructs a PlayerColor with the specified ColorRGBA value.
|
||||||
*
|
*
|
||||||
* @param color the ColorRGBA value associated with the player color
|
* @param color the ColorRGBA value associated with the player color
|
||||||
*/
|
*/
|
||||||
PlayerColor(ColorRGBA color) {
|
PlayerColor(ColorRGBA color, String colorName) {
|
||||||
this.color = color;
|
this.color = color;
|
||||||
|
this.colorName = colorName;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -32,4 +34,13 @@ public enum PlayerColor {
|
|||||||
public ColorRGBA getColor() {
|
public ColorRGBA getColor() {
|
||||||
return color;
|
return color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the Name of the Color
|
||||||
|
*
|
||||||
|
* @return a String with re corresponing name
|
||||||
|
*/
|
||||||
|
public String getColorName() {
|
||||||
|
return colorName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user