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("terrain/terrain")
|
||||
require("resources/resources")
|
||||
require("pain")
|
||||
require("technology")
|
||||
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_water"] = {},
|
||||
["gleba_cliff"] = {},
|
||||
["crude-oil"] = {}
|
||||
},
|
||||
|
||||
autoplace_settings = {
|
||||
|
@ -127,6 +128,7 @@ return {
|
|||
},
|
||||
["entity"] = {
|
||||
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