Prototype/ResourceEntity

From Official Factorio Wiki
Revision as of 10:12, 20 May 2022 by Bilka (talk | contribs) (More description for stages)
Jump to navigation Jump to search

Template:Prototype parent A mineable/gatherable entity. Its collision_mask must contain "resource-layer" if it should be minable with a Prototype/MiningDrill.

Template:Prototype TOC

Mandatory properties

This prototype inherits all the properties from Prototype/Entity.

Template:Prototype property Entity's graphics, using a graphic sheet, with variation and depletion. At least one stage must be defined.

When using Types/AnimationVariations#sheet, frame_count is the amount of frames per row in the spritesheet. variation_count is the amount of rows in the spritesheet. Each row in the spritesheet is one stage of the animation.

Template:Prototype property Number of stages the animation has.

Optional properties

Template:Prototype property If the ore is infinitely minable, or if it will eventually run out of resource.

Template:Prototype property If the resource should be highlighted when holding a mining drill that can mine it (holding a pumpjack highlights crude-oil in the base game).

Template:Prototype property

Template:Prototype property Whether the resource should have a grid pattern on the map instead of a solid map color.

Template:Prototype property Must be not 0 when infinite = true.

Template:Prototype property Must be not 0 when infinite = true.

Template:Prototype property Every time an infinite-type resource "ticks" lower it's lowered by that amount. -- Rseding91

Template:Prototype property When hovering over this resource in the map view: How far to search for other resource patches of this type to display as one (summing amount, white outline).

Template:Prototype property The category for the resource. Available categories in vanilla can be found here: Data.raw#resource-category

Template:Prototype property Sound played when the player walks over this resource.

Template:Prototype property An effect that can be overlayed above the normal ore graphics. Used in the base game to make uranium ore glow.

Template:Prototype property How long it takes stages_effect to go from min_effect_alpha to max_effect_alpha.

Template:Prototype property How much effect_animation_period can deviate from its original value. Used to make the stages effect alpha change look less uniform.

Template:Prototype property How much the surface darkness should affect the alpha of stages_effect.

Template:Prototype property Minimal alpha value of stages_effect.

Template:Prototype property Maximal alpha value of stages_effect.

Template:Prototype property Must be positive.

Template:Prototype property Must be positive when tree_removal_probability is set.

Template:Prototype property Defaults to the resources map color if left unset and map color is set, otherwise defaults to white if left unset.

Example

{
    type = "resource",
    name = "crude-oil",
    icon = "__base__/graphics/icons/crude-oil.png",
    icon_size = 32,
    flags = {"placeable-neutral"},
    category = "basic-fluid",
    order="a-b-a",
    infinite = true,
    highlight = true,
    minimum = 60000,
    normal = 300000,
    infinite_depletion_amount = 10,
    resource_patch_search_radius = 12,
    tree_removal_probability = 0.7,
    tree_removal_max_distance = 32 * 32,
    minable =
    {
      mining_time = 1,
      results =
      {
        {
          type = "fluid",
          name = "crude-oil",
          amount_min = 10,
          amount_max = 10,
          probability = 1
        }
      }
    },
    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 = false,
      resource_index = resource_autoplace.resource_indexes["crude-oil"],
      regular_rq_factor_multiplier = 1
    },
    stage_counts = {0},
    stages =
    {
      sheet =
      {
        filename = "__base__/graphics/entity/crude-oil/crude-oil.png",
        priority = "extra-high",
        width = 75,
        height = 61,
        frame_count = 4,
        variation_count = 1
      }
    },
    map_color = {r=0.78, g=0.2, b=0.77},
    map_grid = false
  }