diff --git a/README.md b/README.md index 558b71a..078a155 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,29 @@ # Lignumis Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies. +## Todo + + - Move wood and lumber to its own fuel category + - Make rocket silo work (incl. transition to Nauvis) + - Make enemies work + - Balance pollution (noise) + - Tweak enemies + warfare (add damage research) + - Add vent for steam + - Add recipe to void gold seeds + - Adjust vanilla technologies + - Add end-game stuff + - Add burner radar + - Balance resources + - Force start with wooden ammo + - Add robots (simple robots inspired by https://mods.factorio.com/mod/copper-construction-robots; gold and copper variant) + - Make mod "Wooden logistics" optional + - Remove stromatolite (non-plant)? + - Guarantee spawn of gold in starting area + - Fix pipe graphics on desiccation furnace + - Change color of gold soil + - Ban huge rocks with coal from Nauvis + - Increase default moisture bias + ## Credits Hurricane: diff --git a/lignumis/graphics/entity/wooden-rocket-silo/02-rocket.png b/lignumis/graphics/entity/wooden-rocket-silo/02-rocket.png new file mode 100644 index 0000000..12ced59 Binary files /dev/null and b/lignumis/graphics/entity/wooden-rocket-silo/02-rocket.png differ diff --git a/lignumis/graphics/entity/wooden-rocket-silo/06-rocket-silo.png b/lignumis/graphics/entity/wooden-rocket-silo/06-rocket-silo.png new file mode 100644 index 0000000..0a87f90 Binary files /dev/null and b/lignumis/graphics/entity/wooden-rocket-silo/06-rocket-silo.png differ diff --git a/lignumis/graphics/entity/wooden-rocket-silo/14-rocket-silo-front.png b/lignumis/graphics/entity/wooden-rocket-silo/14-rocket-silo-front.png new file mode 100644 index 0000000..c24da9b Binary files /dev/null and b/lignumis/graphics/entity/wooden-rocket-silo/14-rocket-silo-front.png differ diff --git a/lignumis/graphics/entity/wooden-rocket-silo/rocket-static-pod.png b/lignumis/graphics/entity/wooden-rocket-silo/rocket-static-pod.png new file mode 100644 index 0000000..809977d Binary files /dev/null and b/lignumis/graphics/entity/wooden-rocket-silo/rocket-static-pod.png differ diff --git a/lignumis/graphics/icons/provisional-rocket-part.png b/lignumis/graphics/icons/provisional-rocket-part.png new file mode 100644 index 0000000..2be7d3f Binary files /dev/null and b/lignumis/graphics/icons/provisional-rocket-part.png differ diff --git a/lignumis/graphics/icons/provisional-rocket-silo.png b/lignumis/graphics/icons/provisional-rocket-silo.png new file mode 100644 index 0000000..b947e0c Binary files /dev/null and b/lignumis/graphics/icons/provisional-rocket-silo.png differ diff --git a/lignumis/graphics/technology/provisional-rocketry.png b/lignumis/graphics/technology/provisional-rocketry.png new file mode 100644 index 0000000..6942083 Binary files /dev/null and b/lignumis/graphics/technology/provisional-rocketry.png differ diff --git a/lignumis/locale/en/strings.cfg b/lignumis/locale/en/strings.cfg index 6edab16..ce13dae 100644 --- a/lignumis/locale/en/strings.cfg +++ b/lignumis/locale/en/strings.cfg @@ -24,6 +24,7 @@ gold-pipe-to-ground=Gold pipe to ground gold-storage-tank=Gold storage tank desiccation-furnace=Desiccation furnace steam-assembling-machine=Steam assembling machine +provisional-rocket-silo=Provisional rocket silo [item-name] wooden-gear-wheel=Wooden gear wheel @@ -46,18 +47,21 @@ wood-pulp=Wood pulp [recipe-name] moist-stromatolite-remnant-desiccation=Desiccate moist stromatolite remnant wood-liquefaction=Wood liquefaction +provisional-rocket-part=Provisional rocket part [technology-name] wood-science-pack=Wood science pack burner-automation=Burner automation planet-discovery-nauvis=Planet discovery Nauvis iron-processing=Iron processing +copper-processing=Copper processing lumber-mill=Lumber mill deep-miner=Deep miner gold-fluid-handling=Gold fluid handling steam-automation=Steam automation steam-science-pack=Steam science pack wood-liquefaction=Wood liquefaction +provisional-rocketry=Provisional rocketry [tile-name] wood-floor=Wood floor diff --git a/lignumis/prototypes/content/burner-agricultural-tower.lua b/lignumis/prototypes/content/burner-agricultural-tower.lua index 168c1bd..e44abaf 100644 --- a/lignumis/prototypes/content/burner-agricultural-tower.lua +++ b/lignumis/prototypes/content/burner-agricultural-tower.lua @@ -17,6 +17,7 @@ agricultural_tower.energy_source = { } agricultural_tower.resistances = nil agricultural_tower.input_inventory_size = 1 +agricultural_tower.output_inventory_size = 4 agricultural_tower.radius = 2 local crane = agricultural_tower.crane diff --git a/lignumis/prototypes/content/burner-long-handed-inserter.lua b/lignumis/prototypes/content/burner-long-handed-inserter.lua index a6e5bcd..e687157 100644 --- a/lignumis/prototypes/content/burner-long-handed-inserter.lua +++ b/lignumis/prototypes/content/burner-long-handed-inserter.lua @@ -11,8 +11,8 @@ long_handed_inserter.hand_base_picture.filename = "__lignumis__/graphics/entity/ long_handed_inserter.hand_closed_picture.filename = "__lignumis__/graphics/entity/burner-long-handed-inserter-hand-closed.png" long_handed_inserter.hand_open_picture.filename = "__lignumis__/graphics/entity/burner-long-handed-inserter-hand-open.png" long_handed_inserter.platform_picture.sheet.filename = "__lignumis__/graphics/entity/burner-long-handed-inserter-platform.png" -long_handed_inserter.energy_per_movement = "100kJ" -long_handed_inserter.energy_per_rotation = "100kJ" +long_handed_inserter.energy_per_movement = "90kJ" +long_handed_inserter.energy_per_rotation = "90kJ" long_handed_inserter.energy_source = { type = "burner", fuel_categories = { "chemical" }, diff --git a/lignumis/prototypes/content/data.lua b/lignumis/prototypes/content/data.lua index 92e426c..1af401a 100644 --- a/lignumis/prototypes/content/data.lua +++ b/lignumis/prototypes/content/data.lua @@ -14,5 +14,6 @@ require("desiccation-furnace") require("steam-assembling-machine") require("steam-science") require("wood-liquefaction") +require("wooden-rocket-silo") require("noise") diff --git a/lignumis/prototypes/content/gold/stromatolite.lua b/lignumis/prototypes/content/gold/stromatolite.lua index 50ff4cb..4f9d095 100644 --- a/lignumis/prototypes/content/gold/stromatolite.lua +++ b/lignumis/prototypes/content/gold/stromatolite.lua @@ -9,10 +9,11 @@ stromatolite.autoplace = { tile_restriction = { "natural-gold-soil" } } stromatolite.collision_mask = util.copy(data.raw["plant"]["tree-plant"].collision_mask) +stromatolite.mining_time = 2 stromatolite.minable.results = { - { type = "item", name = "gold-ore", amount_min = 13, amount_max = 17 }, - { type = "item", name = "gold-bacteria", amount_min = 23, amount_max = 37 }, - { type = "item", name = "gold-stromatolite-seed", amount_min = 1, amount_max = 7, probability = 0.5 } + { type = "item", name = "gold-ore", amount_min = 1, amount_max = 7 }, + { type = "item", name = "gold-bacteria", amount_min = 3, amount_max = 9 }, + { type = "item", name = "gold-stromatolite-seed", amount = 1, probability = 0.1 } } stromatolite.map_color = { 255, 171, 0, 0.5 } stromatolite.pictures = { @@ -146,7 +147,7 @@ plant.minable = { results = { { type = "item", name = "moist-stromatolite-remnant", amount_min = 23, amount_max = 37 }, { type = "item", name = "gold-bacteria", amount_min = 13, amount_max = 17 }, - { type = "item", name = "gold-stromatolite-seed", amount_min = 1, amount_max = 3 } + { type = "item", name = "gold-stromatolite-seed", amount_min = 1, amount_max = 2 } } } plant.growth_ticks = 20 * minute diff --git a/lignumis/prototypes/content/lumber-mill.lua b/lignumis/prototypes/content/lumber-mill.lua index cb11580..cecade0 100644 --- a/lignumis/prototypes/content/lumber-mill.lua +++ b/lignumis/prototypes/content/lumber-mill.lua @@ -41,7 +41,7 @@ local tech = LumberMill.TechnologyBuilder:new() :build() tech.unit = { - count = 500, + count = 250, ingredients = { { "wood-science-pack", 1 }, { "steam-science-pack", 1 } }, time = 15 } diff --git a/lignumis/prototypes/content/peat.lua b/lignumis/prototypes/content/peat.lua index 9748d9a..be52862 100644 --- a/lignumis/prototypes/content/peat.lua +++ b/lignumis/prototypes/content/peat.lua @@ -94,6 +94,8 @@ data:extend({ { icon = "__lignumis__/graphics/icons/moist-stromatolite-remnant-1.png", scale = 0.25, shift = { -8, 8 } } }, category = "desiccation", + subgroup = "raw-material", + order = "b[desiccation]", energy_required = 9.6, ingredients = { { type = "item", name = "moist-stromatolite-remnant", amount = 2 } }, results = { diff --git a/lignumis/prototypes/content/steam-assembling-machine.lua b/lignumis/prototypes/content/steam-assembling-machine.lua index 08d8f6e..f9c495b 100644 --- a/lignumis/prototypes/content/steam-assembling-machine.lua +++ b/lignumis/prototypes/content/steam-assembling-machine.lua @@ -25,8 +25,11 @@ assembling_machine.energy_source = { production_type = "input", pipe_picture = assembler2pipepictures(), pipe_covers = pipecoverspictures(), - volume = 100, - pipe_connections = { { flow_direction = "input", direction = defines.direction.west, position = { -1, 0 } } }, + volume = 50, + pipe_connections = { + { flow_direction = "input-output", direction = defines.direction.west, position = { -1, 0 } }, + { flow_direction = "input-output", direction = defines.direction.east, position = { 1, 0 } } + }, secondary_draw_orders = { north = -1 } } } @@ -59,10 +62,8 @@ data:extend({ name = "steam-assembling-machine", enabled = false, ingredients = { - { type = "item", name = "wooden-gear-wheel", amount = 5 }, - { type = "item", name = "lumber", amount = 8 }, - { type = "item", name = "gold-cable", amount = 20 }, - { type = "item", name = "gold-pipe", amount = 2 } + { type = "item", name = "burner-assembling-machine", amount = 1 }, + { type = "item", name = "gold-pipe", amount = 5 } }, results = { { type = "item", name = "steam-assembling-machine", amount = 1 } }, energy_required = 8 diff --git a/lignumis/prototypes/content/wood-lab.lua b/lignumis/prototypes/content/wood-lab.lua index 316d3a9..6633405 100644 --- a/lignumis/prototypes/content/wood-lab.lua +++ b/lignumis/prototypes/content/wood-lab.lua @@ -6,7 +6,7 @@ data:extend({ name = "wood-lab", icon = "__lignumis__/graphics/icons/wood-lab.png", flags = {"placeable-player", "player-creation"}, - minable = {mining_time = 0.2, result = "lab"}, + minable = {mining_time = 0.2, result = "wood-lab"}, fast_replaceable_group = "lab", max_health = 150, corpse = "lab-remnants", diff --git a/lignumis/prototypes/content/wood-liquefaction.lua b/lignumis/prototypes/content/wood-liquefaction.lua index 7d50be8..cd71541 100644 --- a/lignumis/prototypes/content/wood-liquefaction.lua +++ b/lignumis/prototypes/content/wood-liquefaction.lua @@ -47,7 +47,7 @@ data:extend({ icon_mipmaps = 4, icons = { { icon = "__base__/graphics/technology/oil-processing.png", icon_size = 256 }, - { icon = "__lignumis__/graphics/icons/wood-pulp.png", icon_size = 64, scale = 0.5, shift = { 16, 16 } } + { icon = "__lignumis__/graphics/icons/wood-pulp.png", icon_size = 64, scale = 1 } }, effects = { { diff --git a/lignumis/prototypes/content/wooden-rocket-silo.lua b/lignumis/prototypes/content/wooden-rocket-silo.lua new file mode 100644 index 0000000..b9d8a74 --- /dev/null +++ b/lignumis/prototypes/content/wooden-rocket-silo.lua @@ -0,0 +1,147 @@ +local item_sounds = require("__base__.prototypes.item_sounds") + +local silo = util.copy(data.raw["rocket-silo"]["rocket-silo"]) +silo.name = "provisional-rocket-silo" +silo.module_slots = 0 +silo.allowed_effects = { "consumption", "pollution" } +silo.minable = { mining_time = 1, result = "provisional-rocket-silo" } +silo.max_health = 1000 +silo.energy_source = { + type = "burner", + fuel_categories = { "chemical" }, + effectivity = 1, + fuel_inventory_size = 1, + emissions_per_minute = { noise = 100 }, + smoke = { + { + name = "smoke", + deviation = { 0.1, 0.1 }, + frequency = 20, + position = { 2.0, -3.0 }, + starting_vertical_speed = 0.08, + starting_frame_deviation = 60 + } + } +} +silo.energy_usage = "1MW" +silo.rocket_entity = "provisional-rocket" +silo.fixed_recipe = "provisional-rocket-part" +silo.door_opening_speed = 1 / (20 * 60) +silo.base_day_sprite.filename = "__lignumis__/graphics/entity/wooden-rocket-silo/06-rocket-silo.png" +silo.base_front_sprite.filename = "__lignumis__/graphics/entity/wooden-rocket-silo/14-rocket-silo-front.png" +silo.fluid_boxes = { + { + volume = 50, + pipe_picture = assembler2pipepictures(), + pipe_covers = pipecoverspictures(), + pipe_connections = { + { flow_direction = "input", direction = defines.direction.south, position = { -3.0, 4.0 } } + }, + production_type = "input", + secondary_draw_orders = { south = 110 } + } +} +silo.launch_to_space_platforms = false +silo.rocket_parts_storage_cap = 50 + +local silo_item = util.copy(data.raw["item"]["rocket-silo"]) +silo_item.name = "provisional-rocket-silo" +silo_item.order = "0[provisional-rocket-silo]" +silo_item.place_result = "provisional-rocket-silo" +silo_item.icon = "__lignumis__/graphics/icons/provisional-rocket-silo.png" + +local silo_recipe = util.copy(data.raw["recipe"]["rocket-silo"]) +silo_recipe.name = "provisional-rocket-silo" +silo_recipe.results[1].name = "provisional-rocket-silo" +silo_recipe.ingredients = { + { type = "item", name = "lumber", amount = 500 }, + { type = "item", name = "wooden-gear-wheel", amount = 250 }, + { type = "item", name = "stone-brick", amount = 500 }, + { type = "item", name = "gold-plate", amount = 500 }, + { type = "item", name = "gold-cable", amount = 100 } +} + +local rocket = util.copy(data.raw["rocket-silo-rocket"]["rocket-silo-rocket"]) +rocket.name = "provisional-rocket" +rocket.rising_speed = 1 / (14 * 60) +rocket.engine_starting_speed = 1 / (11 * 60) +rocket.flying_speed = 1 / (4000 * 60) +rocket.flying_acceleration = 0.005 +rocket.rocket_sprite.layers[1].filename = "__lignumis__/graphics/entity/wooden-rocket-silo/rocket-static-pod.png" + +local rocket_part_recipe = { + type = "recipe", + name = "provisional-rocket-part", + icon = "__lignumis__/graphics/icons/provisional-rocket-part.png", + energy_required = 6, + enabled = false, + hide_from_player_crafting = true, + category = "rocket-building", + ingredients = { + { type = "item", name = "lumber", amount = 5 }, + { type = "item", name = "wooden-gear-wheel", amount = 5 }, + { type = "item", name = "gold-plate", amount = 5 }, + { type = "item", name = "gold-cable", amount = 5 }, + { type = "fluid", name = "wood-pulp", amount = 5 } + }, + results = { { type = "item", name = "rocket-part", amount = 1 } }, + allow_productivity = true +} + +local satellite_item = { + type = "item", + name = "satellite", + icon = "__base__/graphics/icons/satellite.png", + subgroup = "space-related", + order = "d[rocket-parts]-e[satellite]", + inventory_move_sound = item_sounds.mechanical_inventory_move, + pick_sound = item_sounds.mechanical_inventory_pickup, + drop_sound = item_sounds.mechanical_inventory_move, + stack_size = 1, + weight = 1 * tons, + rocket_launch_products = {{type = "item", name = "destination-nauvis", amount = 1}}, + send_to_orbit_mode = "automated" +} + +local satellite_recipe = { + type = "recipe", + name = "satellite", + energy_required = 5, + enabled = false, + category = "crafting", + ingredients = + { + { type = "item", name = "low-density-structure", amount = 100 }, + { type = "item", name = "solar-panel", amount = 100 }, + { type = "item", name = "accumulator", amount = 100 }, + { type = "item", name = "radar", amount = 5 }, + { type = "item", name = "processing-unit", amount = 100 }, + { type = "item", name = "rocket-fuel", amount = 50 } + }, + results = { { type = "item", name = "satellite", amount = 1 } }, + requester_paste_multiplier = 1 +} + +local nauvis_item = { + type = "item", + name = "destination-nauvis", + icon = "__base__/graphics/icons/nauvis.png", + subgroup = "space-related", + order = "z[destination-nauvis]", + inventory_move_sound = item_sounds.mechanical_inventory_move, + pick_sound = item_sounds.mechanical_inventory_pickup, + drop_sound = item_sounds.mechanical_inventory_move, + stack_size = 1, + weight = 1 * tons +} + +data:extend({ + silo, + silo_item, + silo_recipe, + rocket, + rocket_part_recipe, + satellite_item, + satellite_recipe, + nauvis_item +}) diff --git a/lignumis/prototypes/integrations/vanilla.lua b/lignumis/prototypes/integrations/vanilla.lua index ee010a6..cb40d16 100644 --- a/lignumis/prototypes/integrations/vanilla.lua +++ b/lignumis/prototypes/integrations/vanilla.lua @@ -75,14 +75,38 @@ data.raw.recipe["copper-cable"].enabled = false -- Adjust vanilla technologies +local automation_technology = data.raw.technology["automation-science-pack"] +automation_technology.prerequisites = { "planet-discovery-nauvis" } +automation_technology.research_trigger = nil +automation_technology.unit = { + count = 100, + ingredients = { + { "wood-science-pack", 1 }, + { "steam-science-pack", 1 } + }, + time = 30 +} + local electronics_technology = data.raw.technology["electronics"] -electronics_technology.research_trigger = nil electronics_technology.prerequisites = { "copper-processing" } +electronics_technology.research_trigger = nil electronics_technology.unit = { count = 10, - ingredients = { { "automation-science-pack", 1 } }, + ingredients = { + { "wood-science-pack", 1 }, + { "steam-science-pack", 1 } + }, time = 10 } local steam_power_technology = data.raw.technology["steam-power"] -steam_power_technology.prerequisites = { "iron-processing" } \ No newline at end of file +steam_power_technology.prerequisites = { "iron-processing" } +steam_power_technology.research_trigger = nil +steam_power_technology.unit = { + count = 50, + ingredients = { + { "wood-science-pack", 1 }, + { "steam-science-pack", 1 } + }, + time = 15 +} \ No newline at end of file diff --git a/lignumis/prototypes/technology.lua b/lignumis/prototypes/technology.lua index 3243938..2d0216b 100644 --- a/lignumis/prototypes/technology.lua +++ b/lignumis/prototypes/technology.lua @@ -34,15 +34,14 @@ data:extend({ space_location = "nauvis", use_icon_overlay_constant = true } }, - --prerequisites = { "space-platform-thruster" }, - prerequisites = { "wood-science-pack" }, + prerequisites = { "provisional-rocketry" }, unit = { - count = 10, + count = 100, ingredients = { - { "automation-science-pack", 1 }, - { "logistic-science-pack", 1 } + { "wood-science-pack", 1 }, + { "steam-science-pack", 1 } }, - time = 10 + time = 30 } }, { @@ -135,8 +134,7 @@ data:extend({ icon = "__lignumis__/graphics/technology/steam-science-pack.png", icon_size = 256, essential = true, - effects = - { + effects = { { type = "unlock-recipe", recipe = "steam-science-pack" @@ -148,5 +146,32 @@ data:extend({ ingredients = { { "wood-science-pack", 1 } }, time = 15 } + }, + { + type = "technology", + name = "provisional-rocketry", + icon = "__lignumis__/graphics/technology/provisional-rocketry.png", + icon_size = 256, + essential = true, + effects = + { + { + type = "unlock-recipe", + recipe = "provisional-rocket-silo" + }, + { + type = "unlock-recipe", + recipe = "satellite" + } + }, + prerequisites = { "wood-liquefaction" }, + unit = { + count = 500, + ingredients = { + { "wood-science-pack", 1 }, + { "steam-science-pack", 1 } + }, + time = 15 + } } }) diff --git a/sources/entity/wooden-rocket-silo/02-rocket.afphoto b/sources/entity/wooden-rocket-silo/02-rocket.afphoto new file mode 100644 index 0000000..626f928 Binary files /dev/null and b/sources/entity/wooden-rocket-silo/02-rocket.afphoto differ diff --git a/sources/entity/wooden-rocket-silo/06-rocket-silo.afphoto b/sources/entity/wooden-rocket-silo/06-rocket-silo.afphoto new file mode 100644 index 0000000..dec31ca Binary files /dev/null and b/sources/entity/wooden-rocket-silo/06-rocket-silo.afphoto differ diff --git a/sources/entity/wooden-rocket-silo/08-rocket-silo-arms-back.png b/sources/entity/wooden-rocket-silo/08-rocket-silo-arms-back.png new file mode 100644 index 0000000..c32d618 Binary files /dev/null and b/sources/entity/wooden-rocket-silo/08-rocket-silo-arms-back.png differ diff --git a/sources/entity/wooden-rocket-silo/08-rocket-silo-arms-right.png b/sources/entity/wooden-rocket-silo/08-rocket-silo-arms-right.png new file mode 100644 index 0000000..affe531 Binary files /dev/null and b/sources/entity/wooden-rocket-silo/08-rocket-silo-arms-right.png differ diff --git a/sources/entity/wooden-rocket-silo/13-rocket-silo-arms-front.png b/sources/entity/wooden-rocket-silo/13-rocket-silo-arms-front.png new file mode 100644 index 0000000..b67b160 Binary files /dev/null and b/sources/entity/wooden-rocket-silo/13-rocket-silo-arms-front.png differ diff --git a/sources/entity/wooden-rocket-silo/14-rocket-silo-front.afphoto b/sources/entity/wooden-rocket-silo/14-rocket-silo-front.afphoto new file mode 100644 index 0000000..94b417b Binary files /dev/null and b/sources/entity/wooden-rocket-silo/14-rocket-silo-front.afphoto differ diff --git a/sources/entity/wooden-rocket-silo/rocket-static-pod.afphoto b/sources/entity/wooden-rocket-silo/rocket-static-pod.afphoto new file mode 100644 index 0000000..3717d24 Binary files /dev/null and b/sources/entity/wooden-rocket-silo/rocket-static-pod.afphoto differ diff --git a/sources/icons/provisional-rocket-part.afphoto b/sources/icons/provisional-rocket-part.afphoto new file mode 100644 index 0000000..72e241d Binary files /dev/null and b/sources/icons/provisional-rocket-part.afphoto differ diff --git a/sources/icons/provisional-rocket-silo.afphoto b/sources/icons/provisional-rocket-silo.afphoto new file mode 100644 index 0000000..fca65dc Binary files /dev/null and b/sources/icons/provisional-rocket-silo.afphoto differ diff --git a/sources/tech tree.drawio b/sources/tech tree.drawio index 03b0449..6ce64eb 100644 --- a/sources/tech tree.drawio +++ b/sources/tech tree.drawio @@ -1,6 +1,6 @@ - + diff --git a/sources/technology/provisional-rocketry.afphoto b/sources/technology/provisional-rocketry.afphoto new file mode 100644 index 0000000..2b0c84f Binary files /dev/null and b/sources/technology/provisional-rocketry.afphoto differ