factorio-draftsman 2.0.3__tar.gz → 3.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (719) hide show
  1. factorio_draftsman-3.0.1/PKG-INFO +309 -0
  2. factorio_draftsman-3.0.1/README.md +255 -0
  3. factorio_draftsman-3.0.1/draftsman/__init__.py +48 -0
  4. factorio_draftsman-3.0.1/draftsman/_factorio_version.py +4 -0
  5. factorio_draftsman-3.0.1/draftsman/_version.py +4 -0
  6. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/blueprintable.py +35 -23
  7. factorio_draftsman-3.0.1/draftsman/classes/__init__.py +1 -0
  8. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/classes/association.py +9 -19
  9. factorio_draftsman-3.0.1/draftsman/classes/blueprint.py +691 -0
  10. factorio_draftsman-3.0.1/draftsman/classes/blueprint_book.py +213 -0
  11. factorio_draftsman-3.0.1/draftsman/classes/blueprintable.py +433 -0
  12. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/classes/collection.py +853 -496
  13. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/classes/collision_set.py +1 -1
  14. factorio_draftsman-3.0.1/draftsman/classes/deconstruction_planner.py +303 -0
  15. factorio_draftsman-3.0.1/draftsman/classes/entity.py +1147 -0
  16. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/classes/entity_like.py +88 -57
  17. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/classes/entity_list.py +118 -192
  18. factorio_draftsman-3.0.1/draftsman/classes/exportable.py +483 -0
  19. factorio_draftsman-3.0.1/draftsman/classes/group.py +409 -0
  20. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/classes/mixins/__init__.py +41 -7
  21. factorio_draftsman-3.0.1/draftsman/classes/mixins/artillery_auto_target.py +31 -0
  22. factorio_draftsman-3.0.1/draftsman/classes/mixins/circuit_condition.py +79 -0
  23. factorio_draftsman-3.0.1/draftsman/classes/mixins/circuit_connectable.py +109 -0
  24. factorio_draftsman-3.0.1/draftsman/classes/mixins/circuit_enable.py +39 -0
  25. factorio_draftsman-3.0.1/draftsman/classes/mixins/circuit_read_contents.py +83 -0
  26. factorio_draftsman-3.0.1/draftsman/classes/mixins/circuit_read_hand.py +58 -0
  27. factorio_draftsman-3.0.1/draftsman/classes/mixins/circuit_read_resource.py +52 -0
  28. factorio_draftsman-3.0.1/draftsman/classes/mixins/circuit_set_filters.py +32 -0
  29. factorio_draftsman-3.0.1/draftsman/classes/mixins/color.py +42 -0
  30. factorio_draftsman-3.0.1/draftsman/classes/mixins/control_behavior.py +49 -0
  31. factorio_draftsman-3.0.1/draftsman/classes/mixins/crafting_machine.py +145 -0
  32. factorio_draftsman-3.0.1/draftsman/classes/mixins/directional.py +243 -0
  33. factorio_draftsman-3.0.1/draftsman/classes/mixins/energy_source.py +88 -0
  34. factorio_draftsman-3.0.1/draftsman/classes/mixins/equipment_grid.py +291 -0
  35. factorio_draftsman-3.0.1/draftsman/classes/mixins/filters.py +134 -0
  36. factorio_draftsman-3.0.1/draftsman/classes/mixins/input_ingredients.py +17 -0
  37. factorio_draftsman-3.0.1/draftsman/classes/mixins/inventory.py +139 -0
  38. factorio_draftsman-3.0.1/draftsman/classes/mixins/io_type.py +42 -0
  39. factorio_draftsman-3.0.1/draftsman/classes/mixins/logistic_condition.py +101 -0
  40. factorio_draftsman-3.0.1/draftsman/classes/mixins/mode_of_operation.py +81 -0
  41. factorio_draftsman-3.0.1/draftsman/classes/mixins/modules.py +135 -0
  42. factorio_draftsman-3.0.1/draftsman/classes/mixins/orientation.py +123 -0
  43. factorio_draftsman-3.0.1/draftsman/classes/mixins/player_description.py +45 -0
  44. factorio_draftsman-3.0.1/draftsman/classes/mixins/power_connectable.py +68 -0
  45. factorio_draftsman-3.0.1/draftsman/classes/mixins/read_ammo.py +32 -0
  46. factorio_draftsman-3.0.1/draftsman/classes/mixins/read_rail_signal.py +98 -0
  47. factorio_draftsman-3.0.1/draftsman/classes/mixins/recipe.py +178 -0
  48. factorio_draftsman-3.0.1/draftsman/classes/mixins/request_filters.py +176 -0
  49. factorio_draftsman-3.0.1/draftsman/classes/mixins/stack_size.py +83 -0
  50. factorio_draftsman-3.0.1/draftsman/classes/mixins/target_priorities.py +157 -0
  51. factorio_draftsman-3.0.1/draftsman/classes/mixins/variation.py +32 -0
  52. factorio_draftsman-3.0.1/draftsman/classes/mixins/vehicle.py +128 -0
  53. factorio_draftsman-3.0.1/draftsman/classes/rail_planner.py +654 -0
  54. factorio_draftsman-3.0.1/draftsman/classes/schedule.py +612 -0
  55. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/classes/schedule_list.py +18 -18
  56. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/classes/spatial_data_structure.py +3 -34
  57. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/classes/spatial_hashmap.py +80 -98
  58. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/classes/spatial_like.py +4 -5
  59. factorio_draftsman-3.0.1/draftsman/classes/tile.py +165 -0
  60. factorio_draftsman-3.0.1/draftsman/classes/tile_list.py +477 -0
  61. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/classes/train_configuration.py +27 -17
  62. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/classes/transformable.py +4 -15
  63. factorio_draftsman-3.0.1/draftsman/classes/upgrade_planner.py +673 -0
  64. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/classes/vector.py +33 -12
  65. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/compatibility/defines.lua +2 -0
  66. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/compatibility/interface.lua +2 -2
  67. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/constants.py +485 -264
  68. factorio_draftsman-3.0.1/draftsman/data/entities.pkl +0 -0
  69. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/data/entities.py +50 -70
  70. factorio_draftsman-3.0.1/draftsman/data/equipment.pkl +0 -0
  71. factorio_draftsman-3.0.1/draftsman/data/equipment.py +36 -0
  72. factorio_draftsman-3.0.1/draftsman/data/fluids.pkl +0 -0
  73. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/data/fluids.py +51 -9
  74. factorio_draftsman-3.0.1/draftsman/data/instruments.pkl +0 -0
  75. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/data/instruments.py +15 -7
  76. factorio_draftsman-3.0.1/draftsman/data/items.pkl +0 -0
  77. factorio_draftsman-3.0.1/draftsman/data/items.py +290 -0
  78. factorio_draftsman-3.0.1/draftsman/data/mods.pkl +0 -0
  79. factorio_draftsman-3.0.1/draftsman/data/mods.py +16 -0
  80. factorio_draftsman-3.0.1/draftsman/data/modules.pkl +0 -0
  81. factorio_draftsman-3.0.1/draftsman/data/modules.py +120 -0
  82. factorio_draftsman-3.0.1/draftsman/data/planets.pkl +0 -0
  83. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/data/planets.py +4 -6
  84. factorio_draftsman-3.0.1/draftsman/data/qualities.pkl +0 -0
  85. factorio_draftsman-3.0.1/draftsman/data/qualities.py +16 -0
  86. factorio_draftsman-3.0.1/draftsman/data/recipes.pkl +0 -0
  87. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/data/recipes.py +14 -17
  88. factorio_draftsman-3.0.1/draftsman/data/signals.pkl +0 -0
  89. factorio_draftsman-3.0.1/draftsman/data/signals.py +144 -0
  90. factorio_draftsman-3.0.1/draftsman/data/tiles.pkl +0 -0
  91. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/data/tiles.py +8 -3
  92. factorio_draftsman-3.0.1/draftsman/entity.py +348 -0
  93. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/environment/mod_list.py +53 -30
  94. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/environment/mod_settings.py +6 -3
  95. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/environment/script.py +36 -17
  96. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/environment/update.py +310 -203
  97. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/error.py +17 -5
  98. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/extras.py +11 -13
  99. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/info.json +1 -1
  100. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/circuit-network.lua +1 -1
  101. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/entities.lua +1 -1
  102. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/entity-util.lua +1 -1
  103. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/projectiles.lua +6 -3
  104. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/remnants.lua +1 -1
  105. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/turrets.lua +4 -0
  106. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/item.lua +17 -9
  107. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/changelog.txt +177 -1
  108. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/prototypes/utility-constants.lua +2 -0
  109. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/prototypes/utility-sprites.lua +2 -1
  110. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/credits.txt +1 -0
  111. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/elevated-rails/info.json +1 -1
  112. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/elevated-rails/prototypes/entity/remnants.lua +1 -1
  113. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/info.json +1 -1
  114. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/info.json +1 -1
  115. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/ambient-sounds.lua +45 -45
  116. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/decorative/decoratives-aquilo.lua +1 -1
  117. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/decorative/decoratives-vulcanus.lua +3 -3
  118. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/asteroid.lua +1 -0
  119. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/base-frozen-graphics.lua +1 -0
  120. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/enemies.lua +5 -33
  121. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/entities.lua +1 -1
  122. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/explosions.lua +16 -8
  123. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/item.lua +4 -2
  124. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/recipe.lua +1 -1
  125. factorio_draftsman-3.0.1/draftsman/prototypes/accumulator.py +68 -0
  126. factorio_draftsman-3.0.1/draftsman/prototypes/agricultural_tower.py +60 -0
  127. factorio_draftsman-3.0.1/draftsman/prototypes/ammo_turret.py +70 -0
  128. factorio_draftsman-3.0.1/draftsman/prototypes/arithmetic_combinator.py +557 -0
  129. factorio_draftsman-3.0.1/draftsman/prototypes/artillery_turret.py +43 -0
  130. factorio_draftsman-3.0.1/draftsman/prototypes/artillery_wagon.py +42 -0
  131. factorio_draftsman-3.0.1/draftsman/prototypes/assembling_machine.py +99 -0
  132. factorio_draftsman-3.0.1/draftsman/prototypes/asteroid_collector.py +137 -0
  133. factorio_draftsman-3.0.1/draftsman/prototypes/beacon.py +56 -0
  134. factorio_draftsman-3.0.1/draftsman/prototypes/boiler.py +31 -0
  135. factorio_draftsman-3.0.1/draftsman/prototypes/burner_generator.py +29 -0
  136. factorio_draftsman-3.0.1/draftsman/prototypes/car.py +37 -0
  137. factorio_draftsman-3.0.1/draftsman/prototypes/cargo_bay.py +26 -0
  138. factorio_draftsman-3.0.1/draftsman/prototypes/cargo_landing_pad.py +36 -0
  139. factorio_draftsman-3.0.1/draftsman/prototypes/cargo_wagon.py +90 -0
  140. factorio_draftsman-3.0.1/draftsman/prototypes/constant_combinator.py +186 -0
  141. factorio_draftsman-3.0.1/draftsman/prototypes/container.py +26 -0
  142. factorio_draftsman-3.0.1/draftsman/prototypes/curved_rail_a.py +36 -0
  143. factorio_draftsman-3.0.1/draftsman/prototypes/curved_rail_b.py +36 -0
  144. factorio_draftsman-3.0.1/draftsman/prototypes/decider_combinator.py +538 -0
  145. factorio_draftsman-3.0.1/draftsman/prototypes/display_panel.py +164 -0
  146. factorio_draftsman-3.0.1/draftsman/prototypes/electric_energy_interface.py +133 -0
  147. factorio_draftsman-3.0.1/draftsman/prototypes/electric_pole.py +37 -0
  148. factorio_draftsman-3.0.1/draftsman/prototypes/electric_turret.py +45 -0
  149. factorio_draftsman-3.0.1/draftsman/prototypes/elevated_curved_rail_a.py +38 -0
  150. factorio_draftsman-3.0.1/draftsman/prototypes/elevated_curved_rail_b.py +38 -0
  151. factorio_draftsman-3.0.1/draftsman/prototypes/elevated_half_diagonal_rail.py +39 -0
  152. factorio_draftsman-3.0.1/draftsman/prototypes/elevated_straight_rail.py +60 -0
  153. factorio_draftsman-3.0.1/draftsman/prototypes/fluid_turret.py +45 -0
  154. factorio_draftsman-3.0.1/draftsman/prototypes/fluid_wagon.py +28 -0
  155. factorio_draftsman-3.0.1/draftsman/prototypes/furnace.py +105 -0
  156. factorio_draftsman-3.0.1/draftsman/prototypes/fusion_generator.py +27 -0
  157. factorio_draftsman-3.0.1/draftsman/prototypes/fusion_reactor.py +25 -0
  158. factorio_draftsman-3.0.1/draftsman/prototypes/gate.py +25 -0
  159. factorio_draftsman-3.0.1/draftsman/prototypes/generator.py +25 -0
  160. factorio_draftsman-3.0.1/draftsman/prototypes/half_diagonal_rail.py +32 -0
  161. factorio_draftsman-3.0.1/draftsman/prototypes/heat_interface.py +99 -0
  162. factorio_draftsman-3.0.1/draftsman/prototypes/heat_pipe.py +22 -0
  163. factorio_draftsman-3.0.1/draftsman/prototypes/infinity_container.py +189 -0
  164. factorio_draftsman-3.0.1/draftsman/prototypes/infinity_pipe.py +188 -0
  165. factorio_draftsman-3.0.1/draftsman/prototypes/inserter.py +268 -0
  166. factorio_draftsman-3.0.1/draftsman/prototypes/lab.py +89 -0
  167. factorio_draftsman-3.0.1/draftsman/prototypes/lamp.py +222 -0
  168. factorio_draftsman-3.0.1/draftsman/prototypes/land_mine.py +22 -0
  169. factorio_draftsman-3.0.1/draftsman/prototypes/legacy_curved_rail.py +108 -0
  170. factorio_draftsman-3.0.1/draftsman/prototypes/legacy_straight_rail.py +65 -0
  171. factorio_draftsman-3.0.1/draftsman/prototypes/lightning_attractor.py +26 -0
  172. factorio_draftsman-3.0.1/draftsman/prototypes/linked_belt.py +31 -0
  173. factorio_draftsman-3.0.1/draftsman/prototypes/linked_container.py +83 -0
  174. factorio_draftsman-3.0.1/draftsman/prototypes/loader.py +31 -0
  175. factorio_draftsman-3.0.1/draftsman/prototypes/locomotive.py +48 -0
  176. factorio_draftsman-3.0.1/draftsman/prototypes/logistic_active_container.py +106 -0
  177. factorio_draftsman-3.0.1/draftsman/prototypes/logistic_buffer_container.py +40 -0
  178. factorio_draftsman-3.0.1/draftsman/prototypes/logistic_passive_container.py +111 -0
  179. factorio_draftsman-3.0.1/draftsman/prototypes/logistic_request_container.py +49 -0
  180. factorio_draftsman-3.0.1/draftsman/prototypes/logistic_storage_container.py +111 -0
  181. factorio_draftsman-3.0.1/draftsman/prototypes/mining_drill.py +82 -0
  182. factorio_draftsman-3.0.1/draftsman/prototypes/offshore_pump.py +40 -0
  183. factorio_draftsman-3.0.1/draftsman/prototypes/pipe.py +22 -0
  184. factorio_draftsman-3.0.1/draftsman/prototypes/player_port.py +24 -0
  185. factorio_draftsman-3.0.1/draftsman/prototypes/power_switch.py +86 -0
  186. factorio_draftsman-3.0.1/draftsman/prototypes/programmable_speaker.py +528 -0
  187. factorio_draftsman-3.0.1/draftsman/prototypes/pump.py +40 -0
  188. factorio_draftsman-3.0.1/draftsman/prototypes/radar.py +23 -0
  189. factorio_draftsman-3.0.1/draftsman/prototypes/rail_chain_signal.py +94 -0
  190. factorio_draftsman-3.0.1/draftsman/prototypes/rail_ramp.py +31 -0
  191. factorio_draftsman-3.0.1/draftsman/prototypes/rail_signal.py +102 -0
  192. factorio_draftsman-3.0.1/draftsman/prototypes/rail_support.py +38 -0
  193. factorio_draftsman-3.0.1/draftsman/prototypes/reactor.py +79 -0
  194. factorio_draftsman-3.0.1/draftsman/prototypes/roboport.py +287 -0
  195. factorio_draftsman-3.0.1/draftsman/prototypes/rocket_silo.py +181 -0
  196. factorio_draftsman-3.0.1/draftsman/prototypes/selector_combinator.py +446 -0
  197. factorio_draftsman-3.0.1/draftsman/prototypes/simple_entity_with_force.py +27 -0
  198. factorio_draftsman-3.0.1/draftsman/prototypes/simple_entity_with_owner.py +29 -0
  199. factorio_draftsman-3.0.1/draftsman/prototypes/solar_panel.py +23 -0
  200. factorio_draftsman-3.0.1/draftsman/prototypes/space_platform_hub.py +134 -0
  201. factorio_draftsman-3.0.1/draftsman/prototypes/spider_vehicle.py +93 -0
  202. factorio_draftsman-3.0.1/draftsman/prototypes/splitter.py +99 -0
  203. factorio_draftsman-3.0.1/draftsman/prototypes/storage_tank.py +25 -0
  204. factorio_draftsman-3.0.1/draftsman/prototypes/straight_rail.py +70 -0
  205. factorio_draftsman-3.0.1/draftsman/prototypes/thruster.py +24 -0
  206. factorio_draftsman-3.0.1/draftsman/prototypes/train_stop.py +308 -0
  207. factorio_draftsman-3.0.1/draftsman/prototypes/transport_belt.py +42 -0
  208. factorio_draftsman-3.0.1/draftsman/prototypes/underground_belt.py +25 -0
  209. factorio_draftsman-3.0.1/draftsman/prototypes/underground_pipe.py +25 -0
  210. factorio_draftsman-3.0.1/draftsman/prototypes/wall.py +101 -0
  211. factorio_draftsman-3.0.1/draftsman/rail.py +25 -0
  212. factorio_draftsman-3.0.1/draftsman/serialization.py +443 -0
  213. factorio_draftsman-3.0.1/draftsman/signatures.py +1515 -0
  214. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/tile.py +0 -4
  215. factorio_draftsman-3.0.1/draftsman/types.py +9 -0
  216. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/utils.py +163 -27
  217. factorio_draftsman-3.0.1/draftsman/validators.py +410 -0
  218. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/warning.py +19 -10
  219. factorio_draftsman-3.0.1/factorio_draftsman.egg-info/PKG-INFO +309 -0
  220. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/factorio_draftsman.egg-info/SOURCES.txt +13 -10
  221. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/factorio_draftsman.egg-info/requires.txt +4 -2
  222. factorio_draftsman-3.0.1/pyproject.toml +98 -0
  223. factorio_draftsman-3.0.1/test/test_all_factorio_versions.py +56 -0
  224. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_blueprint.py +627 -376
  225. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_blueprint_book.py +214 -186
  226. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_blueprintable.py +76 -9
  227. factorio_draftsman-3.0.1/test/test_constants.py +67 -0
  228. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_data.py +2 -32
  229. factorio_draftsman-3.0.1/test/test_deconstruction_planner.py +249 -0
  230. factorio_draftsman-3.0.1/test/test_entity.py +794 -0
  231. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_entity_list.py +154 -37
  232. factorio_draftsman-3.0.1/test/test_examples.py +52 -0
  233. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_group.py +128 -64
  234. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_schedule.py +167 -72
  235. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_schedule_list.py +5 -1
  236. factorio_draftsman-3.0.1/test/test_serialization.py +23 -0
  237. factorio_draftsman-3.0.1/test/test_signatures.py +19 -0
  238. factorio_draftsman-3.0.1/test/test_spatial_hash_map.py +192 -0
  239. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_tile.py +35 -37
  240. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_tile_list.py +24 -18
  241. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_upgrade_planner.py +202 -203
  242. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_utils.py +16 -16
  243. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_vector.py +6 -1
  244. factorio_draftsman-3.0.1/test/test_version.py +9 -0
  245. factorio_draftsman-2.0.3/PKG-INFO +0 -187
  246. factorio_draftsman-2.0.3/README.md +0 -156
  247. factorio_draftsman-2.0.3/draftsman/__init__.py +0 -17
  248. factorio_draftsman-2.0.3/draftsman/_factorio_version.py +0 -4
  249. factorio_draftsman-2.0.3/draftsman/_version.py +0 -4
  250. factorio_draftsman-2.0.3/draftsman/classes/__init__.py +0 -26
  251. factorio_draftsman-2.0.3/draftsman/classes/blueprint.py +0 -1206
  252. factorio_draftsman-2.0.3/draftsman/classes/blueprint_book.py +0 -566
  253. factorio_draftsman-2.0.3/draftsman/classes/blueprintable.py +0 -579
  254. factorio_draftsman-2.0.3/draftsman/classes/deconstruction_planner.py +0 -675
  255. factorio_draftsman-2.0.3/draftsman/classes/entity.py +0 -794
  256. factorio_draftsman-2.0.3/draftsman/classes/exportable.py +0 -379
  257. factorio_draftsman-2.0.3/draftsman/classes/group.py +0 -633
  258. factorio_draftsman-2.0.3/draftsman/classes/mixins/artillery_auto_target.py +0 -50
  259. factorio_draftsman-2.0.3/draftsman/classes/mixins/burner_energy_source.py +0 -201
  260. factorio_draftsman-2.0.3/draftsman/classes/mixins/circuit_condition.py +0 -106
  261. factorio_draftsman-2.0.3/draftsman/classes/mixins/circuit_connectable.py +0 -213
  262. factorio_draftsman-2.0.3/draftsman/classes/mixins/circuit_enable.py +0 -59
  263. factorio_draftsman-2.0.3/draftsman/classes/mixins/circuit_read_contents.py +0 -96
  264. factorio_draftsman-2.0.3/draftsman/classes/mixins/circuit_read_hand.py +0 -97
  265. factorio_draftsman-2.0.3/draftsman/classes/mixins/circuit_read_resource.py +0 -98
  266. factorio_draftsman-2.0.3/draftsman/classes/mixins/circuit_set_filters.py +0 -48
  267. factorio_draftsman-2.0.3/draftsman/classes/mixins/color.py +0 -96
  268. factorio_draftsman-2.0.3/draftsman/classes/mixins/consumes_ammo.py +0 -5
  269. factorio_draftsman-2.0.3/draftsman/classes/mixins/control_behavior.py +0 -173
  270. factorio_draftsman-2.0.3/draftsman/classes/mixins/directional.py +0 -246
  271. factorio_draftsman-2.0.3/draftsman/classes/mixins/double_grid_aligned.py +0 -50
  272. factorio_draftsman-2.0.3/draftsman/classes/mixins/eight_way_directional.py +0 -203
  273. factorio_draftsman-2.0.3/draftsman/classes/mixins/equipment_grid.py +0 -107
  274. factorio_draftsman-2.0.3/draftsman/classes/mixins/filters.py +0 -209
  275. factorio_draftsman-2.0.3/draftsman/classes/mixins/input_ingredients.py +0 -106
  276. factorio_draftsman-2.0.3/draftsman/classes/mixins/inventory.py +0 -217
  277. factorio_draftsman-2.0.3/draftsman/classes/mixins/inventory_filter.py +0 -337
  278. factorio_draftsman-2.0.3/draftsman/classes/mixins/io_type.py +0 -83
  279. factorio_draftsman-2.0.3/draftsman/classes/mixins/logistic_condition.py +0 -105
  280. factorio_draftsman-2.0.3/draftsman/classes/mixins/mode_of_operation.py +0 -152
  281. factorio_draftsman-2.0.3/draftsman/classes/mixins/modules.py +0 -169
  282. factorio_draftsman-2.0.3/draftsman/classes/mixins/orientation.py +0 -113
  283. factorio_draftsman-2.0.3/draftsman/classes/mixins/player_description.py +0 -56
  284. factorio_draftsman-2.0.3/draftsman/classes/mixins/power_connectable.py +0 -151
  285. factorio_draftsman-2.0.3/draftsman/classes/mixins/read_ammo.py +0 -49
  286. factorio_draftsman-2.0.3/draftsman/classes/mixins/read_rail_signal.py +0 -164
  287. factorio_draftsman-2.0.3/draftsman/classes/mixins/recipe.py +0 -216
  288. factorio_draftsman-2.0.3/draftsman/classes/mixins/request_filters.py +0 -318
  289. factorio_draftsman-2.0.3/draftsman/classes/mixins/request_items.py +0 -235
  290. factorio_draftsman-2.0.3/draftsman/classes/mixins/stack_size.py +0 -170
  291. factorio_draftsman-2.0.3/draftsman/classes/mixins/target_priorities.py +0 -202
  292. factorio_draftsman-2.0.3/draftsman/classes/mixins/vehicle.py +0 -93
  293. factorio_draftsman-2.0.3/draftsman/classes/rail_planner.py +0 -646
  294. factorio_draftsman-2.0.3/draftsman/classes/schedule.py +0 -722
  295. factorio_draftsman-2.0.3/draftsman/classes/tile.py +0 -311
  296. factorio_draftsman-2.0.3/draftsman/classes/tile_list.py +0 -326
  297. factorio_draftsman-2.0.3/draftsman/classes/upgrade_planner.py +0 -718
  298. factorio_draftsman-2.0.3/draftsman/data/entities.pkl +0 -0
  299. factorio_draftsman-2.0.3/draftsman/data/fluids.pkl +0 -0
  300. factorio_draftsman-2.0.3/draftsman/data/instruments.pkl +0 -0
  301. factorio_draftsman-2.0.3/draftsman/data/items.pkl +0 -0
  302. factorio_draftsman-2.0.3/draftsman/data/items.py +0 -137
  303. factorio_draftsman-2.0.3/draftsman/data/mods.pkl +0 -0
  304. factorio_draftsman-2.0.3/draftsman/data/mods.py +0 -11
  305. factorio_draftsman-2.0.3/draftsman/data/modules.pkl +0 -0
  306. factorio_draftsman-2.0.3/draftsman/data/modules.py +0 -80
  307. factorio_draftsman-2.0.3/draftsman/data/planets.pkl +0 -0
  308. factorio_draftsman-2.0.3/draftsman/data/recipes.pkl +0 -0
  309. factorio_draftsman-2.0.3/draftsman/data/signals.pkl +0 -0
  310. factorio_draftsman-2.0.3/draftsman/data/signals.py +0 -158
  311. factorio_draftsman-2.0.3/draftsman/data/tiles.pkl +0 -0
  312. factorio_draftsman-2.0.3/draftsman/entity.py +0 -315
  313. factorio_draftsman-2.0.3/draftsman/env.py +0 -2205
  314. factorio_draftsman-2.0.3/draftsman/prototypes/accumulator.py +0 -107
  315. factorio_draftsman-2.0.3/draftsman/prototypes/agricultural_tower.py +0 -118
  316. factorio_draftsman-2.0.3/draftsman/prototypes/ammo_turret.py +0 -103
  317. factorio_draftsman-2.0.3/draftsman/prototypes/arithmetic_combinator.py +0 -577
  318. factorio_draftsman-2.0.3/draftsman/prototypes/artillery_turret.py +0 -102
  319. factorio_draftsman-2.0.3/draftsman/prototypes/artillery_wagon.py +0 -83
  320. factorio_draftsman-2.0.3/draftsman/prototypes/assembling_machine.py +0 -185
  321. factorio_draftsman-2.0.3/draftsman/prototypes/asteroid_collector.py +0 -223
  322. factorio_draftsman-2.0.3/draftsman/prototypes/beacon.py +0 -73
  323. factorio_draftsman-2.0.3/draftsman/prototypes/boiler.py +0 -60
  324. factorio_draftsman-2.0.3/draftsman/prototypes/burner_generator.py +0 -107
  325. factorio_draftsman-2.0.3/draftsman/prototypes/car.py +0 -81
  326. factorio_draftsman-2.0.3/draftsman/prototypes/cargo_bay.py +0 -56
  327. factorio_draftsman-2.0.3/draftsman/prototypes/cargo_landing_pad.py +0 -78
  328. factorio_draftsman-2.0.3/draftsman/prototypes/cargo_wagon.py +0 -77
  329. factorio_draftsman-2.0.3/draftsman/prototypes/constant_combinator.py +0 -345
  330. factorio_draftsman-2.0.3/draftsman/prototypes/container.py +0 -65
  331. factorio_draftsman-2.0.3/draftsman/prototypes/curved_rail_a.py +0 -55
  332. factorio_draftsman-2.0.3/draftsman/prototypes/curved_rail_b.py +0 -55
  333. factorio_draftsman-2.0.3/draftsman/prototypes/decider_combinator.py +0 -690
  334. factorio_draftsman-2.0.3/draftsman/prototypes/display_panel.py +0 -179
  335. factorio_draftsman-2.0.3/draftsman/prototypes/electric_energy_interface.py +0 -251
  336. factorio_draftsman-2.0.3/draftsman/prototypes/electric_pole.py +0 -64
  337. factorio_draftsman-2.0.3/draftsman/prototypes/electric_turret.py +0 -103
  338. factorio_draftsman-2.0.3/draftsman/prototypes/elevated_curved_rail_a.py +0 -55
  339. factorio_draftsman-2.0.3/draftsman/prototypes/elevated_curved_rail_b.py +0 -55
  340. factorio_draftsman-2.0.3/draftsman/prototypes/elevated_half_diagonal_rail.py +0 -57
  341. factorio_draftsman-2.0.3/draftsman/prototypes/elevated_straight_rail.py +0 -55
  342. factorio_draftsman-2.0.3/draftsman/prototypes/filter_inserter.py +0 -187
  343. factorio_draftsman-2.0.3/draftsman/prototypes/fluid_turret.py +0 -103
  344. factorio_draftsman-2.0.3/draftsman/prototypes/fluid_wagon.py +0 -58
  345. factorio_draftsman-2.0.3/draftsman/prototypes/furnace.py +0 -223
  346. factorio_draftsman-2.0.3/draftsman/prototypes/fusion_generator.py +0 -53
  347. factorio_draftsman-2.0.3/draftsman/prototypes/fusion_reactor.py +0 -53
  348. factorio_draftsman-2.0.3/draftsman/prototypes/gate.py +0 -53
  349. factorio_draftsman-2.0.3/draftsman/prototypes/generator.py +0 -50
  350. factorio_draftsman-2.0.3/draftsman/prototypes/half_diagonal_rail.py +0 -55
  351. factorio_draftsman-2.0.3/draftsman/prototypes/heat_interface.py +0 -174
  352. factorio_draftsman-2.0.3/draftsman/prototypes/heat_pipe.py +0 -50
  353. factorio_draftsman-2.0.3/draftsman/prototypes/infinity_container.py +0 -240
  354. factorio_draftsman-2.0.3/draftsman/prototypes/infinity_pipe.py +0 -371
  355. factorio_draftsman-2.0.3/draftsman/prototypes/inserter.py +0 -293
  356. factorio_draftsman-2.0.3/draftsman/prototypes/lab.py +0 -100
  357. factorio_draftsman-2.0.3/draftsman/prototypes/lamp.py +0 -179
  358. factorio_draftsman-2.0.3/draftsman/prototypes/land_mine.py +0 -50
  359. factorio_draftsman-2.0.3/draftsman/prototypes/legacy_curved_rail.py +0 -113
  360. factorio_draftsman-2.0.3/draftsman/prototypes/legacy_straight_rail.py +0 -105
  361. factorio_draftsman-2.0.3/draftsman/prototypes/lightning_attractor.py +0 -51
  362. factorio_draftsman-2.0.3/draftsman/prototypes/linked_belt.py +0 -58
  363. factorio_draftsman-2.0.3/draftsman/prototypes/linked_container.py +0 -143
  364. factorio_draftsman-2.0.3/draftsman/prototypes/loader.py +0 -60
  365. factorio_draftsman-2.0.3/draftsman/prototypes/locomotive.py +0 -71
  366. factorio_draftsman-2.0.3/draftsman/prototypes/logistic_active_container.py +0 -85
  367. factorio_draftsman-2.0.3/draftsman/prototypes/logistic_buffer_container.py +0 -100
  368. factorio_draftsman-2.0.3/draftsman/prototypes/logistic_passive_container.py +0 -87
  369. factorio_draftsman-2.0.3/draftsman/prototypes/logistic_request_container.py +0 -116
  370. factorio_draftsman-2.0.3/draftsman/prototypes/logistic_storage_container.py +0 -95
  371. factorio_draftsman-2.0.3/draftsman/prototypes/mining_drill.py +0 -129
  372. factorio_draftsman-2.0.3/draftsman/prototypes/offshore_pump.py +0 -87
  373. factorio_draftsman-2.0.3/draftsman/prototypes/pipe.py +0 -50
  374. factorio_draftsman-2.0.3/draftsman/prototypes/player_port.py +0 -46
  375. factorio_draftsman-2.0.3/draftsman/prototypes/power_switch.py +0 -153
  376. factorio_draftsman-2.0.3/draftsman/prototypes/programmable_speaker.py +0 -850
  377. factorio_draftsman-2.0.3/draftsman/prototypes/pump.py +0 -72
  378. factorio_draftsman-2.0.3/draftsman/prototypes/radar.py +0 -47
  379. factorio_draftsman-2.0.3/draftsman/prototypes/rail_chain_signal.py +0 -131
  380. factorio_draftsman-2.0.3/draftsman/prototypes/rail_ramp.py +0 -55
  381. factorio_draftsman-2.0.3/draftsman/prototypes/rail_signal.py +0 -162
  382. factorio_draftsman-2.0.3/draftsman/prototypes/rail_support.py +0 -55
  383. factorio_draftsman-2.0.3/draftsman/prototypes/reactor.py +0 -170
  384. factorio_draftsman-2.0.3/draftsman/prototypes/roboport.py +0 -295
  385. factorio_draftsman-2.0.3/draftsman/prototypes/rocket_silo.py +0 -190
  386. factorio_draftsman-2.0.3/draftsman/prototypes/selector_combinator.py +0 -151
  387. factorio_draftsman-2.0.3/draftsman/prototypes/simple_entity_with_force.py +0 -84
  388. factorio_draftsman-2.0.3/draftsman/prototypes/simple_entity_with_owner.py +0 -84
  389. factorio_draftsman-2.0.3/draftsman/prototypes/solar_panel.py +0 -50
  390. factorio_draftsman-2.0.3/draftsman/prototypes/space_platform_hub.py +0 -136
  391. factorio_draftsman-2.0.3/draftsman/prototypes/spider_vehicle.py +0 -197
  392. factorio_draftsman-2.0.3/draftsman/prototypes/splitter.py +0 -192
  393. factorio_draftsman-2.0.3/draftsman/prototypes/storage_tank.py +0 -59
  394. factorio_draftsman-2.0.3/draftsman/prototypes/straight_rail.py +0 -105
  395. factorio_draftsman-2.0.3/draftsman/prototypes/thruster.py +0 -50
  396. factorio_draftsman-2.0.3/draftsman/prototypes/train_stop.py +0 -426
  397. factorio_draftsman-2.0.3/draftsman/prototypes/transport_belt.py +0 -92
  398. factorio_draftsman-2.0.3/draftsman/prototypes/turret.py +0 -60
  399. factorio_draftsman-2.0.3/draftsman/prototypes/underground_belt.py +0 -60
  400. factorio_draftsman-2.0.3/draftsman/prototypes/underground_pipe.py +0 -53
  401. factorio_draftsman-2.0.3/draftsman/prototypes/wall.py +0 -173
  402. factorio_draftsman-2.0.3/draftsman/rail.py +0 -11
  403. factorio_draftsman-2.0.3/draftsman/signatures.py +0 -1443
  404. factorio_draftsman-2.0.3/draftsman/types.py +0 -11
  405. factorio_draftsman-2.0.3/factorio_draftsman.egg-info/PKG-INFO +0 -187
  406. factorio_draftsman-2.0.3/pyproject.toml +0 -6
  407. factorio_draftsman-2.0.3/setup.py +0 -87
  408. factorio_draftsman-2.0.3/test/test_deconstruction_planner.py +0 -380
  409. factorio_draftsman-2.0.3/test/test_entity.py +0 -463
  410. factorio_draftsman-2.0.3/test/test_examples.py +0 -51
  411. factorio_draftsman-2.0.3/test/test_spatial_hash_map.py +0 -96
  412. factorio_draftsman-2.0.3/test/test_version.py +0 -9
  413. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/LICENSE +0 -0
  414. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/MANIFEST.in +0 -0
  415. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/compatibility/serpent.lua +0 -0
  416. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/compatibility/settings.lua +0 -0
  417. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/data/__init__.py +0 -0
  418. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/environment/__init__.py +0 -0
  419. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/.git +0 -0
  420. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/README.md +0 -0
  421. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/data-updates.lua +0 -0
  422. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/data.lua +0 -0
  423. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/migrations/1.1.0.json +0 -0
  424. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/migrations/1.2.0 stack inserter rename.json +0 -0
  425. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/migrations/2.0.0-biter-egg.json +0 -0
  426. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/migrations/2.0.0-internal.json +0 -0
  427. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/migrations/2.0.0-internal2.json +0 -0
  428. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/migrations/2.0.0-internal3.json +0 -0
  429. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/migrations/2.0.0.json +0 -0
  430. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/migrations/2.0.0.lua +0 -0
  431. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/migrations/migrations.txt +0 -0
  432. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/achievements.lua +0 -0
  433. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/ambient-sounds.lua +0 -0
  434. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/autoplace-controls.lua +0 -0
  435. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/categories/ammo-category.lua +0 -0
  436. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/categories/equipment-category.lua +0 -0
  437. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/categories/fuel-category.lua +0 -0
  438. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/categories/module-category.lua +0 -0
  439. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/categories/quality.lua +0 -0
  440. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/categories/recipe-category.lua +0 -0
  441. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/categories/resource-category.lua +0 -0
  442. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/collision-layers.lua +0 -0
  443. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/custom-inputs.lua +0 -0
  444. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/damage-type.lua +0 -0
  445. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/decorative/decorative-trigger-effects.lua +0 -0
  446. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/decorative/decoratives.lua +0 -0
  447. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/demo.lua +0 -0
  448. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/artillery-cannon-muzzle-flash-shifting.lua +0 -0
  449. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/assemblerpipes.lua +0 -0
  450. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/atomic-bomb.lua +0 -0
  451. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/beacon-animations.lua +0 -0
  452. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/beams.lua +0 -0
  453. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/biter-ai-settings.lua +0 -0
  454. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/biter-animations.lua +0 -0
  455. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/biter-die-effects.lua +0 -0
  456. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/cargo-hatch.lua +0 -0
  457. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/cargo-pod-catalogue.lua +0 -0
  458. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/character-animations.lua +0 -0
  459. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/combinator-pictures.lua +0 -0
  460. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/crash-site.lua +0 -0
  461. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/enemies.lua +0 -0
  462. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/enemy-autoplace-utils.lua +0 -0
  463. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/enemy-constants.lua +0 -0
  464. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/enemy-projectiles.lua +0 -0
  465. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/explosion-animations.lua +0 -0
  466. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/explosions.lua +0 -0
  467. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/factorio-logo.lua +0 -0
  468. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/fire.lua +0 -0
  469. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/flying-robots.lua +0 -0
  470. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/giga-cargo-hatch.lua +0 -0
  471. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/hit-effects.lua +0 -0
  472. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/laser-sounds.lua +0 -0
  473. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/mining-drill.lua +0 -0
  474. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/movement-triggers.lua +0 -0
  475. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/pipecovers.lua +0 -0
  476. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/pump-connector.lua +0 -0
  477. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/rail-pictures.lua +0 -0
  478. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/resources.lua +0 -0
  479. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/rocket-projectile-pictures.lua +0 -0
  480. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/smoke-animations.lua +0 -0
  481. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/smoke.lua +0 -0
  482. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/sounds.lua +0 -0
  483. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/spawner-animation.lua +0 -0
  484. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/spidertron-animations.lua +0 -0
  485. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/spidertron-light-positions.lua +0 -0
  486. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/spitter-animations.lua +0 -0
  487. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/trains.lua +0 -0
  488. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/transport-belts.lua +0 -0
  489. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/trees.lua +0 -0
  490. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/entity/worm-animations.lua +0 -0
  491. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/equipment-grid.lua +0 -0
  492. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/equipment.lua +0 -0
  493. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/factoriopedia-simulations.lua +0 -0
  494. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/factoriopedia-util.lua +0 -0
  495. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/fire-util.lua +0 -0
  496. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/fluid.lua +0 -0
  497. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/impact-deliver-category.lua +0 -0
  498. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/item-groups.lua +0 -0
  499. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/item-tints.lua +0 -0
  500. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/item_sounds.lua +0 -0
  501. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/map-gen-presets.lua +0 -0
  502. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/map-settings.lua +0 -0
  503. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/noise-expressions.lua +0 -0
  504. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/particle-animations.lua +0 -0
  505. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/particles.lua +0 -0
  506. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/planet/planet-map-gen.lua +0 -0
  507. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/planet/planet.lua +0 -0
  508. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/planet/procession-audio-catalogue-types.lua +0 -0
  509. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/planet/procession-graphic-catalogue-types.lua +0 -0
  510. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/planet/procession-style.lua +0 -0
  511. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/planet/procession.lua +0 -0
  512. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/planet/surface-property.lua +0 -0
  513. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/pollution.lua +0 -0
  514. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/recipe.lua +0 -0
  515. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/shortcuts.lua +0 -0
  516. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/signal.lua +0 -0
  517. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/technology.lua +0 -0
  518. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/tile/tile-collision-masks.lua +0 -0
  519. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/tile/tile-graphics.lua +0 -0
  520. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/tile/tile-pollution-values.lua +0 -0
  521. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/tile/tile-sounds.lua +0 -0
  522. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/tile/tile-trigger-effects.lua +0 -0
  523. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/tile/tiles.lua +0 -0
  524. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/tips-and-tricks-simulations.lua +0 -0
  525. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/tips-and-tricks.lua +0 -0
  526. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/trigger-target-types.lua +0 -0
  527. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/tutorials.lua +0 -0
  528. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/base/prototypes/utility-sprites.lua +0 -0
  529. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/backers.json +0 -0
  530. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/data.lua +0 -0
  531. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/info.json +0 -0
  532. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/autoplace_utils.lua +0 -0
  533. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/bonus-gui-ordering.lua +0 -0
  534. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/circuit-connector-generated-definitions.lua +0 -0
  535. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/circuit-connector-sprites.lua +0 -0
  536. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/collision-mask-defaults.lua +0 -0
  537. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/collision-mask-util.lua +0 -0
  538. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/crash-site.lua +0 -0
  539. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/data-duplicate-checker.lua +0 -0
  540. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/dataloader.lua +0 -0
  541. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/event_handler.lua +0 -0
  542. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/kill-score.lua +0 -0
  543. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/math2d.lua +0 -0
  544. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/math3d.lua +0 -0
  545. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/meld.lua +0 -0
  546. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/mod-gui.lua +0 -0
  547. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/production-score.lua +0 -0
  548. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/resource-autoplace.lua +0 -0
  549. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/silo-script.lua +0 -0
  550. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/sound-util.lua +0 -0
  551. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/space-finish-script.lua +0 -0
  552. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/story.lua +0 -0
  553. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/surface-render-parameter-effects.lua +0 -0
  554. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/lualib/util.lua +0 -0
  555. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/prototypes/burner-usage.lua +0 -0
  556. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/prototypes/cursors.lua +0 -0
  557. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/prototypes/editor-controller.lua +0 -0
  558. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/prototypes/fonts.lua +0 -0
  559. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/prototypes/god-controller.lua +0 -0
  560. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/prototypes/noise-functions.lua +0 -0
  561. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/prototypes/noise-programs.lua +0 -0
  562. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/prototypes/parameters.lua +0 -0
  563. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/prototypes/remote-controller.lua +0 -0
  564. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/prototypes/spectator-controller.lua +0 -0
  565. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/prototypes/style.lua +0 -0
  566. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/prototypes/unknown.lua +0 -0
  567. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/core/prototypes/utility-sounds.lua +0 -0
  568. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/elevated-rails/data.lua +0 -0
  569. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/elevated-rails/prototypes/base-data-updates.lua +0 -0
  570. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/elevated-rails/prototypes/entity/elevated-rail-pictures.lua +0 -0
  571. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/elevated-rails/prototypes/entity/elevated-rails.lua +0 -0
  572. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/elevated-rails/prototypes/entity/explosions.lua +0 -0
  573. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/elevated-rails/prototypes/item/elevated-rails.lua +0 -0
  574. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/elevated-rails/prototypes/particles.lua +0 -0
  575. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/elevated-rails/prototypes/recipe/elevated-rails.lua +0 -0
  576. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/elevated-rails/prototypes/sloped-trains-updates.lua +0 -0
  577. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/elevated-rails/prototypes/technology/elevated-rails.lua +0 -0
  578. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/elevated-rails/prototypes/tips-and-tricks-simulations.lua +0 -0
  579. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/elevated-rails/prototypes/tips-and-tricks.lua +0 -0
  580. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/map-gen-settings.example.json +0 -0
  581. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/map-settings.example.json +0 -0
  582. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/data-updates.lua +0 -0
  583. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/data.lua +0 -0
  584. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/prototypes/base-data-updates.lua +0 -0
  585. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/prototypes/entity/entity.lua +0 -0
  586. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/prototypes/entity/explosions.lua +0 -0
  587. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/prototypes/entity/recycler-pictures.lua +0 -0
  588. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/prototypes/entity/remnants.lua +0 -0
  589. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/prototypes/item.lua +0 -0
  590. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/prototypes/module-category.lua +0 -0
  591. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/prototypes/quality.lua +0 -0
  592. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/prototypes/recipe.lua +0 -0
  593. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/prototypes/recycling.lua +0 -0
  594. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/prototypes/signal.lua +0 -0
  595. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/prototypes/technology.lua +0 -0
  596. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/prototypes/tips-and-tricks-simulations.lua +0 -0
  597. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/quality/prototypes/tips-and-tricks.lua +0 -0
  598. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/server-settings.example.json +0 -0
  599. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/server-whitelist.example.json +0 -0
  600. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/base-data-updates.lua +0 -0
  601. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/data-updates.lua +0 -0
  602. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/data.lua +0 -0
  603. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/migrations/aquilo-tilesets.json +0 -0
  604. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/migrations/biolab.json +0 -0
  605. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/migrations/internal.json +0 -0
  606. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/migrations/jelly-yum-rename.json +0 -0
  607. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/migrations/shattered-planet.json +0 -0
  608. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/migrations/tungsten-belt-rename.json +0 -0
  609. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/achievements.lua +0 -0
  610. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/active-triggers.lua +0 -0
  611. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/autoplace-controls.lua +0 -0
  612. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/burner-usage.lua +0 -0
  613. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/categories/ammo-category.lua +0 -0
  614. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/categories/fuel-category.lua +0 -0
  615. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/categories/recipe-category.lua +0 -0
  616. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/categories/resource-category.lua +0 -0
  617. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/decorative/decoratives-fulgora.lua +0 -0
  618. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/decorative/decoratives-gleba.lua +0 -0
  619. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/decorative/decoratives.lua +0 -0
  620. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/agricultural-tower-crane.lua +0 -0
  621. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/asteroid-collector-pictures.lua +0 -0
  622. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/beams.lua +0 -0
  623. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/big-mining-drill.lua +0 -0
  624. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/biochamber-pictures.lua +0 -0
  625. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/cargo-hatch.lua +0 -0
  626. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/cargo-pod-catalogue.lua +0 -0
  627. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/circuit-network.lua +0 -0
  628. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/crusher-pictures.lua +0 -0
  629. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/cryogenic-plant-pictures.lua +0 -0
  630. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/electromagnetic-plant-pictures.lua +0 -0
  631. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/explosion-animations.lua +0 -0
  632. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/flying-robots.lua +0 -0
  633. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/foundry-pictures.lua +0 -0
  634. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/fusion-system-pictures.lua +0 -0
  635. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/giga-cargo-hatch.lua +0 -0
  636. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/gleba-ai-settings.lua +0 -0
  637. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/gleba-enemy-animations.lua +0 -0
  638. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/lightning-collector-graphics.lua +0 -0
  639. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/lightning-rod-graphics.lua +0 -0
  640. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/mech-armor-animations.lua +0 -0
  641. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/plants.lua +0 -0
  642. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/projectiles.lua +0 -0
  643. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/railgun-turret-pictures.lua +0 -0
  644. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/remnants.lua +0 -0
  645. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/resources.lua +0 -0
  646. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/smoke.lua +0 -0
  647. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/sounds.lua +0 -0
  648. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/space-enemy-autoplace-utils.lua +0 -0
  649. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/space-platform-hub-cockpit.lua +0 -0
  650. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/transport-belts.lua +0 -0
  651. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/trees.lua +0 -0
  652. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/entity/turrets.lua +0 -0
  653. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/equipment-grid.lua +0 -0
  654. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/equipment.lua +0 -0
  655. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/factoriopedia-simulations.lua +0 -0
  656. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/fluid.lua +0 -0
  657. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/item-effects.lua +0 -0
  658. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/item-groups.lua +0 -0
  659. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/item_sounds.lua +0 -0
  660. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/particle-animations.lua +0 -0
  661. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/particles.lua +0 -0
  662. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/asteroid-spawn-definitions.lua +0 -0
  663. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/general-functions.lua +0 -0
  664. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/general-variables.lua +0 -0
  665. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/planet-to-platform/audio-events.lua +0 -0
  666. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/planet-to-platform/cloud-layers.lua +0 -0
  667. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/planet-to-platform/pod-layers-a.lua +0 -0
  668. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/planet-to-platform/pod-layers-b.lua +0 -0
  669. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/planet-to-platform/pod-layers-i.lua +0 -0
  670. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/planet-to-platform/rocket-layers.lua +0 -0
  671. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/planet-to-platform/space-layers.lua +0 -0
  672. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/planet-to-platform.lua +0 -0
  673. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/platform-to-planet/audio-events.lua +0 -0
  674. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/platform-to-planet/cloud-layers.lua +0 -0
  675. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/platform-to-planet/pod-layers-a.lua +0 -0
  676. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/platform-to-planet/pod-layers-b.lua +0 -0
  677. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/platform-to-planet/pod-layers-i.lua +0 -0
  678. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/platform-to-planet/space-layers.lua +0 -0
  679. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/general/platform-to-planet.lua +0 -0
  680. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/planet-aquilo-map-gen.lua +0 -0
  681. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/planet-fulgora-map-gen.lua +0 -0
  682. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/planet-gleba-map-gen.lua +0 -0
  683. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/planet-map-gen.lua +0 -0
  684. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/planet-vulcanus-map-gen.lua +0 -0
  685. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/planet.lua +0 -0
  686. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/procession-catalogue-aquilo.lua +0 -0
  687. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/procession-catalogue-fulgora.lua +0 -0
  688. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/procession-catalogue-gleba.lua +0 -0
  689. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/procession-catalogue-vulcanus.lua +0 -0
  690. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/procession-common.lua +0 -0
  691. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/planet/procession.lua +0 -0
  692. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/spores.lua +0 -0
  693. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/surface.lua +0 -0
  694. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/technology.lua +0 -0
  695. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/tile/platform-tile-animations.lua +0 -0
  696. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/tile/tile-pollution-values.lua +0 -0
  697. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/tile/tile-sounds.lua +0 -0
  698. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/tile/tile-trigger-effects.lua +0 -0
  699. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/tile/tiles-aquilo.lua +0 -0
  700. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/tile/tiles-fulgora.lua +0 -0
  701. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/tile/tiles-gleba.lua +0 -0
  702. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/tile/tiles-vulcanus.lua +0 -0
  703. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/tile/tiles.lua +0 -0
  704. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/tips-and-tricks-simulations.lua +0 -0
  705. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/tips-and-tricks.lua +0 -0
  706. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/utility-sounds.lua +0 -0
  707. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-data/space-age/prototypes/utility-sprites.lua +0 -0
  708. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/factorio-mods/.gitignore +0 -0
  709. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/draftsman/prototypes/__init__.py +0 -0
  710. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/factorio_draftsman.egg-info/dependency_links.txt +0 -0
  711. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/factorio_draftsman.egg-info/entry_points.txt +0 -0
  712. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/factorio_draftsman.egg-info/top_level.txt +0 -0
  713. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/setup.cfg +0 -0
  714. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_association.py +0 -0
  715. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_collision_set.py +0 -0
  716. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_environment.py +0 -0
  717. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_mixins.py +0 -0
  718. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_rail_planner.py +0 -0
  719. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.1}/test/test_train_configuration.py +0 -0
@@ -0,0 +1,309 @@
1
+ Metadata-Version: 2.4
2
+ Name: factorio-draftsman
3
+ Version: 3.0.1
4
+ Summary: A complete, well-tested, and up-to-date module to manipulate Factorio blueprint strings. Compatible with mods.
5
+ Author: redruin01
6
+ License: MIT License
7
+
8
+ Copyright (c) 2023 redruin1
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Project-URL: Homepage, https://github.com/redruin1/factorio-draftsman
29
+ Project-URL: Documentation, https://factorio-draftsman.readthedocs.io/en/latest/index.html
30
+ Project-URL: Issues, https://github.com/redruin1/factorio-draftsman/issues
31
+ Project-URL: Changelog, https://github.com/redruin1/factorio-draftsman/blob/main/changelog.md
32
+ Keywords: factorio,blueprint,string
33
+ Classifier: Development Status :: 4 - Beta
34
+ Classifier: Programming Language :: Python :: 3.10
35
+ Classifier: Programming Language :: Python :: 3.11
36
+ Classifier: Programming Language :: Python :: 3.12
37
+ Classifier: Programming Language :: Python :: 3.13
38
+ Classifier: Intended Audience :: Developers
39
+ Classifier: Intended Audience :: End Users/Desktop
40
+ Classifier: Operating System :: OS Independent
41
+ Classifier: License :: OSI Approved :: MIT License
42
+ Requires-Python: >=3.9
43
+ Description-Content-Type: text/markdown
44
+ License-File: LICENSE
45
+ Requires-Dist: attrs>=25.3.0
46
+ Requires-Dist: cattrs>=24.1.3
47
+ Requires-Dist: lupa>=2.0
48
+ Requires-Dist: GitPython>=3.1.43
49
+ Requires-Dist: thefuzz>=0.20.0
50
+ Requires-Dist: enum_tools>=0.13.0
51
+ Requires-Dist: typing
52
+ Requires-Dist: typing_extensions; python_version < "3.8"
53
+ Dynamic: license-file
54
+
55
+ # factorio-draftsman
56
+
57
+ ![A logo generated with 'examples/draftsman_logo.py'](https://github.com/redruin1/factorio-draftsman/raw/main/docs/img/logo.png)
58
+
59
+ [![PyPI version](https://badge.fury.io/py/factorio-draftsman.svg)](https://badge.fury.io/py/factorio-draftsman)
60
+ [![Documentation Status](https://readthedocs.org/projects/factorio-draftsman/badge/?version=latest)](https://factorio-draftsman.readthedocs.io/en/latest/?badge=latest)
61
+ [![codecov](https://codecov.io/gh/redruin1/factorio-draftsman/branch/main/graph/badge.svg?token=UERAOXVTO1)](https://codecov.io/gh/redruin1/factorio-draftsman)
62
+ [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
63
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
64
+
65
+ `factorio-draftsman` is a Python module for creating and editing blueprints for the game [Factorio](https://factorio.com/).
66
+
67
+ ```python
68
+ from draftsman.blueprintable import *
69
+ from draftsman.constants import Direction
70
+ from draftsman.entity import *
71
+
72
+ # Create new Blueprints from scratch
73
+ blueprint = Blueprint()
74
+ blueprint.label = "Example"
75
+ blueprint.description = "A blueprint for the readme."
76
+ blueprint.version = (2, 0) # Factorio version 2.0
77
+
78
+ # Add new entities and configure them procedurally
79
+ test_string = "readme"
80
+ for i, char in enumerate(test_string):
81
+ signal_string = "signal-{}".format(char.upper())
82
+
83
+ constant_combinator = ConstantCombinator(tile_position=(i - 2, 0))
84
+ section = constant_combinator.add_section()
85
+ section.set_signal(
86
+ index=0,
87
+ name=signal_string,
88
+ count=0,
89
+ )
90
+ blueprint.entities.append(constant_combinator)
91
+
92
+ display_panel = DisplayPanel(tile_position=(i - 2, 1))
93
+ display_panel.icon = signal_string
94
+ display_panel.always_show_in_alt_mode = True
95
+ blueprint.entities.append(display_panel)
96
+
97
+ # Flexible ways to specify entities
98
+ blueprint.entities.append(
99
+ "constant-combinator",
100
+ id="constant",
101
+ tile_position=(-1, 3),
102
+ direction=Direction.EAST
103
+ )
104
+ blueprint.entities.append(
105
+ "decider-combinator",
106
+ id="clock",
107
+ tile_position=(0, 3),
108
+ direction=Direction.EAST,
109
+ )
110
+ blueprint.entities.append(
111
+ "small-lamp",
112
+ id="blinker",
113
+ tile_position=(2, 3)
114
+ )
115
+
116
+ # Use IDs for ease of access on complex blueprints
117
+ constant: ConstantCombinator = blueprint.entities["constant"]
118
+ constant.add_section().set_signal(index=0, name="signal-red", count=1)
119
+
120
+ clock: DeciderCombinator = blueprint.entities["clock"]
121
+ clock.conditions = [
122
+ DeciderCombinator.Condition(
123
+ first_signal="signal-red",
124
+ comparator="<=",
125
+ constant=60
126
+ )
127
+ ]
128
+ clock.outputs = [
129
+ DeciderCombinator.Output(
130
+ signal="signal-red"
131
+ )
132
+ ]
133
+
134
+ blinker: Lamp = blueprint.entities["blinker"]
135
+ blinker.circuit_enabled = True
136
+ blinker.set_circuit_condition("signal-red", "=", 60)
137
+ blinker.use_colors = True
138
+
139
+ # Sophisticated relationship handling with Associations
140
+ blueprint.add_circuit_connection( # Constant to input of decider
141
+ color="green",
142
+ entity_1="constant",
143
+ entity_2="clock"
144
+ )
145
+ blueprint.add_circuit_connection( # Input of decider to output of decider
146
+ color="red", entity_1="clock", side_1="input", entity_2="clock", side_2="output"
147
+ )
148
+ blueprint.add_circuit_connection( # Output of decider to lamp
149
+ color="green", entity_1="clock", side_1="output", entity_2="blinker", side_2="input"
150
+ )
151
+
152
+ # Import compressed blueprints
153
+ bp_string = """0eNqllGFrwyAQhv/LfdZhkmUl+SujDJNc2wO9FLVjXfC/z2TZBisrLH4S9d7n3pdDJ+jMBc+OOEA7AfUje2ifJ/B0ZG3mM9YWoQXtPdrOEB+l1f2JGGUFUQDxgG/QFnEvADlQIPwkLJvrC19shy4ViLskAefRJ/HIc88EVA+1gOuyxpkdyKzgX4WyWOpkEb87ODwk6iBP+l27QaZQvcOA0uAhJM83CJVNyPewxlC5KVRuCJWdIXsS2YPIn0N5S/iS/u37n6JNnVZ/1RZ/1RZ/d0XpYVJAm+5+/hEBr+j8gqmfyuaxaeqdKutdU8b4AbwVejE="""
154
+
155
+ # Group entities together and treat them all as one unit
156
+ group = Group.from_string(bp_string)
157
+ for i in range(3):
158
+ blueprint.groups.append(group, position=(i * 4 - 3, 7))
159
+
160
+ # Quickly query Blueprints by region or contents
161
+ ccs = blueprint.find_entities_filtered(name="constant-combinator")
162
+ assert len(ccs) == len(test_string) + 1
163
+ asm_machines: list[AssemblingMachine] = blueprint.find_entities_filtered(type="assembling-machine")
164
+ assert len(asm_machines) == 3
165
+ for asm_machine in asm_machines:
166
+ asm_machine.recipe = "low-density-structure"
167
+
168
+ # Every blueprintable type is supported
169
+ blueprint_book = BlueprintBook()
170
+ blueprint_book.blueprints = [blueprint, UpgradePlanner(), DeconstructionPlanner()]
171
+
172
+ print(blueprint_book.to_string(version=(2, 0))) # Blueprint string to import into Factorio
173
+ ```
174
+
175
+ ![The output from the above script.](examples/images/readme_output.PNG)
176
+
177
+ # Overview
178
+
179
+ Simply put, Draftsman attempts to provide a universal solution to the task of creating and manipulating Factorio blueprint strings, which are compressed text strings used by players to share their constructions easily with others.
180
+ Draftsman allows users to programmatically create these strings via script, allowing for designs that would normally be too tedious to design by hand, such as combinator computer compilers, image-to-blueprint converters, pumpjack placers, as well as any other complex or repetitive design better suited for a computer's touch.
181
+
182
+ For a user-friendly timeline of how this project came about, as well as some pretty illustrations of it's capabilities, [you can read an article](https://alt-f4.blog/ALTF4-61/) written for the amazing fan-run community spotlight website [Alt-F4](https://alt-f4.blog/).
183
+
184
+ For more information on what exactly Draftsman is and does, as well as its intended purpose and philosophy, [you can read the documentation here](https://factorio-draftsman.readthedocs.io/en/latest/index.html).
185
+
186
+ For more examples on what exactly you can do with Draftsman, take a look at the [examples folder](https://github.com/redruin1/factorio-draftsman/tree/main/examples), which is organized into different categories for ease of navigation.
187
+
188
+ ## Features
189
+ * Compatible with Python >= 3.10
190
+ * Compatible with all versions of Factorio >= 1.0.0
191
+ * Compatible with Factorio mods(!)
192
+ * Well documented
193
+ * Intuitive and flexible API
194
+ * Useful constructs for ease-of-use:
195
+ * Give entities unique string IDs to make association between entities easier
196
+ * Filter entities from blueprints by type, region and other parameters [just like Factorio's own API](https://lua-api.factorio.com/latest/classes/LuaSurface.html#find_entities_filtered)
197
+ * Entities are categorized and organized within `draftsman.data` for easy and flexible iteration
198
+ * Group entities together and manipulate them all as one unit
199
+ * Verbose Errors and Warnings (["Factorio-safety" and "Factorio-correctness"](https://factorio-draftsman.readthedocs.io/en/latest/concepts/validation.html))
200
+ * Expansive and rigorous test suite
201
+
202
+ # Installation
203
+
204
+ ## For Users:
205
+
206
+ ```
207
+ pip install factorio-draftsman
208
+ ```
209
+
210
+ This will install the latest version of Draftsman with a copy of pre-generated data from [`factorio-data`](https://github.com/wube/factorio-data) (typically the latest stable version). Having a copy of the game (installed or at all) is not necessary to use Draftsman, but Draftsman can also use data from your user-specific installation.
211
+
212
+ If Factorio updates in-between Draftsman releases, or if you want to update your environment to support mods, then you can modify your Draftsman installation by running the companion command-line tool `draftsman`:
213
+
214
+ ```
215
+ draftsman factorio-version latest
216
+ draftsman --mods-path "path/to/mods/folder" update
217
+ ```
218
+
219
+ For more information on how to use this tool, you can run `draftsman -h` or see it's documentation [here](https://factorio-draftsman.readthedocs.io/en/latest/reference/environment/script.html).
220
+
221
+ ## For Developers
222
+
223
+ Clone the repository using your preferred method (making sure submodules are populated) and navigate to the root of the newly cloned repository:
224
+
225
+ ```
226
+ git clone --recurse-submodules https://github.com/redruin1/factorio-draftsman.git
227
+ cd factorio-draftsman
228
+ ```
229
+
230
+ Create a virtual environment of your personal flavor and enter inside of it. If you are looking to contribute to Draftsman however, it's recommended that you use [`uv`](https://github.com/astral-sh/uv) since most of the CI tools use it:
231
+
232
+ ```perl
233
+ pip install uv # or via pipx or standalone script, see uv docs
234
+ uv venv
235
+ ```
236
+
237
+ Install the package in editable mode, alongside the `dev` dependency group (requires modern pip):
238
+
239
+ ```
240
+ pip install -e .
241
+ pip install --group dev
242
+ ```
243
+
244
+ You should now be able to run the test suite with [`pytest`](https://docs.pytest.org/en/stable/#):
245
+
246
+ ```
247
+ python -m pytest test -Werror -vv
248
+ ```
249
+
250
+ Or - more succinctly - using [`coverage`](https://coverage.readthedocs.io/en/latest/):
251
+
252
+ ```
253
+ coverage run
254
+ ```
255
+
256
+ To run a mock CI against all supported Python versions, run [`tox`](https://tox.wiki/en/4.27.0/):
257
+
258
+ ```
259
+ tox
260
+ ```
261
+
262
+ However, Draftsman (>= 3.0) also provides a [`justfile`](https://github.com/casey/just) which has a number of recipes which make contributing much easier.
263
+ Type `just` to see a list of all options:
264
+
265
+ ```perl
266
+ Available recipes:
267
+ ci # Run 'lint + test + report-coverage'
268
+ ci-all # Run 'lint + test-all + report-coverage'
269
+ lint *args # Run black and ruff
270
+ test # Run test suite against {current Factorio version, all Python versions}
271
+ test-all # Run test suite against {all Factorio versions, latest Python version} (LONG)
272
+ report-coverage # Combine all coverage files and create HTML report
273
+ benchmark # Run benchmark tests and save profiles for this Draftsman version
274
+ ```
275
+
276
+ Note that testing currently is only guaranteed to pass with a vanilla [environment](https://factorio-draftsman.readthedocs.io/en/latest/concepts/environment.html).
277
+
278
+ A html-browsable coverage report can be generated with:
279
+
280
+ ```
281
+ coverage html
282
+ ```
283
+
284
+ To build + check documentation locally:
285
+
286
+ ```
287
+ cd docs
288
+ make clean
289
+ make doctest
290
+ make html
291
+ ```
292
+
293
+ and then navigate to `docs/build/index.html` to view.
294
+
295
+ --------------------------------------------------------------------------------
296
+
297
+ # Contributing
298
+
299
+ All support is welcome, whether it be finding/fixing bugs, improving mod compatibility, adding useful features, improving existing documentation, adding new examples, or anything in-between. Check [`TODO.md`](TODO.md) for a list of features which are (eventually) planned for a future version of Draftsman.
300
+
301
+ Bugs are tracked on the issue page; If you have an issue that's affecting you, search here for your issue and create a new one if it's not there. Feature requests also belong here if you can make a strong case for it's inclusion into the project.
302
+
303
+ If you have a feature request that isn't currently on the TODO list and you believe it might be a good fit for the project, but you're not absolutely sure if it belongs or how it should be implemented into Draftsman, start a [discussion thread here](https://github.com/redruin1/factorio-draftsman/discussions/categories/ideas). If a discussed feature is accepted, it should be added to the TODO list and tracked on the issues page. Questions on how to use Draftsman are also recommended to live in the discussions channel.
304
+
305
+ If you want to contribute, fork the project and dive in. When you're ready, submit a PR with the changes towards the intended branch, describing what exactly the changes intend to do (linking against any relevant issues if necessary). If all checks pass, you can expect the PR to merged in a (relatively) timely manner and pushed to the next minor or major version.
306
+
307
+ If Draftsman is useful to you or any of your projects (and you would like to grease it's continued development) then you can send me a dollar or two here:
308
+
309
+ <a href='https://ko-fi.com/L3L3XMUF' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi5.png?v=6' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>
@@ -0,0 +1,255 @@
1
+ # factorio-draftsman
2
+
3
+ ![A logo generated with 'examples/draftsman_logo.py'](https://github.com/redruin1/factorio-draftsman/raw/main/docs/img/logo.png)
4
+
5
+ [![PyPI version](https://badge.fury.io/py/factorio-draftsman.svg)](https://badge.fury.io/py/factorio-draftsman)
6
+ [![Documentation Status](https://readthedocs.org/projects/factorio-draftsman/badge/?version=latest)](https://factorio-draftsman.readthedocs.io/en/latest/?badge=latest)
7
+ [![codecov](https://codecov.io/gh/redruin1/factorio-draftsman/branch/main/graph/badge.svg?token=UERAOXVTO1)](https://codecov.io/gh/redruin1/factorio-draftsman)
8
+ [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
9
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
10
+
11
+ `factorio-draftsman` is a Python module for creating and editing blueprints for the game [Factorio](https://factorio.com/).
12
+
13
+ ```python
14
+ from draftsman.blueprintable import *
15
+ from draftsman.constants import Direction
16
+ from draftsman.entity import *
17
+
18
+ # Create new Blueprints from scratch
19
+ blueprint = Blueprint()
20
+ blueprint.label = "Example"
21
+ blueprint.description = "A blueprint for the readme."
22
+ blueprint.version = (2, 0) # Factorio version 2.0
23
+
24
+ # Add new entities and configure them procedurally
25
+ test_string = "readme"
26
+ for i, char in enumerate(test_string):
27
+ signal_string = "signal-{}".format(char.upper())
28
+
29
+ constant_combinator = ConstantCombinator(tile_position=(i - 2, 0))
30
+ section = constant_combinator.add_section()
31
+ section.set_signal(
32
+ index=0,
33
+ name=signal_string,
34
+ count=0,
35
+ )
36
+ blueprint.entities.append(constant_combinator)
37
+
38
+ display_panel = DisplayPanel(tile_position=(i - 2, 1))
39
+ display_panel.icon = signal_string
40
+ display_panel.always_show_in_alt_mode = True
41
+ blueprint.entities.append(display_panel)
42
+
43
+ # Flexible ways to specify entities
44
+ blueprint.entities.append(
45
+ "constant-combinator",
46
+ id="constant",
47
+ tile_position=(-1, 3),
48
+ direction=Direction.EAST
49
+ )
50
+ blueprint.entities.append(
51
+ "decider-combinator",
52
+ id="clock",
53
+ tile_position=(0, 3),
54
+ direction=Direction.EAST,
55
+ )
56
+ blueprint.entities.append(
57
+ "small-lamp",
58
+ id="blinker",
59
+ tile_position=(2, 3)
60
+ )
61
+
62
+ # Use IDs for ease of access on complex blueprints
63
+ constant: ConstantCombinator = blueprint.entities["constant"]
64
+ constant.add_section().set_signal(index=0, name="signal-red", count=1)
65
+
66
+ clock: DeciderCombinator = blueprint.entities["clock"]
67
+ clock.conditions = [
68
+ DeciderCombinator.Condition(
69
+ first_signal="signal-red",
70
+ comparator="<=",
71
+ constant=60
72
+ )
73
+ ]
74
+ clock.outputs = [
75
+ DeciderCombinator.Output(
76
+ signal="signal-red"
77
+ )
78
+ ]
79
+
80
+ blinker: Lamp = blueprint.entities["blinker"]
81
+ blinker.circuit_enabled = True
82
+ blinker.set_circuit_condition("signal-red", "=", 60)
83
+ blinker.use_colors = True
84
+
85
+ # Sophisticated relationship handling with Associations
86
+ blueprint.add_circuit_connection( # Constant to input of decider
87
+ color="green",
88
+ entity_1="constant",
89
+ entity_2="clock"
90
+ )
91
+ blueprint.add_circuit_connection( # Input of decider to output of decider
92
+ color="red", entity_1="clock", side_1="input", entity_2="clock", side_2="output"
93
+ )
94
+ blueprint.add_circuit_connection( # Output of decider to lamp
95
+ color="green", entity_1="clock", side_1="output", entity_2="blinker", side_2="input"
96
+ )
97
+
98
+ # Import compressed blueprints
99
+ bp_string = """0eNqllGFrwyAQhv/LfdZhkmUl+SujDJNc2wO9FLVjXfC/z2TZBisrLH4S9d7n3pdDJ+jMBc+OOEA7AfUje2ifJ/B0ZG3mM9YWoQXtPdrOEB+l1f2JGGUFUQDxgG/QFnEvADlQIPwkLJvrC19shy4ViLskAefRJ/HIc88EVA+1gOuyxpkdyKzgX4WyWOpkEb87ODwk6iBP+l27QaZQvcOA0uAhJM83CJVNyPewxlC5KVRuCJWdIXsS2YPIn0N5S/iS/u37n6JNnVZ/1RZ/1RZ/d0XpYVJAm+5+/hEBr+j8gqmfyuaxaeqdKutdU8b4AbwVejE="""
100
+
101
+ # Group entities together and treat them all as one unit
102
+ group = Group.from_string(bp_string)
103
+ for i in range(3):
104
+ blueprint.groups.append(group, position=(i * 4 - 3, 7))
105
+
106
+ # Quickly query Blueprints by region or contents
107
+ ccs = blueprint.find_entities_filtered(name="constant-combinator")
108
+ assert len(ccs) == len(test_string) + 1
109
+ asm_machines: list[AssemblingMachine] = blueprint.find_entities_filtered(type="assembling-machine")
110
+ assert len(asm_machines) == 3
111
+ for asm_machine in asm_machines:
112
+ asm_machine.recipe = "low-density-structure"
113
+
114
+ # Every blueprintable type is supported
115
+ blueprint_book = BlueprintBook()
116
+ blueprint_book.blueprints = [blueprint, UpgradePlanner(), DeconstructionPlanner()]
117
+
118
+ print(blueprint_book.to_string(version=(2, 0))) # Blueprint string to import into Factorio
119
+ ```
120
+
121
+ ![The output from the above script.](examples/images/readme_output.PNG)
122
+
123
+ # Overview
124
+
125
+ Simply put, Draftsman attempts to provide a universal solution to the task of creating and manipulating Factorio blueprint strings, which are compressed text strings used by players to share their constructions easily with others.
126
+ Draftsman allows users to programmatically create these strings via script, allowing for designs that would normally be too tedious to design by hand, such as combinator computer compilers, image-to-blueprint converters, pumpjack placers, as well as any other complex or repetitive design better suited for a computer's touch.
127
+
128
+ For a user-friendly timeline of how this project came about, as well as some pretty illustrations of it's capabilities, [you can read an article](https://alt-f4.blog/ALTF4-61/) written for the amazing fan-run community spotlight website [Alt-F4](https://alt-f4.blog/).
129
+
130
+ For more information on what exactly Draftsman is and does, as well as its intended purpose and philosophy, [you can read the documentation here](https://factorio-draftsman.readthedocs.io/en/latest/index.html).
131
+
132
+ For more examples on what exactly you can do with Draftsman, take a look at the [examples folder](https://github.com/redruin1/factorio-draftsman/tree/main/examples), which is organized into different categories for ease of navigation.
133
+
134
+ ## Features
135
+ * Compatible with Python >= 3.10
136
+ * Compatible with all versions of Factorio >= 1.0.0
137
+ * Compatible with Factorio mods(!)
138
+ * Well documented
139
+ * Intuitive and flexible API
140
+ * Useful constructs for ease-of-use:
141
+ * Give entities unique string IDs to make association between entities easier
142
+ * Filter entities from blueprints by type, region and other parameters [just like Factorio's own API](https://lua-api.factorio.com/latest/classes/LuaSurface.html#find_entities_filtered)
143
+ * Entities are categorized and organized within `draftsman.data` for easy and flexible iteration
144
+ * Group entities together and manipulate them all as one unit
145
+ * Verbose Errors and Warnings (["Factorio-safety" and "Factorio-correctness"](https://factorio-draftsman.readthedocs.io/en/latest/concepts/validation.html))
146
+ * Expansive and rigorous test suite
147
+
148
+ # Installation
149
+
150
+ ## For Users:
151
+
152
+ ```
153
+ pip install factorio-draftsman
154
+ ```
155
+
156
+ This will install the latest version of Draftsman with a copy of pre-generated data from [`factorio-data`](https://github.com/wube/factorio-data) (typically the latest stable version). Having a copy of the game (installed or at all) is not necessary to use Draftsman, but Draftsman can also use data from your user-specific installation.
157
+
158
+ If Factorio updates in-between Draftsman releases, or if you want to update your environment to support mods, then you can modify your Draftsman installation by running the companion command-line tool `draftsman`:
159
+
160
+ ```
161
+ draftsman factorio-version latest
162
+ draftsman --mods-path "path/to/mods/folder" update
163
+ ```
164
+
165
+ For more information on how to use this tool, you can run `draftsman -h` or see it's documentation [here](https://factorio-draftsman.readthedocs.io/en/latest/reference/environment/script.html).
166
+
167
+ ## For Developers
168
+
169
+ Clone the repository using your preferred method (making sure submodules are populated) and navigate to the root of the newly cloned repository:
170
+
171
+ ```
172
+ git clone --recurse-submodules https://github.com/redruin1/factorio-draftsman.git
173
+ cd factorio-draftsman
174
+ ```
175
+
176
+ Create a virtual environment of your personal flavor and enter inside of it. If you are looking to contribute to Draftsman however, it's recommended that you use [`uv`](https://github.com/astral-sh/uv) since most of the CI tools use it:
177
+
178
+ ```perl
179
+ pip install uv # or via pipx or standalone script, see uv docs
180
+ uv venv
181
+ ```
182
+
183
+ Install the package in editable mode, alongside the `dev` dependency group (requires modern pip):
184
+
185
+ ```
186
+ pip install -e .
187
+ pip install --group dev
188
+ ```
189
+
190
+ You should now be able to run the test suite with [`pytest`](https://docs.pytest.org/en/stable/#):
191
+
192
+ ```
193
+ python -m pytest test -Werror -vv
194
+ ```
195
+
196
+ Or - more succinctly - using [`coverage`](https://coverage.readthedocs.io/en/latest/):
197
+
198
+ ```
199
+ coverage run
200
+ ```
201
+
202
+ To run a mock CI against all supported Python versions, run [`tox`](https://tox.wiki/en/4.27.0/):
203
+
204
+ ```
205
+ tox
206
+ ```
207
+
208
+ However, Draftsman (>= 3.0) also provides a [`justfile`](https://github.com/casey/just) which has a number of recipes which make contributing much easier.
209
+ Type `just` to see a list of all options:
210
+
211
+ ```perl
212
+ Available recipes:
213
+ ci # Run 'lint + test + report-coverage'
214
+ ci-all # Run 'lint + test-all + report-coverage'
215
+ lint *args # Run black and ruff
216
+ test # Run test suite against {current Factorio version, all Python versions}
217
+ test-all # Run test suite against {all Factorio versions, latest Python version} (LONG)
218
+ report-coverage # Combine all coverage files and create HTML report
219
+ benchmark # Run benchmark tests and save profiles for this Draftsman version
220
+ ```
221
+
222
+ Note that testing currently is only guaranteed to pass with a vanilla [environment](https://factorio-draftsman.readthedocs.io/en/latest/concepts/environment.html).
223
+
224
+ A html-browsable coverage report can be generated with:
225
+
226
+ ```
227
+ coverage html
228
+ ```
229
+
230
+ To build + check documentation locally:
231
+
232
+ ```
233
+ cd docs
234
+ make clean
235
+ make doctest
236
+ make html
237
+ ```
238
+
239
+ and then navigate to `docs/build/index.html` to view.
240
+
241
+ --------------------------------------------------------------------------------
242
+
243
+ # Contributing
244
+
245
+ All support is welcome, whether it be finding/fixing bugs, improving mod compatibility, adding useful features, improving existing documentation, adding new examples, or anything in-between. Check [`TODO.md`](TODO.md) for a list of features which are (eventually) planned for a future version of Draftsman.
246
+
247
+ Bugs are tracked on the issue page; If you have an issue that's affecting you, search here for your issue and create a new one if it's not there. Feature requests also belong here if you can make a strong case for it's inclusion into the project.
248
+
249
+ If you have a feature request that isn't currently on the TODO list and you believe it might be a good fit for the project, but you're not absolutely sure if it belongs or how it should be implemented into Draftsman, start a [discussion thread here](https://github.com/redruin1/factorio-draftsman/discussions/categories/ideas). If a discussed feature is accepted, it should be added to the TODO list and tracked on the issues page. Questions on how to use Draftsman are also recommended to live in the discussions channel.
250
+
251
+ If you want to contribute, fork the project and dive in. When you're ready, submit a PR with the changes towards the intended branch, describing what exactly the changes intend to do (linking against any relevant issues if necessary). If all checks pass, you can expect the PR to merged in a (relatively) timely manner and pushed to the next minor or major version.
252
+
253
+ If Draftsman is useful to you or any of your projects (and you would like to grease it's continued development) then you can send me a dollar or two here:
254
+
255
+ <a href='https://ko-fi.com/L3L3XMUF' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi5.png?v=6' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>
@@ -0,0 +1,48 @@
1
+ # __init__.py
2
+ """
3
+ Allows the user to import, create, manipulate, and export Factorio blueprint
4
+ strings.
5
+ """
6
+
7
+ from draftsman._version import (
8
+ __version__ as __version__,
9
+ __version_info__ as __version_info__,
10
+ )
11
+
12
+ import attrs
13
+
14
+ __all__ = ["__version__", "__version_info__", "DEFAULT_FACTORIO_VERSION"]
15
+
16
+ DEFAULT_FACTORIO_VERSION = (2, 0, 0)
17
+ """
18
+ The Factorio version that Draftsman should assume it is operating under if it
19
+ cannot determine the version from it's current environment, due to its absence
20
+ or corruption. Should rarely (if ever) need to be used, intended to be a
21
+ last-ditch fallback.
22
+ """
23
+
24
+ # def field(*, default=attrs.NOTHING, omittable=True):
25
+ # """
26
+ # TODO
27
+ # """
28
+ # pass
29
+
30
+
31
+ def define(cls):
32
+ """
33
+ Custom `attrs.define` wrapper. Handles Draftsman-specific boilerplate to
34
+ reduce repetition.
35
+ """
36
+
37
+ # Grab all specified class validators
38
+ model_validators = [
39
+ v for _, v in cls.__dict__.items() if hasattr(v, "__attrs_class_validator__")
40
+ ]
41
+ cls = attrs.define(cls) # field_transformer=field_transformer
42
+
43
+ # Attach class validators to the instance
44
+ cls.__attrs_class_validators__ = model_validators
45
+
46
+ # TODO: we could patch __attrs_post_init__ to run the model validators and
47
+ # conjoin that with any existing class implementation
48
+ return cls
@@ -0,0 +1,4 @@
1
+ # _factorio_version.py
2
+
3
+ __factorio_version__ = "1.0.0.0"
4
+ __factorio_version_info__ = (1, 0, 0, 0)
@@ -0,0 +1,4 @@
1
+ # _version.py
2
+
3
+ __version__ = "3.0.1"
4
+ __version_info__ = (3, 0, 1)