mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2026-08-13 00:45:11 +09:00
Narrow the remaining position, box and colour reads
Color.struct leaves every channel optional, so the rainbow command declares its own fully populated colour. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -37,7 +37,7 @@ end
|
||||
|
||||
--- Get the key used in protected_areas
|
||||
--- TODO expose this from EntityProtection
|
||||
--- @param area BoundingBox
|
||||
--- @param area ExpUtil_AABB.Box
|
||||
--- @return string
|
||||
local function get_area_key(area)
|
||||
return format_string("%i,%i", floor(area.left_top.x), floor(area.left_top.y))
|
||||
@@ -49,13 +49,15 @@ end
|
||||
local function show_protected_entity(player, entity)
|
||||
local key = get_entity_key(entity)
|
||||
if renders[player.index][key] then return end
|
||||
local rb = entity.selection_box.right_bottom
|
||||
local selection_box = entity.selection_box --[[@as ExpUtil_AABB.Box]]
|
||||
local rb = selection_box.right_bottom
|
||||
local position = entity.position --[[@as MapPosition.struct]]
|
||||
renders[player.index][key] = rendering.draw_sprite{
|
||||
sprite = "utility/notification",
|
||||
target = entity,
|
||||
target_offset = {
|
||||
(rb.x - entity.position.x) * 0.75,
|
||||
(rb.y - entity.position.y) * 0.75,
|
||||
(rb.x - position.x) * 0.75,
|
||||
(rb.y - position.y) * 0.75,
|
||||
},
|
||||
x_scale = 2,
|
||||
y_scale = 2,
|
||||
@@ -67,7 +69,7 @@ end
|
||||
--- Show a protected area to a player
|
||||
--- @param player LuaPlayer
|
||||
--- @param surface LuaSurface
|
||||
--- @param area BoundingBox
|
||||
--- @param area ExpUtil_AABB.Box
|
||||
local function show_protected_area(player, surface, area)
|
||||
local key = get_area_key(area)
|
||||
if renders[player.index][key] then return end
|
||||
|
||||
@@ -6,6 +6,12 @@ local Commands = require("modules/exp_commands")
|
||||
local format_player_name = Commands.format_player_name_locale
|
||||
local format_text = Commands.format_rich_text_color
|
||||
|
||||
--- A colour with every channel set, Color.struct leaves them optional
|
||||
--- @class ExpCommands_Rainbow.Color
|
||||
--- @field r number
|
||||
--- @field g number
|
||||
--- @field b number
|
||||
|
||||
--- Wraps one component into the next
|
||||
--- @param c1 number
|
||||
--- @param c2 number
|
||||
@@ -21,8 +27,8 @@ local function step_component(c1, c2)
|
||||
end
|
||||
|
||||
--- Wraps all components of a colour ensuring it remains valid
|
||||
--- @param color Color
|
||||
--- @return Color
|
||||
--- @param color ExpCommands_Rainbow.Color
|
||||
--- @return ExpCommands_Rainbow.Color
|
||||
local function step_color(color)
|
||||
color.r, color.g = step_component(color.r, color.g)
|
||||
color.g, color.b = step_component(color.g, color.b)
|
||||
@@ -32,9 +38,9 @@ local function step_color(color)
|
||||
end
|
||||
|
||||
--- Get the next colour in the rainbow by the given step
|
||||
--- @param color Color
|
||||
--- @param color ExpCommands_Rainbow.Color
|
||||
--- @param step number
|
||||
--- @return Color
|
||||
--- @return ExpCommands_Rainbow.Color
|
||||
local function next_color(color, step)
|
||||
step = step or 0.1
|
||||
local new_color = { r = 0, g = 0, b = 0 }
|
||||
|
||||
Reference in New Issue
Block a user