diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 269f4ef..0000000 --- a/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -mod -*.svg -mod-list.json -*.dat -*.pdn \ No newline at end of file diff --git a/Shortcuts/control.lua b/Shortcuts/control.lua index a1c10be..b3aed60 100644 --- a/Shortcuts/control.lua +++ b/Shortcuts/control.lua @@ -14,7 +14,7 @@ local function update_armor(event) end end -local function update_state(event, equipment_type) +local function update_state(event, equipment_type) -- toggles the armor update_armor(event) local grid = global.shortcuts_armor[game.players[event.player_index].index] if grid then @@ -24,12 +24,14 @@ local function update_state(event, equipment_type) local position = equipment.position local energy = equipment.energy if not (string.sub(equipment.name,1,9) == "disabled-") then - grid.take(equipment) - local new_equipment = grid.put{name="disabled-" .. name, position=position} - if new_equipment and new_equipment.valid then - new_equipment.energy = energy + if equipment_type ~= "active-defense-equipment" or (equipment_type == "active-defense-equipment" and game.equipment_prototypes["disabled-" .. equipment.name]) then + grid.take(equipment) + local new_equipment = grid.put{name="disabled-" .. name, position=position} + if new_equipment and new_equipment.valid then + new_equipment.energy = energy + end + game.players[event.player_index].set_shortcut_toggled(equipment_type, false) end - game.players[event.player_index].set_shortcut_toggled(equipment_type, false) elseif (string.sub(equipment.name,1,9) == "disabled-") then grid.take(equipment) local new_equipment = grid.put{name=(string.sub(name,10,#name)), position=position} @@ -68,6 +70,8 @@ local function shortcut_type(event) update_state(event, "night-vision-equipment") elseif prototype_name == "belt-immunity-equipment" then update_state(event, "belt-immunity-equipment") + elseif prototype_name == "active-defense-equipment" then + update_state(event, "active-defense-equipment") elseif prototype_name == "flashlight-toggle" then toggle_light(game.players[event.player_index]) elseif prototype_name == "big-zoom" then @@ -87,44 +91,96 @@ local function shortcut_type(event) end end -local function update_inventory(event) +local function update_inventory(event) -- removes spare remotes + local item_prototypes = game.item_prototypes local inventory = game.players[event.player_index].get_inventory(defines.inventory.player_main) if inventory and inventory.valid then inventory.remove("artillery-targeting-remote") + inventory.remove("discharge-defense-remote") + if item_prototypes["resource-monitor"] then + inventory.remove("resource-monitor") + end + if item_prototypes["outpost-builder"] then + inventory.remove("outpost-builder") + end + if item_prototypes["ion-cannon-targeter"] then + inventory.remove("ion-cannon-targeter") + end end end -local function reset_state(event) +local function false_shortcuts(player) -- disables things + player.set_shortcut_available("night-vision-equipment", false) + player.set_shortcut_toggled("night-vision-equipment", false) + player.set_shortcut_available("belt-immunity-equipment", false) + player.set_shortcut_toggled("belt-immunity-equipment", false) + player.set_shortcut_available("active-defense-equipment", false) + player.set_shortcut_toggled("active-defense-equipment", false) +end + +local function enable_it(player, equipment, grid, type) -- enables things + if grid.valid and equipment.valid then + local name = equipment.name + local position = equipment.position + local energy = equipment.energy + player.set_shortcut_available(type, true) + player.set_shortcut_toggled(type, true) + if (string.sub(equipment.name,1,9) == "disabled-") then + grid.take(equipment) + local new_equipment = grid.put{name=(string.sub(name,10,#name)), position=position} + if new_equipment and new_equipment.valid then + new_equipment.energy = energy + end + end + end +end +local function reset_state(event, toggle) -- verifies placement of equipment and armor switching update_armor(event) local player = game.players[event.player_index] local grid = global.shortcuts_armor[game.players[event.player_index].index] if grid then - for _, equipment in pairs(grid.equipment) do - if equipment.type == "night-vision-equipment" then - player.set_shortcut_available("night-vision-equipment", true) - player.set_shortcut_toggled("night-vision-equipment", true) - elseif equipment.type == "belt-immunity-equipment" then - player.set_shortcut_available("belt-immunity-equipment", true) - player.set_shortcut_toggled("belt-immunity-equipment", true) + local equipment = event.equipment + if equipment and toggle == 1 then --place + local type = equipment.type + if type == "night-vision-equipment" or type == "belt-immunity-equipment" or (type == "active-defense-equipment" and game.equipment_prototypes["disabledinactive-" .. equipment.name] == nil) then + for _, equipment in pairs(grid.equipment) do + if equipment.valid and equipment.type == type then + enable_it(player, equipment, grid, type) + end + end end - if equipment.valid and equipment.type == "night-vision-equipment" or equipment.type == "belt-immunity-equipment" then - local name = equipment.name - local position = equipment.position - local energy = equipment.energy - if (string.sub(equipment.name,1,9) == "disabled-") then - grid.take(equipment) - local new_equipment = grid.put{name=(string.sub(name,10,#name)), position=position} - if new_equipment and new_equipment.valid then - new_equipment.energy = energy - end + elseif equipment and toggle == 2 then --take + local type = game.equipment_prototypes[equipment].type + local name = game.equipment_prototypes[equipment].name + if type == "night-vision-equipment" or type == "belt-immunity-equipment" or type == "active-defense-equipment" then + local value = false + for _, equipment in pairs(grid.equipment) do + if equipment.type == type and equipment.valid then + if type ~= "active-defense-equipment" then + value = true + break + elseif type == "active-defense-equipment" and game.equipment_prototypes["disabledinactive-" .. equipment.name] == nil then + value = true + break + end + end + end + if value == false then + player.set_shortcut_available(type, false) + player.set_shortcut_toggled(type, false) + end + end + elseif toggle == 0 then --armor place + false_shortcuts(player) + for _, equipment in pairs(grid.equipment) do + local type = equipment.type + if equipment.valid and type == "night-vision-equipment" or type == "belt-immunity-equipment" or (type == "active-defense-equipment" and game.equipment_prototypes["disabledinactive-" .. equipment.name] == nil) then + enable_it(player, equipment, grid, equipment.type) end end end else - player.set_shortcut_available("night-vision-equipment", false) - player.set_shortcut_available("belt-immunity-equipment", false) - player.set_shortcut_toggled("night-vision-equipment", false) - player.set_shortcut_toggled("belt-immunity-equipment", false) + false_shortcuts(player) end end @@ -137,9 +193,9 @@ local function initialize() end end -script.on_event(defines.events.on_player_armor_inventory_changed, reset_state) -script.on_event(defines.events.on_player_placed_equipment, reset_state) -script.on_event(defines.events.on_player_removed_equipment, reset_state) +script.on_event(defines.events.on_player_armor_inventory_changed, function(event) reset_state(event,0) end) +script.on_event(defines.events.on_player_placed_equipment, function(event) reset_state(event,1) end) +script.on_event(defines.events.on_player_removed_equipment, function(event) reset_state(event,2) end) script.on_event(defines.events.on_lua_shortcut, shortcut_type) @@ -150,6 +206,7 @@ script.on_event(defines.events.on_player_created, function(event) player.set_shortcut_toggled("flashlight-toggle", true) player.set_shortcut_available("night-vision-equipment", false) player.set_shortcut_available("belt-immunity-equipment", false) + player.set_shortcut_available("active-defense-equipment", false) end) script.on_init(initialize) diff --git a/Shortcuts/data.lua b/Shortcuts/data-updates.lua similarity index 55% rename from Shortcuts/data.lua rename to Shortcuts/data-updates.lua index 3171a21..8163765 100644 --- a/Shortcuts/data.lua +++ b/Shortcuts/data-updates.lua @@ -1,31 +1,54 @@ require("shortcuts") -data.raw["recipe"]["artillery-targeting-remote"].hidden = true -local effect = data.raw["technology"]["artillery"].effects -for i=1,(#effect) do - if effect[i].type == "unlock-recipe" then - if effect[i].recipe == "artillery-targeting-remote" then - table.remove(effect, i) +local function hide_the_remote(recipe, technology) + data.raw["recipe"][recipe].hidden = true + data.raw["recipe"][recipe].ingredients ={{"iron-plate", 1}} + if technology ~= nil then + local effect = data.raw["technology"][technology].effects + for i=1,(#effect) do + if effect[i].type == "unlock-recipe" then + if effect[i].recipe == recipe then + table.remove(effect, i) + end + end end end end +hide_the_remote("artillery-targeting-remote", "artillery") +hide_the_remote("discharge-defense-remote", "discharge-defense-equipment") +if mods["YARM"] and data.raw["item"]["resource-monitor"] and data.raw["technology"]["resource-monitoring"] then + hide_the_remote("resource-monitor", "resource-monitoring") +end +if mods["OutpostPlanner"] and mods["PlannerCore"] and data.raw["selection-tool"]["outpost-builder"] then + hide_the_remote("outpost-builder", nil) +end +if mods["Orbital Ion Cannon"] and data.raw["item"]["ion-cannon-targeter"] and data.raw["technology"]["orbital-ion-cannon"] then + hide_the_remote("ion-cannon-targeter", "orbital-ion-cannon") +end + local disabled_equipment = {} local disabled_equipment_item = {} local equipment_list = { "night-vision-equipment", "belt-immunity-equipment", + "active-defense-equipment", } for i=1,(#equipment_list) do for _, equipment in pairs(data.raw[equipment_list[i]]) do local i = #disabled_equipment+1 disabled_equipment[i] = util.table.deepcopy(equipment) local name = disabled_equipment[i].name - disabled_equipment[i].name = "disabled-" .. name - disabled_equipment[i].localised_name = {"", {"equipment-name." .. name}, " (", {"gui-constant.off"}, ")"} + if (equipment.type == "active-defense-equipment" and equipment.automatic == true) or equipment.type ~= "active-defense-equipment" then + disabled_equipment[i].name = "disabled-" .. name + disabled_equipment[i].localised_name = {"", {"equipment-name." .. name}, " (", {"gui-constant.off"}, ")"} + elseif (equipment.type == "active-defense-equipment" and equipment.automatic == false) then + disabled_equipment[i].name = "disabledinactive-" .. name + disabled_equipment[i].localised_name = {"equipment-name." .. name} + end disabled_equipment[i].energy_input = "0kW" disabled_equipment[i].take_result = name - if equipment_list[i] == "belt-immunity-equipment" then + if equipment_list[i] == "belt-immunity-equipment" or (equipment.type == "active-defense-equipment" and equipment.automatic == true) then disabled_equipment[i].energy_source.input_flow_limit = "0kW" disabled_equipment[i].energy_source.buffer_capacity = "0kJ" disabled_equipment[i].energy_source.drain = "1kW" @@ -48,7 +71,6 @@ for i=1,(#equipment_list) do -- disabled_equipment_item[i].localised_name = {"", {"equipment-name." .. name}, " (", {"gui-constant.off"}, ")"} disabled_equipment_item[i].localised_description = {"item-description." .. name} disabled_equipment_item[i].placed_as_equipment_result = name - end end diff --git a/Shortcuts/graphics/active-defense-equipment-x24-white.png b/Shortcuts/graphics/active-defense-equipment-x24-white.png new file mode 100644 index 0000000..ffef6b8 Binary files /dev/null and b/Shortcuts/graphics/active-defense-equipment-x24-white.png differ diff --git a/Shortcuts/graphics/active-defense-equipment-x24.png b/Shortcuts/graphics/active-defense-equipment-x24.png new file mode 100644 index 0000000..c51ae25 Binary files /dev/null and b/Shortcuts/graphics/active-defense-equipment-x24.png differ diff --git a/Shortcuts/graphics/active-defense-equipment-x32-white.png b/Shortcuts/graphics/active-defense-equipment-x32-white.png new file mode 100644 index 0000000..88d23e1 Binary files /dev/null and b/Shortcuts/graphics/active-defense-equipment-x32-white.png differ diff --git a/Shortcuts/graphics/active-defense-equipment-x32.png b/Shortcuts/graphics/active-defense-equipment-x32.png new file mode 100644 index 0000000..8d53b63 Binary files /dev/null and b/Shortcuts/graphics/active-defense-equipment-x32.png differ diff --git a/Shortcuts/graphics/discharge-defense-remote-x24-white.png b/Shortcuts/graphics/discharge-defense-remote-x24-white.png new file mode 100644 index 0000000..6c98cf9 Binary files /dev/null and b/Shortcuts/graphics/discharge-defense-remote-x24-white.png differ diff --git a/Shortcuts/graphics/discharge-defense-remote-x24.png b/Shortcuts/graphics/discharge-defense-remote-x24.png new file mode 100644 index 0000000..605c789 Binary files /dev/null and b/Shortcuts/graphics/discharge-defense-remote-x24.png differ diff --git a/Shortcuts/graphics/discharge-defense-remote-x32-white.png b/Shortcuts/graphics/discharge-defense-remote-x32-white.png new file mode 100644 index 0000000..d7ff78a Binary files /dev/null and b/Shortcuts/graphics/discharge-defense-remote-x32-white.png differ diff --git a/Shortcuts/graphics/discharge-defense-remote-x32.png b/Shortcuts/graphics/discharge-defense-remote-x32.png new file mode 100644 index 0000000..02979a2 Binary files /dev/null and b/Shortcuts/graphics/discharge-defense-remote-x32.png differ diff --git a/Shortcuts/graphics/ion-cannon-targeter-x24-white.png b/Shortcuts/graphics/ion-cannon-targeter-x24-white.png new file mode 100644 index 0000000..f354ded Binary files /dev/null and b/Shortcuts/graphics/ion-cannon-targeter-x24-white.png differ diff --git a/Shortcuts/graphics/ion-cannon-targeter-x24.png b/Shortcuts/graphics/ion-cannon-targeter-x24.png new file mode 100644 index 0000000..fa53a4e Binary files /dev/null and b/Shortcuts/graphics/ion-cannon-targeter-x24.png differ diff --git a/Shortcuts/graphics/ion-cannon-targeter-x32-white.png b/Shortcuts/graphics/ion-cannon-targeter-x32-white.png new file mode 100644 index 0000000..75430b5 Binary files /dev/null and b/Shortcuts/graphics/ion-cannon-targeter-x32-white.png differ diff --git a/Shortcuts/graphics/ion-cannon-targeter-x32.png b/Shortcuts/graphics/ion-cannon-targeter-x32.png new file mode 100644 index 0000000..41f7268 Binary files /dev/null and b/Shortcuts/graphics/ion-cannon-targeter-x32.png differ diff --git a/Shortcuts/graphics/outpost-builder-x24-white.png b/Shortcuts/graphics/outpost-builder-x24-white.png new file mode 100644 index 0000000..9e172c4 Binary files /dev/null and b/Shortcuts/graphics/outpost-builder-x24-white.png differ diff --git a/Shortcuts/graphics/outpost-builder-x24.png b/Shortcuts/graphics/outpost-builder-x24.png new file mode 100644 index 0000000..bf56175 Binary files /dev/null and b/Shortcuts/graphics/outpost-builder-x24.png differ diff --git a/Shortcuts/graphics/outpost-builder-x32-white.png b/Shortcuts/graphics/outpost-builder-x32-white.png new file mode 100644 index 0000000..f12746f Binary files /dev/null and b/Shortcuts/graphics/outpost-builder-x32-white.png differ diff --git a/Shortcuts/graphics/outpost-builder-x32.png b/Shortcuts/graphics/outpost-builder-x32.png new file mode 100644 index 0000000..a3ba1fc Binary files /dev/null and b/Shortcuts/graphics/outpost-builder-x32.png differ diff --git a/Shortcuts/graphics/resource-monitor-x24-white.png b/Shortcuts/graphics/resource-monitor-x24-white.png new file mode 100644 index 0000000..2e92435 Binary files /dev/null and b/Shortcuts/graphics/resource-monitor-x24-white.png differ diff --git a/Shortcuts/graphics/resource-monitor-x24.png b/Shortcuts/graphics/resource-monitor-x24.png new file mode 100644 index 0000000..ab0eb87 Binary files /dev/null and b/Shortcuts/graphics/resource-monitor-x24.png differ diff --git a/Shortcuts/graphics/resource-monitor-x32-white.png b/Shortcuts/graphics/resource-monitor-x32-white.png new file mode 100644 index 0000000..8c3e103 Binary files /dev/null and b/Shortcuts/graphics/resource-monitor-x32-white.png differ diff --git a/Shortcuts/graphics/resource-monitor-x32.png b/Shortcuts/graphics/resource-monitor-x32.png new file mode 100644 index 0000000..00c1368 Binary files /dev/null and b/Shortcuts/graphics/resource-monitor-x32.png differ diff --git a/Shortcuts/graphics/u26A1.png b/Shortcuts/graphics/u26A1.png new file mode 100644 index 0000000..ffa6a2e Binary files /dev/null and b/Shortcuts/graphics/u26A1.png differ diff --git a/Shortcuts/info.json b/Shortcuts/info.json index 14e9ff0..6288983 100644 --- a/Shortcuts/info.json +++ b/Shortcuts/info.json @@ -1,10 +1,10 @@ { "name": "Shortcuts", - "version": "0.3.0", + "version": "0.4.0", "factorio_version": "0.17", "title": "Shortcuts", "author": "npc_strider(morley376)", "contact": "", "homepage": "http://steamcommunity.com/id/morley376", - "description": "Adds in a shortcut button for the artillery remote, and toggles for night-vision-equipment, belt-immunity-equipment and the player lamp. Suggest any new shortcut ideas to the discussion page." + "description": "Adds in a shortcut button for the artillery remote discharge defense remote, and toggles for night-vision-equipment, belt-immunity-equipment, personal-laser-defense and the player lamp. Shortcuts also for YARM, orbital ion cannon and outpost planner. Suggest any new shortcut ideas to the discussion page." } \ No newline at end of file diff --git a/Shortcuts/shortcuts.lua b/Shortcuts/shortcuts.lua index b1f8023..7e2b71d 100644 --- a/Shortcuts/shortcuts.lua +++ b/Shortcuts/shortcuts.lua @@ -67,6 +67,106 @@ data:extend( flags = {"icon"} }, }, + { + type = "shortcut", + name = "discharge-defense-remote", + order = "a[discharge-defense-remote]", + action = "create-blueprint-item", + localised_name = {"item-name.discharge-defense-remote"}, + technology_to_unlock = "discharge-defense-equipment", + item_to_create = "discharge-defense-remote", + style = "red", + icon = + { + filename = "__Shortcuts__/graphics/discharge-defense-remote-x32-white.png", + priority = "extra-high-no-scale", + size = 32, + scale = 1, + flags = {"icon"} + }, + small_icon = + { + filename = "__Shortcuts__/graphics/discharge-defense-remote-x24.png", + priority = "extra-high-no-scale", + size = 24, + scale = 1, + flags = {"icon"} + }, + disabled_small_icon = + { + filename = "__Shortcuts__/graphics/discharge-defense-remote-x24-white.png", + priority = "extra-high-no-scale", + size = 24, + scale = 1, + flags = {"icon"} + }, + }, + { + type = "shortcut", + name = "night-vision-equipment", + order = "a[night-vision-equipment]", + action = "lua", + localised_name = {"equipment-name.night-vision-equipment"}, + technology_to_unlock = "night-vision-equipment", + toggleable = true, + icon = + { + filename = "__Shortcuts__/graphics/night-vision-toggle-x32.png", + priority = "extra-high-no-scale", + size = 32, + scale = 1, + flags = {"icon"} + }, + small_icon = + { + filename = "__Shortcuts__/graphics/night-vision-toggle-x24.png", + priority = "extra-high-no-scale", + size = 24, + scale = 1, + flags = {"icon"} + }, + disabled_small_icon = + { + filename = "__Shortcuts__/graphics/night-vision-toggle-x24-white.png", + priority = "extra-high-no-scale", + size = 24, + scale = 1, + flags = {"icon"} + }, + }, + { + type = "shortcut", + name = "active-defense-equipment", + order = "a[active-defense-equipment]", + action = "lua", + localised_name = {"equipment-name.personal-laser-defense-equipment"}, + technology_to_unlock = "personal-laser-defense-equipment", + toggleable = true, + icon = + { + filename = "__Shortcuts__/graphics/active-defense-equipment-x32.png", + priority = "extra-high-no-scale", + size = 32, + scale = 1, + flags = {"icon"} + }, + small_icon = + { + filename = "__Shortcuts__/graphics/active-defense-equipment-x24.png", + priority = "extra-high-no-scale", + size = 24, + scale = 1, + flags = {"icon"} + }, + disabled_small_icon = + { + filename = "__Shortcuts__/graphics/active-defense-equipment-x24-white.png", + priority = "extra-high-no-scale", + size = 24, + scale = 1, + flags = {"icon"} + }, + }, { type = "shortcut", name = "belt-immunity-equipment", @@ -99,7 +199,7 @@ data:extend( scale = 1, flags = {"icon"} }, - }, + }, { type = "shortcut", name = "flashlight-toggle", @@ -210,3 +310,123 @@ data:extend( -- order, localised_name, technology_to_unlock, icon, small_icon, disabled_icon, disabled_small_icon as above -- } }) + +if mods["YARM"] and data.raw["item"]["resource-monitor"] and data.raw["technology"]["resource-monitoring"] then +data:extend( +{ + { + type = "shortcut", + name = "resource-monitor", + order = "a[resource-monitor]", + action = "create-blueprint-item", + localised_name = {"item-name.resource-monitor"}, + technology_to_unlock = "resource-monitoring", + item_to_create = "resource-monitor", + style = "green", + icon = + { + filename = "__Shortcuts__/graphics/resource-monitor-x32-white.png", + priority = "extra-high-no-scale", + size = 32, + scale = 1, + flags = {"icon"} + }, + small_icon = + { + filename = "__Shortcuts__/graphics/resource-monitor-x24.png", + priority = "extra-high-no-scale", + size = 24, + scale = 1, + flags = {"icon"} + }, + disabled_small_icon = + { + filename = "__Shortcuts__/graphics/resource-monitor-x24-white.png", + priority = "extra-high-no-scale", + size = 24, + scale = 1, + flags = {"icon"} + }, + } +}) +end + +if mods["OutpostPlanner"] and mods["PlannerCore"] and data.raw["selection-tool"]["outpost-builder"] then +data:extend( +{ + { + type = "shortcut", + name = "outpost-builder", + order = "a[outpost-builder]", + action = "create-blueprint-item", + localised_name = {"item-name.outpost-builder"}, + -- technology_to_unlock = "resource-monitor", + item_to_create = "outpost-builder", + style = "green", + icon = + { + filename = "__Shortcuts__/graphics/outpost-builder-x32-white.png", + priority = "extra-high-no-scale", + size = 32, + scale = 1, + flags = {"icon"} + }, + small_icon = + { + filename = "__Shortcuts__/graphics/outpost-builder-x24.png", + priority = "extra-high-no-scale", + size = 24, + scale = 1, + flags = {"icon"} + }, + disabled_small_icon = + { + filename = "__Shortcuts__/graphics/outpost-builder-x24-white.png", + priority = "extra-high-no-scale", + size = 24, + scale = 1, + flags = {"icon"} + }, + } +}) +end + +if mods["Orbital Ion Cannon"] and data.raw["item"]["ion-cannon-targeter"] and data.raw["technology"]["orbital-ion-cannon"] then +data:extend( +{ + { + type = "shortcut", + name = "ion-cannon-targeter", + order = "a[ion-cannon-targeter]", + action = "create-blueprint-item", + localised_name = {"item-name.ion-cannon-targeter"}, + technology_to_unlock = "orbital-ion-cannon", + item_to_create = "ion-cannon-targeter", + style = "red", + icon = + { + filename = "__Shortcuts__/graphics/ion-cannon-targeter-x32-white.png", + priority = "extra-high-no-scale", + size = 32, + scale = 1, + flags = {"icon"} + }, + small_icon = + { + filename = "__Shortcuts__/graphics/ion-cannon-targeter-x24.png", + priority = "extra-high-no-scale", + size = 24, + scale = 1, + flags = {"icon"} + }, + disabled_small_icon = + { + filename = "__Shortcuts__/graphics/ion-cannon-targeter-x24-white.png", + priority = "extra-high-no-scale", + size = 24, + scale = 1, + flags = {"icon"} + }, + } +}) +end \ No newline at end of file diff --git a/Shortcuts/thumbnail.png b/Shortcuts/thumbnail.png index 5d901ef..4c8339c 100644 Binary files a/Shortcuts/thumbnail.png and b/Shortcuts/thumbnail.png differ diff --git a/crosshairs64.png b/crosshairs64.png new file mode 100644 index 0000000..3414347 Binary files /dev/null and b/crosshairs64.png differ diff --git a/image4.png b/image4.png new file mode 100644 index 0000000..50cf7c0 Binary files /dev/null and b/image4.png differ diff --git a/laser-turret.png b/laser-turret.png new file mode 100644 index 0000000..f672268 Binary files /dev/null and b/laser-turret.png differ diff --git a/resource-monitor.png b/resource-monitor.png new file mode 100644 index 0000000..4aff6c6 Binary files /dev/null and b/resource-monitor.png differ