faltava definir comandos

en color diferent el element seleccionat
This commit is contained in:
2026-04-08 17:06:00 +02:00
parent 410b2b548d
commit 3db74ebd4d
3 changed files with 38 additions and 20 deletions

View File

@@ -244,9 +244,16 @@ categories:
completions:
ITEM: [ADD, DELETE, DUPLICATE]
- keyword: PLATFORM
handler: cmd_platform
description: "Add, delete or duplicate platform"
usage: "PLATFORM <ADD|DELETE|DUPLICATE>"
completions:
PLATFORM: [ADD, DELETE, DUPLICATE]
- keyword: SET
handler: cmd_set
description: "Set property (enemy, item or room)"
description: "Set property (enemy, item, platform or room)"
usage: "SET <property> <value>"
dynamic_completions: true
completions:

View File

@@ -72,7 +72,6 @@ enemies:
boundaries:
position1: {x: 4, y: 7}
position2: {x: 25, y: 7}
color: 8
- animation: upv_student.yaml
position: {x: 9, y: 18}
@@ -80,19 +79,8 @@ enemies:
boundaries:
position1: {x: 3, y: 18}
position2: {x: 23, y: 18}
color: 10
flip: true
# Plataformas móviles en esta habitación
platforms:
- animation: bin.yaml
position: {x: 5, y: 17}
velocity: {x: 25, y: 0}
boundaries:
position1: {x: 3, y: 17}
position2: {x: 20, y: 17}
frame: 0
# Objetos en esta habitación
items:
- tileSetFile: items.gif
@@ -100,3 +88,13 @@ items:
position: {x: 4, y: 6}
counter: 1
# Plataformas móviles en esta habitación
platforms:
- animation: bin.yaml
position: {x: 2, y: 16}
velocity: {x: 25, y: 0}
boundaries:
position1: {x: 2, y: 16}
position2: {x: 20, y: 15}
frame: 0

View File

@@ -989,9 +989,15 @@ void MapEditor::renderEntityBoundaries() {
auto game_surface = Screen::get()->getRendererSurface();
if (!game_surface) { return; }
const Uint8 COLOR_BOUND1 = 11;
const Uint8 COLOR_BOUND2 = 13;
const Uint8 COLOR_ROUTE = 15;
// Colores para la entidad seleccionada (brillantes)
constexpr Uint8 SEL_BOUND1 = 21; // BRIGHT_CYAN
constexpr Uint8 SEL_BOUND2 = 25; // BRIGHT_YELLOW
constexpr Uint8 SEL_ROUTE = 26; // BRIGHT_WHITE
// Colores para entidades no seleccionadas (apagados)
constexpr Uint8 DIM_BOUND1 = 11; // CYAN
constexpr Uint8 DIM_BOUND2 = 13; // YELLOW
constexpr Uint8 DIM_ROUTE = 14; // WHITE (gris medio)
for (auto type : {EntityType::ENEMY, EntityType::PLATFORM}) {
for (int i = 0; i < entityDataCount(type); ++i) {
@@ -999,6 +1005,8 @@ void MapEditor::renderEntityBoundaries() {
auto bd = entityBoundaries(type, i);
constexpr float HALF = Tile::SIZE / 2.0F;
bool is_selected = selection_.is(type) && selection_.index == i;
// Posiciones base (pueden estar siendo arrastradas)
float init_x = pos_x;
float init_y = pos_y;
@@ -1019,15 +1027,20 @@ void MapEditor::renderEntityBoundaries() {
init_x = drag_.snap_x;
init_y = drag_.snap_y;
}
is_selected = true; // Arrastrando = siempre iluminado
}
Uint8 color_b1 = is_selected ? SEL_BOUND1 : DIM_BOUND1;
Uint8 color_b2 = is_selected ? SEL_BOUND2 : DIM_BOUND2;
Uint8 color_route = is_selected ? SEL_ROUTE : DIM_ROUTE;
// Dibujar líneas de ruta
game_surface->drawLine(b1_x + HALF, b1_y + HALF, init_x + HALF, init_y + HALF, COLOR_ROUTE);
game_surface->drawLine(init_x + HALF, init_y + HALF, b2_x + HALF, b2_y + HALF, COLOR_ROUTE);
game_surface->drawLine(b1_x + HALF, b1_y + HALF, init_x + HALF, init_y + HALF, color_route);
game_surface->drawLine(init_x + HALF, init_y + HALF, b2_x + HALF, b2_y + HALF, color_route);
// Marcadores en las boundaries
renderBoundaryMarker(b1_x, b1_y, COLOR_BOUND1);
renderBoundaryMarker(b2_x, b2_y, COLOR_BOUND2);
renderBoundaryMarker(b1_x, b1_y, color_b1);
renderBoundaryMarker(b2_x, b2_y, color_b2);
}
}
}