From 309a2c954aa5035cd8fb73fdf996c5850798f394 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Tue, 18 Feb 2025 23:22:29 +0100 Subject: [PATCH] Add Ghelmina planet basics --- README.md | 2 +- ghelmina/data.lua | 8 ++ ghelmina/info.json | 2 + ghelmina/locale/en/strings.cfg | 11 +- ghelmina/prototypes/content/data.lua | 3 + ghelmina/prototypes/content/pain.lua | 17 +++ ghelmina/prototypes/content/planet/mapgen.lua | 133 ++++++++++++++++++ ghelmina/prototypes/content/planet/planet.lua | 91 ++++++++++++ ghelmina/prototypes/content/technology.lua | 32 +++++ 9 files changed, 297 insertions(+), 2 deletions(-) create mode 100644 ghelmina/data.lua create mode 100644 ghelmina/prototypes/content/data.lua create mode 100644 ghelmina/prototypes/content/pain.lua create mode 100644 ghelmina/prototypes/content/planet/mapgen.lua create mode 100644 ghelmina/prototypes/content/planet/planet.lua create mode 100644 ghelmina/prototypes/content/technology.lua diff --git a/README.md b/README.md index 01489cb..6010db8 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ -# ghelmina +# Ghelmina diff --git a/ghelmina/data.lua b/ghelmina/data.lua new file mode 100644 index 0000000..73b0f8c --- /dev/null +++ b/ghelmina/data.lua @@ -0,0 +1,8 @@ +Ghelmina = {} +Ghelmina.assets = "__ghelmina-assets__/" +Ghelmina.graphics = Ghelmina.assets .. "graphics/" +Ghelmina.sound = Ghelmina.assets .. "sound/" + +require("__cf-lib__/util") + +require("prototypes/content/data") \ No newline at end of file diff --git a/ghelmina/info.json b/ghelmina/info.json index 93ae166..407de30 100644 --- a/ghelmina/info.json +++ b/ghelmina/info.json @@ -9,7 +9,9 @@ "dependencies": [ "base >= 2.0.34", "space-age", + "ghelmina-assets", "PlanetsLib >= 1.1.26", + "pollution-as-surface-property >= 1.0.1", "cf-lib >= 0.0.5" ] } \ No newline at end of file diff --git a/ghelmina/locale/en/strings.cfg b/ghelmina/locale/en/strings.cfg index 875a953..5356fc4 100644 --- a/ghelmina/locale/en/strings.cfg +++ b/ghelmina/locale/en/strings.cfg @@ -1,2 +1,11 @@ [mod-name] -ghelmina=○ Ghelmina \ No newline at end of file +ghelmina=○ Ghelmina + +[space-location-name] +ghelmina=Ghelmina + +[airborne-pollutant-name] +pain=Pain + +[airborne-pollutant-name-with-amount] +pain=__1__ pain \ No newline at end of file diff --git a/ghelmina/prototypes/content/data.lua b/ghelmina/prototypes/content/data.lua new file mode 100644 index 0000000..d6fbc2b --- /dev/null +++ b/ghelmina/prototypes/content/data.lua @@ -0,0 +1,3 @@ +require("planet/planet") +require("pain") +require("technology") \ No newline at end of file diff --git a/ghelmina/prototypes/content/pain.lua b/ghelmina/prototypes/content/pain.lua new file mode 100644 index 0000000..78ebcaf --- /dev/null +++ b/ghelmina/prototypes/content/pain.lua @@ -0,0 +1,17 @@ +data:extend({ + { + type = "airborne-pollutant", + name = "pain", + chart_color = { r = 115, g = 9, b = 9, a = 149 }, + icon = { + filename = "__core__/graphics/icons/mip/side-map-menu-buttons.png", + priority = "high", + size = 64, + mipmap_count = 2, + y = 3 * 64, + flags = { "gui-icon" } + }, + affects_evolution = true, + affects_water_tint = true, + } +}) diff --git a/ghelmina/prototypes/content/planet/mapgen.lua b/ghelmina/prototypes/content/planet/mapgen.lua new file mode 100644 index 0000000..82adbe7 --- /dev/null +++ b/ghelmina/prototypes/content/planet/mapgen.lua @@ -0,0 +1,133 @@ +return { + cliff_settings = { + name = "cliff-gleba", + control = "gleba_cliff", + cliff_elevation_0 = 40, + cliff_elevation_interval = 60, + richness = 0.80, + cliff_smoothing = 0 + }, + + territory_settings = { + units = { "small-brain", "medium-brain", "big-brain" }, + territory_index_expression = "demolisher_territory_expression", + territory_variation_expression = "demolisher_variation_expression", + minimum_territory_size = 10 + }, + + property_expression_names = { + elevation = "gleba_elevation", + aux = "gleba_aux", + moisture = "gleba_moisture", + temperature = "gleba_temperature", + cliffiness = "gleba_cliffiness", + cliff_elevation = "cliff_elevation_from_elevation", + enemy_base_radius = "gleba_enemy_base_radius", + enemy_base_frequency = "gleba_enemy_base_frequency", + ["entity:stone:richness"] = "gleba_stone_richness", + ["entity:stone:probability"] = "gleba_stone_probability", + ["decorative:red-desert-bush:probability"] = "gleba_red_desert_bush_probability", + ["decorative:white-desert-bush:probability"] = "gleba_white_desert_bush_probability", + ["decorative:red-pita:probability"] = "gleba_red_pita_probability", + ["decorative:green-bush-mini:probability"] = "gleba_green_bush_probability", + ["decorative:green-croton:probability"] = "gleba_green_cronton_probability", + ["decorative:green-pita:probability"] = "gleba_green_pita_probability", + ["decorative:green-pita-mini:probability"] = "gleba_green_pita_mini_probability", + ["decorative:lichen-decal:probability"] = "gleba_orange_lichen_probability", + ["decorative:shroom-decal:probability"] = "gleba_carpet_shroom_probability", + ["decorative:cracked-mud-decal:probability"] = "gleba_cracked_mud_probability", + ["decorative:light-mud-decal:probability"] = "gleba_light_mud_probability", + ["decorative:dark-mud-decal:probability"] = "gleba_dark_mud_probability", + ["decorative:green-carpet-grass:probability"] = "gleba_green_carpet_grass_probability", + ["decorative:green-hairy-grass:probability"] = "gleba_green_hairy_grass_probability" + }, + + autoplace_controls = { + ["gleba_stone"] = {}, + ["gleba_plants"] = {}, + ["gleba_enemy_base"] = {}, + ["gleba_water"] = {}, + ["gleba_cliff"] = {}, + }, + + autoplace_settings = { + ["tile"] = { + settings = { + ["natural-jellynut-soil"] = {}, + ["wetland-jellynut"] = {}, + ["wetland-pink-tentacle"] = {}, + ["wetland-red-tentacle"] = {}, + ["lowland-red-vein"] = {}, + ["lowland-red-vein-2"] = {}, + ["lowland-red-vein-3"] = {}, + ["lowland-red-vein-4"] = {}, + ["lowland-red-vein-dead"] = {}, + ["lowland-red-infection"] = {}, + } + }, + + ["decorative"] = { + settings = { + ["honeycomb-fungus"] = {}, + ["honeycomb-fungus-1x1"] = {}, + ["honeycomb-fungus-decayed"] = {}, + ["split-gill-1x1"] = {}, + ["split-gill-2x2"] = {}, + ["split-gill-dying-1x1"] = {}, + ["split-gill-dying-2x2"] = {}, + ["split-gill-red-1x1"] = {}, + ["split-gill-red-2x2"] = {}, + ["veins"] = {}, + ["veins-small"] = {}, + ["mycelium"] = {}, + ["coral-water"] = {}, + ["coral-land"] = {}, + ["coral-stunted"] = {}, + ["yellow-coral"] = {}, + ["black-sceptre"] = {}, + ["pink-phalanges"] = {}, + ["blood-grape"] = {}, + ["blood-grape-vibrant"] = {}, + ["brambles"] = {}, + ["polycephalum-slime"] = {}, + ["polycephalum-balloon"] = {}, + ["pink-lichen-decal"] = {}, + ["red-lichen-decal"] = {}, + ["grey-cracked-mud-decal"] = {}, + ["barnacles-decal"] = {}, + ["nerve-roots-veins-dense"] = {}, + ["nerve-roots-veins-sparse"] = {}, + ["curly-roots-orange"] = {}, + ["knobbly-roots"] = {}, + ["knobbly-roots-orange"] = {}, + ["matches-small"] = {}, + ["solo-barnacle"] = {}, + ["pale-lettuce-lichen-cups-1x1"] = {}, + ["pale-lettuce-lichen-cups-3x3"] = {}, + ["pale-lettuce-lichen-cups-6x6"] = {}, + ["pale-lettuce-lichen-1x1"] = {}, + ["pale-lettuce-lichen-3x3"] = {}, + ["pale-lettuce-lichen-6x6"] = {}, + ["pale-lettuce-lichen-water-1x1"] = {}, + ["pale-lettuce-lichen-water-3x3"] = {}, + ["pale-lettuce-lichen-water-6x6"] = {}, + ["light-mud-decal"] = {}, + ["dark-mud-decal"] = {}, + ["cracked-mud-decal"] = {}, + ["red-desert-bush"] = {}, + ["white-desert-bush"] = {}, + ["red-pita"] = {}, + ["green-bush-mini"] = {}, + ["green-croton"] = {}, + ["green-pita"] = {}, + ["green-pita-mini"] = {}, + ["lichen-decal"] = {}, + ["shroom-decal"] = {} + } + }, + ["entity"] = { + settings = { + } + } + } +} \ No newline at end of file diff --git a/ghelmina/prototypes/content/planet/planet.lua b/ghelmina/prototypes/content/planet/planet.lua new file mode 100644 index 0000000..b245680 --- /dev/null +++ b/ghelmina/prototypes/content/planet/planet.lua @@ -0,0 +1,91 @@ +local mapgen = require("mapgen") + +PlanetsLib:extend({ + { + type = "planet", + name = "ghelmina", + orbit = { + parent = { + type = "space-location", + name = "star" + }, + distance = 100, + orientation = 0.42, + }, + magnitude = 0.35, + subgroup = "satellites", + icon = Ghelmina.graphics .. "icons/ghelmina.png", + starmap_icon = Ghelmina.graphics .. "icons/starmap-planet-ghelmina.png", + starmap_icon_size = 1024, + gravity_pull = 10, + order = "[ghelmina]", + map_seed_offset = 100, + map_gen_settings = mapgen, + pollutant_type = "pain", + solar_power_in_space = nil, + draw_orbit = true, + planet_procession_set = { + arrival = { "default-b" }, + departure = { "default-rocket-a" } + }, + surface_properties = { + ["day-night-cycle"] = 24 * 60 * minute, + ["magnetic-field"] = 42, + ["solar-power"] = 0, + ["gravity"] = 10 + }, + --asteroid_spawn_influence = 1, + --asteroid_spawn_definitions = asteroid_util.spawn_definitions(nauvis_lignumis, 0.9), + --surface_render_parameters = { + -- clouds = effects.default_clouds_effect_properties() + --}, + --persistent_ambient_sounds = { + -- base_ambience = { filename = "__lignumis__/sound/ambient/forest-ambience.ogg", volume = 0.1 }, + -- wind = { filename = "__base__/sound/wind/wind.ogg", volume = 0.8 }, + -- crossfade = { + -- order = { "wind", "base_ambience" }, + -- curve_type = "cosine", + -- from = { control = 0.35, volume_percentage = 0.0 }, + -- to = { control = 2, volume_percentage = 100.0 } + -- } + --}, + --procession_graphic_catalogue = { + -- { + -- index = procession_graphic_catalogue_types.planet_hatch_emission_in_1, + -- sprite = util.sprite_load( + -- "__base__/graphics/entity/cargo-hubs/hatches/planet-lower-hatch-pod-emission-A", + -- { + -- priority = "medium", + -- draw_as_glow = true, + -- blend_mode = "additive", + -- scale = 0.5, + -- shift = util.by_pixel(-16, 96) --32 x ({0.5, -3.5} + {0, 0.5}) + -- }) + -- }, + -- { + -- index = procession_graphic_catalogue_types.planet_hatch_emission_in_2, + -- sprite = util.sprite_load( + -- "__base__/graphics/entity/cargo-hubs/hatches/planet-lower-hatch-pod-emission-B", + -- { + -- priority = "medium", + -- draw_as_glow = true, + -- blend_mode = "additive", + -- scale = 0.5, + -- shift = util.by_pixel(-64, 96) --32 x ({2, -3.5} + {0, 0.5}) + -- }) + -- }, + -- { + -- index = procession_graphic_catalogue_types.planet_hatch_emission_in_3, + -- sprite = util.sprite_load( + -- "__base__/graphics/entity/cargo-hubs/hatches/planet-lower-hatch-pod-emission-C", + -- { + -- priority = "medium", + -- draw_as_glow = true, + -- blend_mode = "additive", + -- scale = 0.5, + -- shift = util.by_pixel(-40, 64) --32 x ({1.25, -2.5} + {0, 0.5}) + -- }) + -- } + --} + } +}) \ No newline at end of file diff --git a/ghelmina/prototypes/content/technology.lua b/ghelmina/prototypes/content/technology.lua new file mode 100644 index 0000000..a2d6ad7 --- /dev/null +++ b/ghelmina/prototypes/content/technology.lua @@ -0,0 +1,32 @@ +data:extend({ + { + type = "technology", + name = "planet-discovery-ghelmina", + localised_name = "Planet discovery Ghelmina", + icon = Ghelmina.graphics .. "technology/ghelmina.png", + icon_size = 256, + essential = false, + effects = { + { + type = "unlock-space-location", + space_location = "ghelmina", + } + }, + prerequisites = { "rocket-turret", "advanced-asteroid-processing", "asteroid-reprocessing", "electromagnetic-science-pack" }, + unit = { + count = 4000, + ingredients = { + { "automation-science-pack", 1 }, + { "logistic-science-pack", 1 }, + { "chemical-science-pack", 1 }, + { "production-science-pack", 1 }, + { "utility-science-pack", 1 }, + { "space-science-pack", 1 }, + { "metallurgic-science-pack", 1 }, + { "agricultural-science-pack", 1 }, + { "electromagnetic-science-pack", 1 } + }, + time = 60 + } + } +}) \ No newline at end of file