Compare commits
1 commit
Author | SHA1 | Date | |
---|---|---|---|
![]() |
0688be9a01 |
5 changed files with 274 additions and 0 deletions
|
@ -1,5 +1,6 @@
|
||||||
require("planet/planet")
|
require("planet/planet")
|
||||||
require("terrain/terrain")
|
require("terrain/terrain")
|
||||||
|
require("resources/resources")
|
||||||
require("pain")
|
require("pain")
|
||||||
require("technology")
|
require("technology")
|
||||||
require("eye-miner")
|
require("eye-miner")
|
41
ghelmina/prototypes/content/eye-miner.lua
Normal file
41
ghelmina/prototypes/content/eye-miner.lua
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
local item_sounds = require("__base__.prototypes.item_sounds")
|
||||||
|
|
||||||
|
local miner = table.deepcopy(data.raw["mining-drill"]["electric-mining-drill"])
|
||||||
|
miner.name = "eye-miner"
|
||||||
|
miner.resource_categories = { "eye-mining" }
|
||||||
|
miner.mining_speed = 1
|
||||||
|
miner.energy_source = {
|
||||||
|
type = "electric",
|
||||||
|
emissions_per_minute = { pain = 40 },
|
||||||
|
usage_priority = "secondary-input"
|
||||||
|
}
|
||||||
|
miner.output_fluid_box = {
|
||||||
|
pipe_picture = assembler2pipepictures(),
|
||||||
|
pipe_covers = pipecoverspictures(),
|
||||||
|
volume = 100,
|
||||||
|
filter = "brine",
|
||||||
|
pipe_connections = {
|
||||||
|
{ direction = defines.direction.west, position = { -1, 0 } },
|
||||||
|
{ direction = defines.direction.east, position = { 1, 0 } },
|
||||||
|
{ direction = defines.direction.south, position = { 0, 1 } }
|
||||||
|
},
|
||||||
|
draw_only_when_connected = true
|
||||||
|
}
|
||||||
|
miner.input_fluid_box = nil
|
||||||
|
miner.minable.result = "eye-miner"
|
||||||
|
|
||||||
|
data:extend({
|
||||||
|
miner,
|
||||||
|
{
|
||||||
|
type = "item",
|
||||||
|
name = "eye-miner",
|
||||||
|
icon = "__base__/graphics/icons/electric-mining-drill.png",
|
||||||
|
subgroup = "extraction-machine",
|
||||||
|
order = "a[items]-c[eye-miner]",
|
||||||
|
inventory_move_sound = item_sounds.drill_inventory_move,
|
||||||
|
pick_sound = item_sounds.drill_inventory_pickup,
|
||||||
|
drop_sound = item_sounds.drill_inventory_move,
|
||||||
|
place_result = "eye-miner",
|
||||||
|
stack_size = 50
|
||||||
|
}
|
||||||
|
})
|
|
@ -48,6 +48,7 @@ return {
|
||||||
["gleba_enemy_base"] = {},
|
["gleba_enemy_base"] = {},
|
||||||
["gleba_water"] = {},
|
["gleba_water"] = {},
|
||||||
["gleba_cliff"] = {},
|
["gleba_cliff"] = {},
|
||||||
|
["crude-oil"] = {}
|
||||||
},
|
},
|
||||||
|
|
||||||
autoplace_settings = {
|
autoplace_settings = {
|
||||||
|
@ -127,6 +128,7 @@ return {
|
||||||
},
|
},
|
||||||
["entity"] = {
|
["entity"] = {
|
||||||
settings = {
|
settings = {
|
||||||
|
["eye-patch"] = {},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
229
ghelmina/prototypes/content/resources/eye.lua
Normal file
229
ghelmina/prototypes/content/resources/eye.lua
Normal file
|
@ -0,0 +1,229 @@
|
||||||
|
local resource_autoplace = require("resource-autoplace")
|
||||||
|
local sounds = require("__base__.prototypes.entity.sounds")
|
||||||
|
local item_sounds = require("__base__.prototypes.item_sounds")
|
||||||
|
|
||||||
|
-- Initialize the core patch sets in a predictable order
|
||||||
|
resource_autoplace.initialize_patch_set("eye-patch", true)
|
||||||
|
|
||||||
|
local oil_driving_sound = {
|
||||||
|
sound = {
|
||||||
|
filename = "__base__/sound/driving/vehicle-surface-oil.ogg",
|
||||||
|
volume = 0.8,
|
||||||
|
advanced_volume_control = { fades = { fade_in = { curve_type = "cosine", from = { control = 0.5, volume_percentage = 0.0 }, to = { 1.5, 100.0 } } } }
|
||||||
|
},
|
||||||
|
fade_ticks = 6
|
||||||
|
}
|
||||||
|
|
||||||
|
local gun_turret = data.raw["ammo-turret"]["gun-turret"]
|
||||||
|
|
||||||
|
data:extend({
|
||||||
|
{
|
||||||
|
type = "resource-category",
|
||||||
|
name = "eye-mining"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type = "resource",
|
||||||
|
name = "eye-patch",
|
||||||
|
icon = Ghelmina.graphics .. "icons/eye.png",
|
||||||
|
icon_size = 64,
|
||||||
|
flags = { "placeable-neutral" },
|
||||||
|
category = "eye-mining",
|
||||||
|
infinite = false,
|
||||||
|
highlight = true,
|
||||||
|
resource_patch_search_radius = 12,
|
||||||
|
tree_removal_probability = 1,
|
||||||
|
tree_removal_max_distance = 32 * 32,
|
||||||
|
minable = {
|
||||||
|
mining_time = 4,
|
||||||
|
results = {
|
||||||
|
--{ type = "item", name = "vitreous-body", amount = 1, probability = 0.1 },
|
||||||
|
{ type = "fluid", name = "brine", amount = 10 }
|
||||||
|
},
|
||||||
|
},
|
||||||
|
walking_sound = sounds.oil,
|
||||||
|
driving_sound = oil_driving_sound,
|
||||||
|
collision_box = { { -1.4, -1.4 }, { 1.4, 1.4 } },
|
||||||
|
selection_box = { { -0.5, -0.5 }, { 0.5, 0.5 } },
|
||||||
|
autoplace = resource_autoplace.resource_autoplace_settings({
|
||||||
|
name = "crude-oil",
|
||||||
|
order = "c", -- Other resources are "b"; oil won't get placed if something else is already there.
|
||||||
|
base_density = 8.2,
|
||||||
|
base_spots_per_km2 = 1.8,
|
||||||
|
random_probability = 1 / 48,
|
||||||
|
random_spot_size_minimum = 1,
|
||||||
|
random_spot_size_maximum = 1, -- don't randomize spot size
|
||||||
|
additional_richness = 220000, -- this increases the total everywhere, so base_density needs to be decreased to compensate
|
||||||
|
has_starting_area_placement = true,
|
||||||
|
regular_rq_factor_multiplier = 1
|
||||||
|
}),
|
||||||
|
stage_counts = {},
|
||||||
|
--stages = {
|
||||||
|
-- sheet = util.sprite_load("__base__/graphics/entity/crude-oil/crude-oil", {
|
||||||
|
-- priority = "extra-high",
|
||||||
|
-- scale = 0.5,
|
||||||
|
-- variation_count = 1,
|
||||||
|
-- frame_count = 4,
|
||||||
|
-- })
|
||||||
|
--},
|
||||||
|
draw_stateless_visualisation_under_building = false,
|
||||||
|
--stateless_visualisation = {
|
||||||
|
-- {
|
||||||
|
-- count = 1,
|
||||||
|
-- render_layer = "decorative",
|
||||||
|
-- animation = util.sprite_load("__base__/graphics/entity/crude-oil/crude-oil-animation", {
|
||||||
|
-- priority = "extra-high",
|
||||||
|
-- scale = 0.5,
|
||||||
|
-- frame_count = 32,
|
||||||
|
-- animation_speed = 0.2,
|
||||||
|
-- })
|
||||||
|
-- },
|
||||||
|
-- {
|
||||||
|
-- count = 1,
|
||||||
|
-- render_layer = "smoke",
|
||||||
|
-- animation = {
|
||||||
|
-- filename = "__base__/graphics/entity/crude-oil/oil-smoke-outer.png",
|
||||||
|
-- frame_count = 47,
|
||||||
|
-- line_length = 16,
|
||||||
|
-- width = 90,
|
||||||
|
-- height = 188,
|
||||||
|
-- animation_speed = 0.3,
|
||||||
|
-- shift = util.by_pixel(-2, 24 - 152),
|
||||||
|
-- scale = 1.5,
|
||||||
|
-- tint = util.multiply_color({ r = 0.3, g = 0.3, b = 0.3 }, 0.2)
|
||||||
|
-- }
|
||||||
|
-- },
|
||||||
|
-- {
|
||||||
|
-- count = 1,
|
||||||
|
-- render_layer = "smoke",
|
||||||
|
-- animation = {
|
||||||
|
-- filename = "__base__/graphics/entity/crude-oil/oil-smoke-inner.png",
|
||||||
|
-- frame_count = 47,
|
||||||
|
-- line_length = 16,
|
||||||
|
-- width = 40,
|
||||||
|
-- height = 84,
|
||||||
|
-- animation_speed = 0.3,
|
||||||
|
-- shift = util.by_pixel(0, 24 - 78),
|
||||||
|
-- scale = 1.5,
|
||||||
|
-- tint = util.multiply_color({ r = 0.4, g = 0.4, b = 0.4 }, 0.2)
|
||||||
|
-- }
|
||||||
|
-- }
|
||||||
|
--},
|
||||||
|
map_color = { 0.78, 0.2, 0.77 },
|
||||||
|
map_grid = false,
|
||||||
|
created_effect = {
|
||||||
|
type = "direct",
|
||||||
|
action_delivery = {
|
||||||
|
type = "instant",
|
||||||
|
target_effects = {
|
||||||
|
type = "script",
|
||||||
|
effect_id = "eye-patch-created"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
--{
|
||||||
|
-- type = "ammo-category",
|
||||||
|
-- name = "invisible",
|
||||||
|
-- hidden = true
|
||||||
|
--},
|
||||||
|
{
|
||||||
|
type = "turret",
|
||||||
|
name = "eye",
|
||||||
|
flags = { "not-on-map", "not-blueprintable", "not-deconstructable", "not-flammable", "not-repairable", "not-upgradable", "no-automated-item-insertion", "no-automated-item-removal", "not-in-kill-statistics" },
|
||||||
|
allow_copy_paste = false,
|
||||||
|
collision_mask = { layers = {} },
|
||||||
|
collision_box = { { -0.5, -0.5 }, { 0.5, 0.5 } },
|
||||||
|
attack_parameters = {
|
||||||
|
type = "stream",
|
||||||
|
range = 20,
|
||||||
|
cooldown = 60,
|
||||||
|
damage_modifier = 0,
|
||||||
|
use_shooter_direction = true,
|
||||||
|
ammo_category = "biological",
|
||||||
|
ammo_type = {
|
||||||
|
action = {
|
||||||
|
type = "direct"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
rotation_speed = 1,
|
||||||
|
call_for_help_radius = 40,
|
||||||
|
graphics_set = {},
|
||||||
|
gun_animation_render_layer = "decorative",
|
||||||
|
folded_animation = table.deepcopy(gun_turret.folded_animation),
|
||||||
|
preparing_animation = table.deepcopy(gun_turret.preparing_animation),
|
||||||
|
--prepared_animation = table.deepcopy(gun_turret.prepared_animation),
|
||||||
|
--attacking_animation = table.deepcopy(gun_turret.attacking_animation),
|
||||||
|
folding_animation = table.deepcopy(gun_turret.folding_animation),
|
||||||
|
--graphics_set = table.deepcopy(gun_turret.graphics_set),
|
||||||
|
--attacking_animation = {
|
||||||
|
-- direction_count = 16,
|
||||||
|
-- layers = {
|
||||||
|
-- {
|
||||||
|
-- filename = Ghelmina.graphics .. "entity/eye/eye-folded.png",
|
||||||
|
-- width = 256,
|
||||||
|
-- height = 182,
|
||||||
|
-- line_length = 8,
|
||||||
|
-- frame_count = 1,
|
||||||
|
-- direction_count = 64,
|
||||||
|
-- scale = 0.5,
|
||||||
|
-- shift = { 0, 0 }
|
||||||
|
-- }
|
||||||
|
-- }
|
||||||
|
--},
|
||||||
|
prepared_animation = {
|
||||||
|
layers = {
|
||||||
|
{
|
||||||
|
filename = Ghelmina.graphics .. "entity/eye/eye-folded.png",
|
||||||
|
width = 256,
|
||||||
|
height = 182,
|
||||||
|
line_length = 8,
|
||||||
|
frame_count = 1,
|
||||||
|
direction_count = 64,
|
||||||
|
scale = 0.5,
|
||||||
|
shift = { 0, 0 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
--{
|
||||||
|
-- type = "item",
|
||||||
|
-- name = "eye",
|
||||||
|
-- icon = Ghelmina.graphics .. "icons/eye.png",
|
||||||
|
-- icon_size = 64,
|
||||||
|
-- subgroup = "raw-resource",
|
||||||
|
-- order = "g[vitreous-body]",
|
||||||
|
-- place_result = "eye",
|
||||||
|
-- inventory_move_sound = item_sounds.resource_inventory_move,
|
||||||
|
-- pick_sound = item_sounds.resource_inventory_pickup,
|
||||||
|
-- drop_sound = item_sounds.resource_inventory_move,
|
||||||
|
-- stack_size = 50,
|
||||||
|
-- default_import_location = "ghelmina",
|
||||||
|
-- weight = 1 * kg
|
||||||
|
--},
|
||||||
|
{
|
||||||
|
type = "item",
|
||||||
|
name = "vitreous-body",
|
||||||
|
icon = Ghelmina.graphics .. "icons/eye.png",
|
||||||
|
icon_size = 64,
|
||||||
|
subgroup = "raw-resource",
|
||||||
|
order = "g[vitreous-body]",
|
||||||
|
inventory_move_sound = item_sounds.resource_inventory_move,
|
||||||
|
pick_sound = item_sounds.resource_inventory_pickup,
|
||||||
|
drop_sound = item_sounds.resource_inventory_move,
|
||||||
|
stack_size = 50,
|
||||||
|
default_import_location = "ghelmina",
|
||||||
|
weight = 1 * kg
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type = "fluid",
|
||||||
|
name = "brine",
|
||||||
|
icon = Ghelmina.graphics .. "icons/brine.png",
|
||||||
|
icon_size = 64,
|
||||||
|
subgroup = "fluid",
|
||||||
|
order = "a[fluid]-c[brine]",
|
||||||
|
base_color = { 135, 148, 167 },
|
||||||
|
flow_color = { 153, 164, 180 },
|
||||||
|
default_temperature = 25
|
||||||
|
}
|
||||||
|
})
|
1
ghelmina/prototypes/content/resources/resources.lua
Normal file
1
ghelmina/prototypes/content/resources/resources.lua
Normal file
|
@ -0,0 +1 @@
|
||||||
|
require("eye")
|
Loading…
Add table
Reference in a new issue