aboutsummaryrefslogtreecommitdiff
path: root/prototypes
diff options
context:
space:
mode:
authorPaul Oliver <contact@pauloliver.dev>2025-04-14 06:53:53 -0700
committerPaul Oliver <contact@pauloliver.dev>2025-04-14 07:05:49 -0700
commit7ca781e1d5bb34c601153c4acfc9cf61873b8b8a (patch)
treeac1736609fa9ecd77cb9f87e8ac14af05c78c08b /prototypes
Initial (fork of robot-start-2 by Krypt0n_C0R3)
Diffstat (limited to 'prototypes')
-rw-r--r--prototypes/energy-pad.lua51
-rw-r--r--prototypes/entities.lua70
-rw-r--r--prototypes/item.lua89
-rw-r--r--prototypes/recepie.lua160
-rw-r--r--prototypes/tech.lua73
5 files changed, 443 insertions, 0 deletions
diff --git a/prototypes/energy-pad.lua b/prototypes/energy-pad.lua
new file mode 100644
index 0000000..11b3c50
--- /dev/null
+++ b/prototypes/energy-pad.lua
@@ -0,0 +1,51 @@
+local portable_nuclear_reactor = data.raw["generator-equipment"]["fission-reactor-equipment"]
+local clp = data.raw["cargo-landing-pad"]["cargo-landing-pad"]
+local energy_source = util.table.deepcopy(data.raw["electric-energy-interface"]["hidden-electric-energy-interface"])
+
+energy_source.name = "clp-electric-source"
+energy_source.localised_name = {"entity-name.cargo-landing-pad"}
+energy_source.icon = clp.icon
+energy_source.energy_source = {
+ type = "electric",
+ buffer_capacity = "5MJ",
+ usage_priority = "tertiary"
+}
+energy_source.energy_production = portable_nuclear_reactor.power
+energy_source.collision_box = clp.collision_box
+energy_source.selection_box = clp.selection_box
+
+
+local clp_recepie = util.table.deepcopy(data.raw["recipe"]["cargo-landing-pad"])
+clp_recepie.ingredients =
+{
+ {type = "item", name = "concrete", amount = 250},
+ {type = "item", name = "processing-unit", amount = 35},
+ {type = "item", name = "steel-plate", amount = 80},
+ {type = "item", name = "accumulator", amount = 1},
+ {type = "item", name = "fission-reactor-equipment", amount = 1},
+ {type = "item", name = "construction-robot", amount = 10}
+}
+
+
+local thermal_pad = util.table.deepcopy(data.raw["heat-interface"]["heat-interface"])
+thermal_pad.minable = nil
+thermal_pad.gui_mode = "none"
+thermal_pad.heat_buffer.default_temperature = 15
+thermal_pad.heat_buffer.max_temperature = 31
+thermal_pad.heat_buffer.min_working_temperature = 30
+thermal_pad.flags = {"placeable-neutral", "player-creation", "not-deconstructable"}
+thermal_pad.name = "clp-heat-interface"
+
+--entity.set_heat_setting{temperature = 1000, mode = "exactly"}
+
+local heat_pipe = util.table.deepcopy(data.raw["heat-pipe"]["heat-pipe"])
+heat_pipe.name = "clp-heat-pipe"
+heat_pipe.flags = {"placeable-neutral", "player-creation", "not-deconstructable"}
+heat_pipe.minable = nil
+
+data:extend({
+ energy_source,
+ clp_recepie,
+ heat_pipe,
+ thermal_pad
+})
diff --git a/prototypes/entities.lua b/prototypes/entities.lua
new file mode 100644
index 0000000..9337cc4
--- /dev/null
+++ b/prototypes/entities.lua
@@ -0,0 +1,70 @@
+require ("util")
+
+local iron_chest = data.raw["container"]["iron-chest"]
+local ipsc = util.table.deepcopy(data.raw["logistic-container"]["passive-provider-chest"])
+local ibc = util.table.deepcopy(data.raw["logistic-container"]["buffer-chest"])
+local iasc = util.table.deepcopy(data.raw["logistic-container"]["active-provider-chest"])
+local isc = util.table.deepcopy(data.raw["logistic-container"]["storage-chest"])
+local irc = util.table.deepcopy(data.raw["logistic-container"]["requester-chest"])
+
+local chests = {ipsc,ibc,iasc,irc,isc}
+
+for _, chest in ipairs(chests) do
+ chest.name = "iron-"..chest.name
+ chest.icon = "__robot-start-2__/graphics/items/"..chest.name..".png"
+ chest.corpse = iron_chest.corpse
+ chest.max_health = iron_chest.max_health
+ chest.minable = {mining_time = 0.1, result = chest.name}
+ chest.dying_explosion = iron_chest.dying_explosion
+ chest.resistances = iron_chest.resistances
+ chest.open_sound = iron_chest.open_sound
+ chest.close_sound = iron_chest.close_sound
+ chest.inventory_size = iron_chest.inventory_size
+ chest.animation = nil
+ chest.picture = util.table.deepcopy(iron_chest.picture)
+ chest.picture.layers[1].filename = "__robot-start-2__/graphics/entity/"..chest.name..".png"
+end
+
+local early_l_bot = util.table.deepcopy(data.raw["logistic-robot"]["logistic-robot"])
+local early_c_bot = util.table.deepcopy(data.raw["construction-robot"]["construction-robot"])
+
+local bots = {early_c_bot,early_l_bot}
+
+for _, bot in ipairs(bots) do
+ bot.icon = "__robot-start-2__/graphics/items/"..bot.name..".png"
+ bot.name = "early-"..bot.name
+ bot.minable = {mining_time = 0.1, result = bot.name}
+ bot.resistances =
+ {
+ {
+ type = "fire",
+ percent = 100
+ }
+ }
+ bot.max_health = 50
+ bot.speed = 0.04
+ bot.max_energy = "0.75MJ"
+ bot.energy_per_move = "2.5kJ"
+ bot.idle.filename = bot.idle.filename:gsub("base","robot-start-2")
+ bot.in_motion.filename = bot.in_motion.filename:gsub("base","robot-start-2")
+ bot.shadow_idle.filename = bot.shadow_idle.filename:gsub("base","robot-start-2")
+ bot.shadow_in_motion.filename = bot.shadow_in_motion.filename:gsub("base","robot-start-2")
+end
+
+early_c_bot.working.filename = early_c_bot.working.filename:gsub("base","robot-start-2")
+early_c_bot.shadow_working.filename = early_c_bot.shadow_working.filename:gsub("base","robot-start-2")
+
+early_l_bot.idle_with_cargo.filename = early_l_bot.idle_with_cargo.filename:gsub("base","robot-start-2")
+early_l_bot.in_motion_with_cargo.filename = early_l_bot.in_motion_with_cargo.filename:gsub("base","robot-start-2")
+early_l_bot.shadow_idle_with_cargo.filename = early_l_bot.shadow_idle_with_cargo.filename:gsub("base","robot-start-2")
+early_l_bot.shadow_in_motion_with_cargo.filename = early_l_bot.shadow_in_motion_with_cargo.filename:gsub("base","robot-start-2")
+
+data:extend{
+ ipsc,
+ ibc,
+ iasc,
+ isc,
+ irc,
+ early_c_bot,
+ early_l_bot
+} \ No newline at end of file
diff --git a/prototypes/item.lua b/prototypes/item.lua
new file mode 100644
index 0000000..70ca8ee
--- /dev/null
+++ b/prototypes/item.lua
@@ -0,0 +1,89 @@
+data:extend{
+ {
+ type = "item",
+ name = "iron-active-provider-chest",
+ icon = "__robot-start-2__/graphics/items/iron-active-provider-chest.png",
+ icon_size = 64,
+ icon_mipmaps = 4,
+ subgroup = "storage",
+ order = "a[items]-b[iron-active-provider-chest]",
+ place_result = "iron-active-provider-chest",
+ stack_size = 50
+ },
+ {
+ type = "item",
+ name = "iron-buffer-chest",
+ icon = "__robot-start-2__/graphics/items/iron-buffer-chest.png",
+ icon_size = 64,
+ icon_mipmaps = 4,
+ subgroup = "storage",
+ order = "a[items]-b[iron-buffer-chest]",
+ place_result = "iron-buffer-chest",
+ stack_size = 50
+ },
+ {
+ type = "item",
+ name = "iron-passive-provider-chest",
+ icon = "__robot-start-2__/graphics/items/iron-passive-provider-chest.png",
+ icon_size = 64,
+ icon_mipmaps = 4,
+ subgroup = "storage",
+ order = "a[items]-b[iron-passive-provider-chest]",
+ place_result = "iron-passive-provider-chest",
+ stack_size = 50
+ },
+ {
+ type = "item",
+ name = "iron-requester-chest",
+ icon = "__robot-start-2__/graphics/items/iron-requester-chest.png",
+ icon_size = 64,
+ icon_mipmaps = 4,
+ subgroup = "storage",
+ order = "a[items]-b[iron-requester-chest]",
+ place_result = "iron-requester-chest",
+ stack_size = 50
+ },
+ {
+ type = "item",
+ name = "iron-storage-chest",
+ icon = "__robot-start-2__/graphics/items/iron-storage-chest.png",
+ icon_size = 64,
+ icon_mipmaps = 4,
+ subgroup = "storage",
+ order = "a[items]-b[iron-storage-chest]",
+ place_result = "iron-storage-chest",
+ stack_size = 50
+ },
+ {
+ type = "item",
+ name = "early-logistic-robot",
+ icon = "__robot-start-2__/graphics/items/logistic-robot.png",
+ icon_size = 64,
+ icon_mipmaps = 4,
+ subgroup = "logistic-network",
+ order = "a[robot]-b[early-logistic-robot]",
+ place_result = "early-logistic-robot",
+ stack_size = 50
+ },
+ {
+ type = "item",
+ name = "early-construction-robot",
+ icon = "__robot-start-2__/graphics/items/construction-robot.png",
+ icon_size = 64,
+ icon_mipmaps = 4,
+ subgroup = "logistic-network",
+ order = "a[robot]-b[early-construction-robot]",
+ place_result = "early-construction-robot",
+ stack_size = 50
+ },
+ {
+ type = "item",
+ name = "inventory-blocker",
+ icon = "__robot-start-2__/graphics/items/inventory-blocker.png",
+ icon_size = 64,
+ icon_mipmaps = 4,
+ subgroup = "logistic-network",
+ order = "a[robot]-b[early-construction-robot]",
+ stack_size = 1
+ },
+} \ No newline at end of file
diff --git a/prototypes/recepie.lua b/prototypes/recepie.lua
new file mode 100644
index 0000000..ba0112e
--- /dev/null
+++ b/prototypes/recepie.lua
@@ -0,0 +1,160 @@
+data:extend{
+ {
+ type = "recipe",
+ name = "iron-active-provider-chest",
+ auto_recycle = false,
+ enabled = false,
+ ingredients =
+ {
+ {type = "item", name = "electronic-circuit", amount = 5},
+ {type = "item", name = "iron-chest", amount = 1}
+ },
+ surface_conditions =
+ {
+ {
+ property = "gravity",
+ min = 1
+ }
+ },
+ allow_productivity = false,
+ allow_quality = false,
+ energy_required = 15,
+ results = {{type = "item", name = "iron-active-provider-chest", amount = 1}}
+ },
+ {
+ type = "recipe",
+ name = "iron-buffer-chest",
+ auto_recycle = false,
+ enabled = false,
+ ingredients =
+ {
+ {type = "item", name = "electronic-circuit", amount = 5},
+ {type = "item", name = "iron-chest", amount = 1}
+ },
+ surface_conditions =
+ {
+ {
+ property = "gravity",
+ min = 1
+ }
+ },
+ allow_productivity = false,
+ allow_quality = false,
+ energy_required = 15,
+ results = {{type = "item", name = "iron-buffer-chest", amount = 1}}
+ },
+ {
+ type = "recipe",
+ name = "iron-passive-provider-chest",
+ auto_recycle = false,
+ enabled = false,
+ ingredients =
+ {
+ {type = "item", name = "electronic-circuit", amount = 5},
+ {type = "item", name = "iron-chest", amount = 1}
+ },
+ surface_conditions =
+ {
+ {
+ property = "gravity",
+ min = 1
+ }
+ },
+ allow_productivity = false,
+ allow_quality = false,
+ energy_required = 15,
+ results = {{type = "item", name = "iron-passive-provider-chest", amount = 1}}
+ },
+ {
+ type = "recipe",
+ name = "iron-requester-chest",
+ auto_recycle = false,
+ enabled = false,
+ ingredients =
+ {
+ {type = "item", name = "electronic-circuit", amount = 5},
+ {type = "item", name = "iron-chest", amount = 1}
+ },
+ surface_conditions =
+ {
+ {
+ property = "gravity",
+ min = 1
+ }
+ },
+ allow_productivity = false,
+ allow_quality = false,
+ energy_required = 15,
+ results = {{type = "item", name = "iron-requester-chest", amount = 1}}
+ },
+ {
+ type = "recipe",
+ name = "iron-storage-chest",
+ auto_recycle = false,
+ enabled = false,
+ ingredients =
+ {
+ {type = "item", name = "electronic-circuit", amount = 5},
+ {type = "item", name = "iron-chest", amount = 1}
+ },
+ surface_conditions =
+ {
+ {
+ property = "gravity",
+ min = 1
+ }
+ },
+ allow_productivity = false,
+ allow_quality = false,
+ energy_required = 15,
+ results = {{type = "item", name = "iron-storage-chest", amount = 1}}
+ },
+ {
+ type = "recipe",
+ name = "early-logistic-robot",
+ auto_recycle = false,
+ enabled = false,
+ ingredients =
+ {
+ {type = "item", name = "electronic-circuit", amount = 5},
+ {type = "item", name = "iron-gear-wheel", amount = 12},
+ {type = "item", name = "copper-cable", amount = 3},
+ {type = "item", name = "iron-plate", amount = 18},
+ },
+ surface_conditions =
+ {
+ {
+ property = "gravity",
+ min = 1
+ }
+ },
+ allow_productivity = false,
+ allow_quality = false,
+ energy_required = 8,
+ results = {{type = "item", name = "early-logistic-robot", amount = 1}}
+ },
+ {
+ type = "recipe",
+ name = "early-construction-robot",
+ auto_recycle = false,
+ enabled = false,
+ ingredients =
+ {
+ {type = "item", name = "electronic-circuit", amount = 5},
+ {type = "item", name = "iron-gear-wheel", amount = 12},
+ {type = "item", name = "copper-cable", amount = 3},
+ {type = "item", name = "iron-plate", amount = 18},
+ },
+ surface_conditions =
+ {
+ {
+ property = "gravity",
+ min = 1
+ }
+ },
+ allow_productivity = false,
+ allow_quality = false,
+ energy_required = 8,
+ results = {{type = "item", name = "early-construction-robot", amount = 1}}
+ },
+} \ No newline at end of file
diff --git a/prototypes/tech.lua b/prototypes/tech.lua
new file mode 100644
index 0000000..bc77fe5
--- /dev/null
+++ b/prototypes/tech.lua
@@ -0,0 +1,73 @@
+data.raw.technology["logistic-system"].icon = "__robot-start-2__/graphics/technology/logistic-system.png"
+--[[data.raw.technology["logistic-robotics"].effects =
+{
+ {
+ type = "unlock-recipe",
+ recipe = "roboport"
+ },
+ {
+ type = "unlock-recipe",
+ recipe = "logistic-chest-passive-provider"
+ },
+ {
+ type = "unlock-recipe",
+ recipe = "logistic-chest-storage"
+ },
+ {
+ type = "unlock-recipe",
+ recipe = "logistic-robot"
+ }
+}]]--
+
+data:extend{
+ {
+ type = "technology",
+ name = "early-logistic",
+ icon_size = 256, icon_mipmaps = 4,
+ icon = "__robot-start-2__/graphics/technology/logistic-system-early.png",
+ effects =
+ {
+ {
+ type = "unlock-recipe",
+ recipe = "iron-active-provider-chest"
+ },
+ {
+ type = "unlock-recipe",
+ recipe = "iron-buffer-chest"
+ },
+ {
+ type = "unlock-recipe",
+ recipe = "iron-passive-provider-chest"
+ },
+ {
+ type = "unlock-recipe",
+ recipe = "iron-requester-chest"
+ },
+ {
+ type = "unlock-recipe",
+ recipe = "iron-storage-chest"
+ },
+ {
+ type = "unlock-recipe",
+ recipe = "early-logistic-robot"
+ },
+ {
+ type = "unlock-recipe",
+ recipe = "early-construction-robot"
+ },
+ },
+ prerequisites = {"logistic-science-pack"},
+ unit =
+ {
+ count = 100*1,
+ ingredients =
+ {
+ {"automation-science-pack", 1},
+ {"logistic-science-pack",5}
+ },
+ time = 30
+ },
+ upgrade = false,
+ order = "e-l-a"
+ },
+} \ No newline at end of file