stockpile

stockpile.hauler_type

<enum-type type-name="hauler_type">
  <enum-item name="Any"/>
  <enum-item name="Stone"/>
  <enum-item name="Wood"/>
  <enum-item name="Item"/>
  <enum-item name="Bin"/>
  <enum-item name="Body"/>
  <enum-item name="Food"/>
  <enum-item name="Refuse"/>
  <enum-item name="Furniture"/>
  <enum-item name="Animal"/>
</enum-type>

stockpile.furniture_type

<enum-type type-name="furniture_type">
  subset of item_type
  <enum-item name="FLOODGATE"/>
  <enum-item name="HATCH_COVER"/>
  <enum-item name="GRATE"/>
  <enum-item name="DOOR"/>
  <enum-item name="CATAPULTPARTS"/>
  <enum-item name="BALLISTAPARTS"/>
  <enum-item name="TRAPPARTS"/>
  <enum-item name="BED"/>
  <enum-item name="TRACTION_BENCH"/>
  <enum-item name="WINDOW"/>
  <enum-item name="CHAIR"/>
  <enum-item name="TABLE"/>
  <enum-item name="COFFIN"/>
  <enum-item name="STATUE"/>
  <enum-item name="SLAB"/>
  <enum-item name="QUERN"/>
  <enum-item name="MILLSTONE"/>
  <enum-item name="ARMORSTAND"/>
  <enum-item name="WEAPONRACK"/>
  <enum-item name="CABINET"/>
  <enum-item name="ANVIL"/>
  <enum-item name="BUCKET"/>
  <enum-item name="BIN"/>
  <enum-item name="BOX"/>
  <enum-item name="SIEGEAMMO"/>
  <enum-item name="BARREL"/>
  <enum-item name="BALLISTAARROWHEAD"/>
  <enum-item name="PIPE_SECTION"/>
  <enum-item name="FOOD_STORAGE"/>
  <enum-item name="MINECART"/>
  <enum-item name="WHEELBARROW"/>
  <enum-item name="OTHER_LARGE_TOOLS"/>
  <enum-item name="SAND_BAG"/>
</enum-type>

stockpile.stockpile_category

<enum-type type-name="stockpile_category" base-type="int16_t">
  <enum-item name="Remove" value="-1"/>
  <enum-item name="Animals"/>
  <enum-item name="Food"/>
  <enum-item name="Furniture"/>
  <enum-item name="Corpses"/>
  <enum-item name="Refuse"/>
  <enum-item name="Stone"/>
  <enum-item name="Ore"/>
  <enum-item name="Ammo"/>
  <enum-item name="Coins"/>
  <enum-item name="Bars"/>
  <enum-item name="Gems"/>
  <enum-item name="Goods"/>
  <enum-item name="Leather"/>
  <enum-item name="Cloth"/>
  <enum-item name="Wood"/>
  <enum-item name="Weapons"/>
  <enum-item name="Armor"/>
  <enum-item name="Sheets"/>
  <enum-item name="Custom"/>
</enum-type>

stockpile.stockpile_group_set

<bitfield-type type-name="stockpile_group_set" base-type="uint32_t">
  <flag-bit name="animals"/>
  <flag-bit name="food"/>
  <flag-bit name="furniture"/>
  <flag-bit name="corpses"/>
  <flag-bit name="refuse"/>
  <flag-bit name="stone"/>
  <flag-bit name="ammo"/>
  <flag-bit name="coins"/>
  <flag-bit name="bars_blocks"/>
  <flag-bit name="gems"/>
  <flag-bit name="finished_goods"/>
  <flag-bit name="leather"/>
  <flag-bit name="cloth"/>
  <flag-bit name="wood"/>
  <flag-bit name="weapons"/>
  <flag-bit name="armor"/>
  <flag-bit name="sheet"/>
</bitfield-type>

stockpile.stockpile_settings

<struct-type type-name="stockpile_settings">
  <compound name="flags" type-name="stockpile_group_set"/>
  <compound name="animals">
    <bool name="empty_cages"/>
    <bool name="empty_traps"/>
    <stl-vector type-name="bool" name="enabled"
        index-refers-to="(find-creature $)"/>
  </compound>
  <compound name="food">
    <stl-vector type-name="bool" name="meat"
        index-refers-to="(food-mat-by-idx $Meat $)"/>
    <stl-vector type-name="bool" name="fish"
        index-refers-to="(food-mat-by-idx $Fish $)"/>
    <stl-vector type-name="bool" name="unprepared_fish"
        index-refers-to="(food-mat-by-idx $UnpreparedFish $)"/>
    <stl-vector type-name="bool" name="egg"
        index-refers-to="(food-mat-by-idx $Eggs $)"/>
    <stl-vector type-name="bool" name="plants"
        index-refers-to="(food-mat-by-idx $Plants $)"/>
    <stl-vector type-name="bool" name="drink_plant"
        index-refers-to="(food-mat-by-idx $PlantDrink $)"/>
    <stl-vector type-name="bool" name="drink_animal"
        index-refers-to="(food-mat-by-idx $CreatureDrink $)"/>
    <stl-vector type-name="bool" name="cheese_plant"
        index-refers-to="(food-mat-by-idx $PlantCheese $)"/>
    <stl-vector type-name="bool" name="cheese_animal"
        index-refers-to="(food-mat-by-idx $CreatureCheese $)"/>
    <stl-vector type-name="bool" name="seeds"
        index-refers-to="(food-mat-by-idx $Seed $)"/>
    <stl-vector type-name="bool" name="leaves"
        index-refers-to="(food-mat-by-idx $Leaf $)"/>
    <stl-vector type-name="bool" name="powder_plant"
        index-refers-to="(food-mat-by-idx $PlantPowder $)"/>
    <stl-vector type-name="bool" name="powder_creature"
        index-refers-to="(food-mat-by-idx $CreaturePowder $)"/>
    <stl-vector type-name="bool" name="glob"
        index-refers-to="(food-mat-by-idx $Glob $)"/>
    <stl-vector type-name="bool" name="glob_paste"
        index-refers-to="(food-mat-by-idx $Paste $)"/>
    <stl-vector type-name="bool" name="glob_pressed"
        index-refers-to="(food-mat-by-idx $Pressed $)"/>
    <stl-vector type-name="bool" name="liquid_plant"
        index-refers-to="(food-mat-by-idx $PlantLiquid $)"/>
    <stl-vector type-name="bool" name="liquid_animal"
        index-refers-to="(food-mat-by-idx $CreatureLiquid $)"/>
    <stl-vector type-name="bool" name="liquid_misc"
        index-refers-to="(food-mat-by-idx $MiscLiquid $)"/>
    <bool name="prepared_meals"/>
  </compound>
  <compound name="furniture">
    <stl-vector type-name="bool" name="type"
        index-enum="furniture_type"/>
    <stl-vector type-name="bool" name="other_mats"/>
    <stl-vector type-name="bool" name="mats"
        index-refers-to="(material-by-id 0 $)"/>
    <static-array type-name="bool" name="quality_core" count="7"
        index-enum="item_quality"/>
    <static-array type-name="bool" name="quality_total" count="7"
        index-enum="item_quality"/>
    <bool name="sand_bags"/>
  </compound>
  <int32_t name="unk1"/>
  <compound name="refuse">
    <stl-vector type-name="bool" name="type" index-enum="item_type"/>
    <stl-vector type-name="bool" name="corpses"
        index-refers-to="(find-creature $)"/>
    <stl-vector type-name="bool" name="body_parts"
        index-refers-to="(find-creature $)"/>
    <stl-vector type-name="bool" name="skulls"
        index-refers-to="(find-creature $)"/>
    <stl-vector type-name="bool" name="bones"
        index-refers-to="(find-creature $)"/>
    <stl-vector type-name="bool" name="hair"
        index-refers-to="(find-creature $)"/>
    <stl-vector type-name="bool" name="shells"
        index-refers-to="(find-creature $)"/>
    <stl-vector type-name="bool" name="teeth"
        index-refers-to="(find-creature $)"/>
    <stl-vector type-name="bool" name="horns"
        index-refers-to="(find-creature $)"/>
    <bool name="fresh_raw_hide"/>
    <bool name="rotten_raw_hide"/>
  </compound>
  <compound name="stone">
    <stl-vector type-name="bool" name="mats"
        index-refers-to="(material-by-id 0 $)"/>
  </compound>
  <compound name="ore">
    <stl-vector type-name="bool" name="mats">
      unused
    </stl-vector>
  </compound>
  <compound name="ammo">
    <stl-vector type-name="bool" name="type"
        index-refers-to="$global.world.raws.itemdefs.ammo[$]"/>
    <stl-vector type-name="bool" name="other_mats"/>
    <stl-vector type-name="bool" name="mats"
        index-refers-to="(material-by-id 0 $)"/>
    <static-array type-name="bool" name="quality_core" count="7"
        index-enum="item_quality"/>
    <static-array type-name="bool" name="quality_total" count="7"
        index-enum="item_quality"/>
  </compound>
  <compound name="coins">
    <stl-vector type-name="bool" name="mats"
        index-refers-to="(material-by-id 0 $)"/>
  </compound>
  <compound name="bars_blocks">
    <stl-vector type-name="bool" name="bars_other_mats"/>
    <stl-vector type-name="bool" name="blocks_other_mats"/>
    <stl-vector type-name="bool" name="bars_mats"
        index-refers-to="(material-by-id 0 $)"/>
    <stl-vector type-name="bool" name="blocks_mats"
        index-refers-to="(material-by-id 0 $)"/>
  </compound>
  <compound name="gems">
    <stl-vector type-name="bool" name="rough_other_mats"
        index-refers-to="(material-by-id $ -1)"/>
    <stl-vector type-name="bool" name="cut_other_mats"
        index-refers-to="(material-by-id $ -1)"/>
    <stl-vector type-name="bool" name="rough_mats"
        index-refers-to="(material-by-id 0 $)"/>
    <stl-vector type-name="bool" name="cut_mats"
        index-refers-to="(material-by-id 0 $)"/>
  </compound>
  <compound name="finished_goods">
    <stl-vector type-name="bool" name="type" index-enum="item_type"/>
    <stl-vector type-name="bool" name="other_mats"/>
    <stl-vector type-name="bool" name="mats"
        index-refers-to="(material-by-id 0 $)"/>
    <static-array type-name="bool" name="quality_core" count="7"
        index-enum="item_quality"/>
    <static-array type-name="bool" name="quality_total" count="7"
        index-enum="item_quality"/>
  </compound>
  <compound name="leather">
    <stl-vector type-name="bool" name="mats"
        index-refers-to="(food-mat-by-idx $Leather $)"/>
  </compound>
  <compound name="cloth">
    <stl-vector type-name="bool" name="thread_silk"
        index-refers-to="(food-mat-by-idx $Silk $)"/>
    <stl-vector type-name="bool" name="thread_plant"
        index-refers-to="(food-mat-by-idx $PlantFiber $)"/>
    <stl-vector type-name="bool" name="thread_yarn"
        index-refers-to="(food-mat-by-idx $Yarn $)"/>
    <stl-vector type-name="bool" name="thread_metal"
        index-refers-to="(food-mat-by-idx $MetalThread $)"/>
    <stl-vector type-name="bool" name="cloth_silk"
        index-refers-to="(food-mat-by-idx $Silk $)"/>
    <stl-vector type-name="bool" name="cloth_plant"
        index-refers-to="(food-mat-by-idx $PlantFiber $)"/>
    <stl-vector type-name="bool" name="cloth_yarn"
        index-refers-to="(food-mat-by-idx $Yarn $)"/>
    <stl-vector type-name="bool" name="cloth_metal"
        index-refers-to="(food-mat-by-idx $MetalThread $)"/>
  </compound>
  <compound name="wood">
    <stl-vector type-name="bool" name="mats"
        index-refers-to="(find-plant-raw $)"/>
  </compound>
  <compound name="weapons">
    <stl-vector type-name="bool" name="weapon_type"
        index-refers-to="$global.world.raws.itemdefs.weapons[$]"/>
    <stl-vector type-name="bool" name="trapcomp_type"
        index-refers-to="$global.world.raws.itemdefs.trapcomps[$]"/>
    <stl-vector type-name="bool" name="other_mats"/>
    <stl-vector type-name="bool" name="mats"
        index-refers-to="(material-by-id 0 $)"/>
    <static-array type-name="bool" name="quality_core" count="7"
        index-enum="item_quality"/>
    <static-array type-name="bool" name="quality_total" count="7"
        index-enum="item_quality"/>
    <bool name="usable"/>
    <bool name="unusable"/>
  </compound>
  <compound name="armor">
    <stl-vector type-name="bool" name="body"
        index-refers-to="$global.world.raws.itemdefs.armor[$]"/>
    <stl-vector type-name="bool" name="head"
        index-refers-to="$global.world.raws.itemdefs.helms[$]"/>
    <stl-vector type-name="bool" name="feet"
        index-refers-to="$global.world.raws.itemdefs.shoes[$]"/>
    <stl-vector type-name="bool" name="hands"
        index-refers-to="$global.world.raws.itemdefs.gloves[$]"/>
    <stl-vector type-name="bool" name="legs"
        index-refers-to="$global.world.raws.itemdefs.pants[$]"/>
    <stl-vector type-name="bool" name="shield"
        index-refers-to="$global.world.raws.itemdefs.shields[$]"/>
    <stl-vector type-name="bool" name="other_mats"/>
    <stl-vector type-name="bool" name="mats"
        index-refers-to="(material-by-id 0 $)"/>
    <static-array type-name="bool" name="quality_core" count="7"
        index-enum="item_quality"/>
    <static-array type-name="bool" name="quality_total" count="7"
        index-enum="item_quality"/>
    <bool name="usable"/>
    <bool name="unusable"/>
  </compound>
  <compound name="sheet">
    <stl-vector type-name="bool" name="paper"/>
    <stl-vector type-name="bool" name="parchment"/>
  </compound>
  <bool name="allow_organic" init-value="true"/>
  <bool name="allow_inorganic" init-value="true"/>
</struct-type>

stockpile.stockpile_list

<enum-type type-name="stockpile_list" base-type="int32_t">
  <enum-attr name="is_category" type-name="bool"/>
  <enum-item name="Animals">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="Food">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="FoodMeat"/>
  <enum-item name="FoodFish"/>
  <enum-item name="FoodUnpreparedFish"/>
  <enum-item name="FoodEgg"/>
  <enum-item name="FoodPlants"/>
  <enum-item name="FoodDrinkPlant"/>
  <enum-item name="FoodDrinkAnimal"/>
  <enum-item name="FoodCheesePlant"/>
  <enum-item name="FoodCheeseAnimal"/>
  <enum-item name="FoodSeeds"/>
  <enum-item name="FoodLeaves"/>
  <enum-item name="FoodMilledPlant"/>
  <enum-item name="FoodBoneMeal"/>
  <enum-item name="FoodFat"/>
  <enum-item name="FoodPaste"/>
  <enum-item name="FoodPressedMaterial"/>
  <enum-item name="FoodExtractPlant"/>
  <enum-item name="FoodExtractAnimal"/>
  <enum-item name="FoodMiscLiquid"/>
  <enum-item name="Furniture">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="FurnitureType"/>
  <enum-item name="FurnitureStoneClay"/>
  <enum-item name="FurnitureMetal"/>
  <enum-item name="FurnitureOtherMaterials"/>
  <enum-item name="FurnitureCoreQuality"/>
  <enum-item name="FurnitureTotalQuality"/>
  <enum-item name="Corpses">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="Refuse">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="RefuseItems"/>
  <enum-item name="RefuseCorpses"/>
  <enum-item name="RefuseParts"/>
  <enum-item name="RefuseSkulls"/>
  <enum-item name="RefuseBones"/>
  <enum-item name="RefuseShells"/>
  <enum-item name="RefuseTeeth"/>
  <enum-item name="RefuseHorns"/>
  <enum-item name="RefuseHair"/>
  <enum-item name="Stone">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="StoneOres"/>
  <enum-item name="StoneEconomic"/>
  <enum-item name="StoneOther"/>
  <enum-item name="StoneClay"/>
  <enum-item name="Ammo">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="AmmoType"/>
  <enum-item name="AmmoMetal"/>
  <enum-item name="AmmoOther"/>
  <enum-item name="AmmoCoreQuality"/>
  <enum-item name="AmmoTotalQuality"/>
  <enum-item name="Coins">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="BarsBlocks">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="BarsMetal"/>
  <enum-item name="BarsOther"/>
  <enum-item name="BlocksStone"/>
  <enum-item name="BlocksMetal"/>
  <enum-item name="BlocksOther"/>
  <enum-item name="Gems">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="RoughGem"/>
  <enum-item name="RoughGlass"/>
  <enum-item name="CutGem"/>
  <enum-item name="CutGlass"/>
  <enum-item name="CutStone"/>
  <enum-item name="Goods">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="GoodsType"/>
  <enum-item name="GoodsStone"/>
  <enum-item name="GoodsMetal"/>
  <enum-item name="GoodsGem"/>
  <enum-item name="GoodsOther"/>
  <enum-item name="GoodsCoreQuality"/>
  <enum-item name="GoodsTotalQuality"/>
  <enum-item name="Leather">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="Cloth">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="ThreadSilk"/>
  <enum-item name="ThreadPlant"/>
  <enum-item name="ThreadYarn"/>
  <enum-item name="ThreadMetal"/>
  <enum-item name="ClothSilk"/>
  <enum-item name="ClothPlant"/>
  <enum-item name="ClothYarn"/>
  <enum-item name="ClothMetal"/>
  <enum-item name="Wood">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="Weapons">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="WeaponsType"/>
  <enum-item name="WeaponsTrapcomp"/>
  <enum-item name="WeaponsMetal"/>
  <enum-item name="WeaponsStone"/>
  <enum-item name="WeaponsOther"/>
  <enum-item name="WeaponsCoreQuality"/>
  <enum-item name="WeaponsTotalQuality"/>
  <enum-item name="Armor">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="ArmorBody"/>
  <enum-item name="ArmorHead"/>
  <enum-item name="ArmorFeet"/>
  <enum-item name="ArmorHands"/>
  <enum-item name="ArmorLegs"/>
  <enum-item name="ArmorShield"/>
  <enum-item name="ArmorMetal"/>
  <enum-item name="ArmorOther"/>
  <enum-item name="ArmorCoreQuality"/>
  <enum-item name="ArmorTotalQuality"/>
  <enum-item name="Sheet">
    <item-attr name="is_category" value="true"/>
  </enum-item>
  <enum-item name="SheetPaper"/>
  <enum-item name="SheetParchment"/>
  <enum-item name="AdditionalOptions">
    <item-attr name="is_category" value="true"/>
  </enum-item>
</enum-type>

stockpile.hauling_route

<struct-type type-name="hauling_route"
    instance-vector="$global.ui.hauling.routes" key-field="id">
  <int32_t name="id"/>
  <stl-string name="name"/>
  <stl-vector name="stops" pointer-type="hauling_stop"/>
  <stl-vector name="vehicle_ids">
    <int32_t ref-target="vehicle"/>
  </stl-vector>
  <stl-vector name="vehicle_stops">
    <int32_t refers-to="$$._global.stops[$]"/>
  </stl-vector>
</struct-type>

stockpile.hauling_stop

<struct-type type-name="hauling_stop" key-field="id">
  <int32_t name="id"/>
  <stl-string name="name"/>
  <compound name="pos" type-name="coord"/>
  <compound name="settings" type-name="stockpile_settings"/>
  <stl-vector name="conditions" pointer-type="stop_depart_condition"/>
  <stl-vector name="stockpiles" pointer-type="route_stockpile_link"/>
  <int32_t name="time_waiting"/>
  <int32_t name="cart_id" ref-target="item"/>
</struct-type>

stockpile.stop_depart_condition

<struct-type type-name="stop_depart_condition">
  <int32_t name="timeout"/>
  <enum base-type="int32_t" name="direction">
    <enum-item name="North"/>
    <enum-item name="South"/>
    <enum-item name="East"/>
    <enum-item name="West"/>
  </enum>
  <enum base-type="int32_t" name="mode">
    <enum-item name="Push"/>
    <enum-item name="Ride"/>
    <enum-item name="Guide"/>
  </enum>
  <int32_t name="load_percent">
    broken display unless 0, 50 or 100
  </int32_t>
  <bitfield name="flags">
    <flag-bit name="at_most"/>
    <flag-bit name="desired"/>
  </bitfield>
  <compound name="guide_path" type-name="coord_path">
    initialized on first run, and saved
  </compound>
</struct-type>

stockpile.vehicle

<struct-type type-name="vehicle"
    instance-vector="$global.world.vehicles.all" key-field="id">
  <int32_t name="id"/>
  <int32_t name="item_id" ref-target="item"/>
  <int32_t name="offset_x">
    -50000..50000
  </int32_t>
  <int32_t name="offset_y"/>
  <int32_t name="offset_z"/>
  <int32_t name="speed_x"/>
  <int32_t name="speed_y"/>
  <int32_t name="speed_z"/>
  <padding size="16">
    0
  </padding>
  <int32_t name="route_id" ref-target="hauling_route"/>
  <compound name="pos" type-name="coord"/>
  <int32_t name="time_stopped">
    frames, up to 1000
  </int32_t>
</struct-type>