factorio-draftsman 2.0.3__tar.gz → 3.0.0__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 (716) hide show
  1. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/MANIFEST.in +8 -8
  2. factorio_draftsman-3.0.0/PKG-INFO +312 -0
  3. factorio_draftsman-3.0.0/README.md +254 -0
  4. factorio_draftsman-3.0.0/draftsman/__init__.py +48 -0
  5. factorio_draftsman-3.0.0/draftsman/_factorio_version.py +4 -0
  6. factorio_draftsman-3.0.0/draftsman/_version.py +4 -0
  7. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/blueprintable.py +32 -23
  8. {factorio_draftsman-2.0.3/draftsman/environment → factorio_draftsman-3.0.0/draftsman/classes}/__init__.py +1 -1
  9. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/classes/association.py +9 -19
  10. factorio_draftsman-3.0.0/draftsman/classes/blueprint.py +684 -0
  11. factorio_draftsman-3.0.0/draftsman/classes/blueprint_book.py +203 -0
  12. factorio_draftsman-3.0.0/draftsman/classes/blueprintable.py +428 -0
  13. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/classes/collection.py +853 -496
  14. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/classes/collision_set.py +1 -1
  15. factorio_draftsman-3.0.0/draftsman/classes/deconstruction_planner.py +295 -0
  16. factorio_draftsman-3.0.0/draftsman/classes/entity.py +1147 -0
  17. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/classes/entity_like.py +88 -57
  18. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/classes/entity_list.py +118 -192
  19. factorio_draftsman-3.0.0/draftsman/classes/exportable.py +460 -0
  20. factorio_draftsman-3.0.0/draftsman/classes/group.py +409 -0
  21. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/classes/mixins/__init__.py +41 -7
  22. factorio_draftsman-3.0.0/draftsman/classes/mixins/artillery_auto_target.py +31 -0
  23. factorio_draftsman-3.0.0/draftsman/classes/mixins/circuit_condition.py +79 -0
  24. factorio_draftsman-3.0.0/draftsman/classes/mixins/circuit_connectable.py +109 -0
  25. factorio_draftsman-3.0.0/draftsman/classes/mixins/circuit_enable.py +39 -0
  26. factorio_draftsman-3.0.0/draftsman/classes/mixins/circuit_read_contents.py +83 -0
  27. factorio_draftsman-3.0.0/draftsman/classes/mixins/circuit_read_hand.py +58 -0
  28. factorio_draftsman-3.0.0/draftsman/classes/mixins/circuit_read_resource.py +52 -0
  29. factorio_draftsman-3.0.0/draftsman/classes/mixins/circuit_set_filters.py +32 -0
  30. factorio_draftsman-3.0.0/draftsman/classes/mixins/color.py +42 -0
  31. factorio_draftsman-3.0.0/draftsman/classes/mixins/control_behavior.py +49 -0
  32. factorio_draftsman-3.0.0/draftsman/classes/mixins/crafting_machine.py +145 -0
  33. factorio_draftsman-3.0.0/draftsman/classes/mixins/directional.py +243 -0
  34. factorio_draftsman-3.0.0/draftsman/classes/mixins/energy_source.py +88 -0
  35. factorio_draftsman-3.0.0/draftsman/classes/mixins/equipment_grid.py +291 -0
  36. factorio_draftsman-3.0.0/draftsman/classes/mixins/filters.py +134 -0
  37. factorio_draftsman-3.0.0/draftsman/classes/mixins/input_ingredients.py +17 -0
  38. factorio_draftsman-3.0.0/draftsman/classes/mixins/inventory.py +139 -0
  39. factorio_draftsman-3.0.0/draftsman/classes/mixins/io_type.py +42 -0
  40. factorio_draftsman-3.0.0/draftsman/classes/mixins/logistic_condition.py +101 -0
  41. factorio_draftsman-3.0.0/draftsman/classes/mixins/mode_of_operation.py +81 -0
  42. factorio_draftsman-3.0.0/draftsman/classes/mixins/modules.py +135 -0
  43. factorio_draftsman-3.0.0/draftsman/classes/mixins/orientation.py +123 -0
  44. factorio_draftsman-3.0.0/draftsman/classes/mixins/player_description.py +45 -0
  45. factorio_draftsman-3.0.0/draftsman/classes/mixins/power_connectable.py +68 -0
  46. factorio_draftsman-3.0.0/draftsman/classes/mixins/read_ammo.py +32 -0
  47. factorio_draftsman-3.0.0/draftsman/classes/mixins/read_rail_signal.py +98 -0
  48. factorio_draftsman-3.0.0/draftsman/classes/mixins/recipe.py +178 -0
  49. factorio_draftsman-3.0.0/draftsman/classes/mixins/request_filters.py +172 -0
  50. factorio_draftsman-3.0.0/draftsman/classes/mixins/stack_size.py +83 -0
  51. factorio_draftsman-3.0.0/draftsman/classes/mixins/target_priorities.py +157 -0
  52. factorio_draftsman-3.0.0/draftsman/classes/mixins/variation.py +32 -0
  53. factorio_draftsman-3.0.0/draftsman/classes/mixins/vehicle.py +128 -0
  54. factorio_draftsman-3.0.0/draftsman/classes/rail_planner.py +654 -0
  55. factorio_draftsman-3.0.0/draftsman/classes/schedule.py +612 -0
  56. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/classes/schedule_list.py +18 -18
  57. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/classes/spatial_data_structure.py +2 -33
  58. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/classes/spatial_hashmap.py +63 -97
  59. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/classes/spatial_like.py +4 -5
  60. factorio_draftsman-3.0.0/draftsman/classes/tile.py +165 -0
  61. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/classes/tile_list.py +112 -107
  62. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/classes/train_configuration.py +27 -17
  63. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/classes/transformable.py +4 -15
  64. factorio_draftsman-3.0.0/draftsman/classes/upgrade_planner.py +668 -0
  65. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/classes/vector.py +33 -12
  66. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/compatibility/defines.lua +2 -0
  67. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/compatibility/interface.lua +20 -2
  68. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/constants.py +485 -264
  69. {factorio_draftsman-2.0.3/draftsman/prototypes → factorio_draftsman-3.0.0/draftsman/data}/__init__.py +1 -1
  70. factorio_draftsman-3.0.0/draftsman/data/entities.pkl +0 -0
  71. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/data/entities.py +50 -70
  72. factorio_draftsman-3.0.0/draftsman/data/equipment.pkl +0 -0
  73. factorio_draftsman-3.0.0/draftsman/data/equipment.py +36 -0
  74. factorio_draftsman-3.0.0/draftsman/data/fluids.pkl +0 -0
  75. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/data/fluids.py +51 -9
  76. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/data/instruments.pkl +0 -0
  77. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/data/instruments.py +15 -7
  78. factorio_draftsman-3.0.0/draftsman/data/items.pkl +0 -0
  79. factorio_draftsman-3.0.0/draftsman/data/items.py +290 -0
  80. factorio_draftsman-3.0.0/draftsman/data/mods.pkl +0 -0
  81. factorio_draftsman-3.0.0/draftsman/data/mods.py +16 -0
  82. factorio_draftsman-3.0.0/draftsman/data/modules.pkl +0 -0
  83. factorio_draftsman-3.0.0/draftsman/data/modules.py +120 -0
  84. factorio_draftsman-3.0.0/draftsman/data/planets.pkl +0 -0
  85. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/data/planets.py +4 -6
  86. factorio_draftsman-3.0.0/draftsman/data/qualities.pkl +0 -0
  87. factorio_draftsman-3.0.0/draftsman/data/qualities.py +16 -0
  88. factorio_draftsman-3.0.0/draftsman/data/recipes.pkl +0 -0
  89. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/data/recipes.py +14 -17
  90. factorio_draftsman-3.0.0/draftsman/data/signals.pkl +0 -0
  91. factorio_draftsman-3.0.0/draftsman/data/signals.py +144 -0
  92. factorio_draftsman-3.0.0/draftsman/data/tiles.pkl +0 -0
  93. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/data/tiles.py +8 -3
  94. factorio_draftsman-3.0.0/draftsman/entity.py +348 -0
  95. {factorio_draftsman-2.0.3/draftsman/data → factorio_draftsman-3.0.0/draftsman/environment}/__init__.py +1 -1
  96. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/environment/mod_list.py +53 -30
  97. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/environment/mod_settings.py +6 -3
  98. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/environment/script.py +9 -10
  99. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/environment/update.py +272 -195
  100. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/error.py +17 -5
  101. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/extras.py +10 -11
  102. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/info.json +1 -1
  103. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/circuit-network.lua +1 -1
  104. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/entities.lua +1 -1
  105. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/entity-util.lua +1 -1
  106. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/remnants.lua +1 -1
  107. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/turrets.lua +4 -0
  108. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/item.lua +5 -3
  109. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/prototypes/utility-constants.lua +2 -0
  110. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/elevated-rails/info.json +1 -1
  111. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/elevated-rails/prototypes/entity/remnants.lua +1 -1
  112. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/info.json +1 -1
  113. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/info.json +1 -1
  114. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/ambient-sounds.lua +45 -45
  115. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/decorative/decoratives-aquilo.lua +1 -1
  116. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/decorative/decoratives-vulcanus.lua +3 -3
  117. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/base-frozen-graphics.lua +1 -0
  118. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/enemies.lua +5 -33
  119. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/entities.lua +1 -1
  120. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/explosions.lua +16 -8
  121. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/recipe.lua +1 -1
  122. factorio_draftsman-3.0.0/draftsman/factorio-mods/.gitignore +2 -0
  123. factorio_draftsman-3.0.0/draftsman/prototypes/__init__.py +1 -0
  124. factorio_draftsman-3.0.0/draftsman/prototypes/accumulator.py +68 -0
  125. factorio_draftsman-3.0.0/draftsman/prototypes/agricultural_tower.py +60 -0
  126. factorio_draftsman-3.0.0/draftsman/prototypes/ammo_turret.py +70 -0
  127. factorio_draftsman-3.0.0/draftsman/prototypes/arithmetic_combinator.py +525 -0
  128. factorio_draftsman-3.0.0/draftsman/prototypes/artillery_turret.py +43 -0
  129. factorio_draftsman-3.0.0/draftsman/prototypes/artillery_wagon.py +42 -0
  130. factorio_draftsman-3.0.0/draftsman/prototypes/assembling_machine.py +99 -0
  131. factorio_draftsman-3.0.0/draftsman/prototypes/asteroid_collector.py +137 -0
  132. factorio_draftsman-3.0.0/draftsman/prototypes/beacon.py +56 -0
  133. factorio_draftsman-3.0.0/draftsman/prototypes/boiler.py +31 -0
  134. factorio_draftsman-3.0.0/draftsman/prototypes/burner_generator.py +29 -0
  135. factorio_draftsman-3.0.0/draftsman/prototypes/car.py +37 -0
  136. factorio_draftsman-3.0.0/draftsman/prototypes/cargo_bay.py +26 -0
  137. factorio_draftsman-3.0.0/draftsman/prototypes/cargo_landing_pad.py +36 -0
  138. factorio_draftsman-3.0.0/draftsman/prototypes/cargo_wagon.py +90 -0
  139. factorio_draftsman-3.0.0/draftsman/prototypes/constant_combinator.py +158 -0
  140. factorio_draftsman-3.0.0/draftsman/prototypes/container.py +26 -0
  141. factorio_draftsman-3.0.0/draftsman/prototypes/curved_rail_a.py +36 -0
  142. factorio_draftsman-3.0.0/draftsman/prototypes/curved_rail_b.py +36 -0
  143. factorio_draftsman-3.0.0/draftsman/prototypes/decider_combinator.py +475 -0
  144. factorio_draftsman-3.0.0/draftsman/prototypes/display_panel.py +164 -0
  145. factorio_draftsman-3.0.0/draftsman/prototypes/electric_energy_interface.py +133 -0
  146. factorio_draftsman-3.0.0/draftsman/prototypes/electric_pole.py +37 -0
  147. factorio_draftsman-3.0.0/draftsman/prototypes/electric_turret.py +45 -0
  148. factorio_draftsman-3.0.0/draftsman/prototypes/elevated_curved_rail_a.py +38 -0
  149. factorio_draftsman-3.0.0/draftsman/prototypes/elevated_curved_rail_b.py +38 -0
  150. factorio_draftsman-3.0.0/draftsman/prototypes/elevated_half_diagonal_rail.py +39 -0
  151. factorio_draftsman-3.0.0/draftsman/prototypes/elevated_straight_rail.py +60 -0
  152. factorio_draftsman-3.0.0/draftsman/prototypes/fluid_turret.py +45 -0
  153. factorio_draftsman-3.0.0/draftsman/prototypes/fluid_wagon.py +28 -0
  154. factorio_draftsman-3.0.0/draftsman/prototypes/furnace.py +105 -0
  155. factorio_draftsman-3.0.0/draftsman/prototypes/fusion_generator.py +27 -0
  156. factorio_draftsman-3.0.0/draftsman/prototypes/fusion_reactor.py +25 -0
  157. factorio_draftsman-3.0.0/draftsman/prototypes/gate.py +25 -0
  158. factorio_draftsman-3.0.0/draftsman/prototypes/generator.py +25 -0
  159. factorio_draftsman-3.0.0/draftsman/prototypes/half_diagonal_rail.py +32 -0
  160. factorio_draftsman-3.0.0/draftsman/prototypes/heat_interface.py +99 -0
  161. factorio_draftsman-3.0.0/draftsman/prototypes/heat_pipe.py +22 -0
  162. factorio_draftsman-3.0.0/draftsman/prototypes/infinity_container.py +189 -0
  163. factorio_draftsman-3.0.0/draftsman/prototypes/infinity_pipe.py +188 -0
  164. factorio_draftsman-3.0.0/draftsman/prototypes/inserter.py +268 -0
  165. factorio_draftsman-3.0.0/draftsman/prototypes/lab.py +89 -0
  166. factorio_draftsman-3.0.0/draftsman/prototypes/lamp.py +222 -0
  167. factorio_draftsman-3.0.0/draftsman/prototypes/land_mine.py +22 -0
  168. factorio_draftsman-3.0.0/draftsman/prototypes/legacy_curved_rail.py +106 -0
  169. factorio_draftsman-3.0.0/draftsman/prototypes/legacy_straight_rail.py +65 -0
  170. factorio_draftsman-3.0.0/draftsman/prototypes/lightning_attractor.py +26 -0
  171. factorio_draftsman-3.0.0/draftsman/prototypes/linked_belt.py +31 -0
  172. factorio_draftsman-3.0.0/draftsman/prototypes/linked_container.py +83 -0
  173. factorio_draftsman-3.0.0/draftsman/prototypes/loader.py +31 -0
  174. factorio_draftsman-3.0.0/draftsman/prototypes/locomotive.py +48 -0
  175. factorio_draftsman-3.0.0/draftsman/prototypes/logistic_active_container.py +106 -0
  176. factorio_draftsman-3.0.0/draftsman/prototypes/logistic_buffer_container.py +40 -0
  177. factorio_draftsman-3.0.0/draftsman/prototypes/logistic_passive_container.py +111 -0
  178. factorio_draftsman-3.0.0/draftsman/prototypes/logistic_request_container.py +49 -0
  179. factorio_draftsman-3.0.0/draftsman/prototypes/logistic_storage_container.py +111 -0
  180. factorio_draftsman-3.0.0/draftsman/prototypes/mining_drill.py +82 -0
  181. factorio_draftsman-3.0.0/draftsman/prototypes/offshore_pump.py +40 -0
  182. factorio_draftsman-3.0.0/draftsman/prototypes/pipe.py +22 -0
  183. factorio_draftsman-3.0.0/draftsman/prototypes/player_port.py +24 -0
  184. factorio_draftsman-3.0.0/draftsman/prototypes/power_switch.py +86 -0
  185. factorio_draftsman-3.0.0/draftsman/prototypes/programmable_speaker.py +528 -0
  186. factorio_draftsman-3.0.0/draftsman/prototypes/pump.py +40 -0
  187. factorio_draftsman-3.0.0/draftsman/prototypes/radar.py +23 -0
  188. factorio_draftsman-3.0.0/draftsman/prototypes/rail_chain_signal.py +94 -0
  189. factorio_draftsman-3.0.0/draftsman/prototypes/rail_ramp.py +31 -0
  190. factorio_draftsman-3.0.0/draftsman/prototypes/rail_signal.py +102 -0
  191. factorio_draftsman-3.0.0/draftsman/prototypes/rail_support.py +38 -0
  192. factorio_draftsman-3.0.0/draftsman/prototypes/reactor.py +79 -0
  193. factorio_draftsman-3.0.0/draftsman/prototypes/roboport.py +287 -0
  194. factorio_draftsman-3.0.0/draftsman/prototypes/rocket_silo.py +181 -0
  195. factorio_draftsman-3.0.0/draftsman/prototypes/selector_combinator.py +446 -0
  196. factorio_draftsman-3.0.0/draftsman/prototypes/simple_entity_with_force.py +27 -0
  197. factorio_draftsman-3.0.0/draftsman/prototypes/simple_entity_with_owner.py +29 -0
  198. factorio_draftsman-3.0.0/draftsman/prototypes/solar_panel.py +23 -0
  199. factorio_draftsman-3.0.0/draftsman/prototypes/space_platform_hub.py +134 -0
  200. factorio_draftsman-3.0.0/draftsman/prototypes/spider_vehicle.py +93 -0
  201. factorio_draftsman-3.0.0/draftsman/prototypes/splitter.py +99 -0
  202. factorio_draftsman-3.0.0/draftsman/prototypes/storage_tank.py +25 -0
  203. factorio_draftsman-3.0.0/draftsman/prototypes/straight_rail.py +70 -0
  204. factorio_draftsman-3.0.0/draftsman/prototypes/thruster.py +24 -0
  205. factorio_draftsman-3.0.0/draftsman/prototypes/train_stop.py +304 -0
  206. factorio_draftsman-3.0.0/draftsman/prototypes/transport_belt.py +42 -0
  207. factorio_draftsman-3.0.0/draftsman/prototypes/underground_belt.py +25 -0
  208. factorio_draftsman-3.0.0/draftsman/prototypes/underground_pipe.py +25 -0
  209. factorio_draftsman-3.0.0/draftsman/prototypes/wall.py +101 -0
  210. factorio_draftsman-3.0.0/draftsman/rail.py +25 -0
  211. factorio_draftsman-3.0.0/draftsman/serialization.py +443 -0
  212. factorio_draftsman-3.0.0/draftsman/signatures.py +1478 -0
  213. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/tile.py +0 -4
  214. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/utils.py +163 -27
  215. factorio_draftsman-3.0.0/draftsman/validators.py +409 -0
  216. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/warning.py +19 -10
  217. factorio_draftsman-3.0.0/factorio_draftsman.egg-info/PKG-INFO +312 -0
  218. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/factorio_draftsman.egg-info/SOURCES.txt +13 -18
  219. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/factorio_draftsman.egg-info/requires.txt +4 -2
  220. factorio_draftsman-3.0.0/pyproject.toml +78 -0
  221. factorio_draftsman-3.0.0/test/test_all_factorio_versions.py +56 -0
  222. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_blueprint.py +627 -376
  223. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_blueprint_book.py +203 -185
  224. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_blueprintable.py +76 -9
  225. factorio_draftsman-3.0.0/test/test_constants.py +67 -0
  226. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_data.py +2 -32
  227. factorio_draftsman-3.0.0/test/test_deconstruction_planner.py +249 -0
  228. factorio_draftsman-3.0.0/test/test_entity.py +794 -0
  229. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_entity_list.py +154 -37
  230. factorio_draftsman-3.0.0/test/test_examples.py +52 -0
  231. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_group.py +131 -67
  232. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_schedule.py +167 -72
  233. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_schedule_list.py +5 -1
  234. factorio_draftsman-3.0.0/test/test_serialization.py +23 -0
  235. factorio_draftsman-3.0.0/test/test_signatures.py +19 -0
  236. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_spatial_hash_map.py +1 -1
  237. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_tile.py +35 -37
  238. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_tile_list.py +24 -18
  239. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_upgrade_planner.py +202 -203
  240. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_utils.py +16 -16
  241. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_vector.py +6 -1
  242. factorio_draftsman-3.0.0/test/test_version.py +9 -0
  243. factorio_draftsman-2.0.3/PKG-INFO +0 -187
  244. factorio_draftsman-2.0.3/README.md +0 -156
  245. factorio_draftsman-2.0.3/draftsman/__init__.py +0 -17
  246. factorio_draftsman-2.0.3/draftsman/_factorio_version.py +0 -4
  247. factorio_draftsman-2.0.3/draftsman/_version.py +0 -4
  248. factorio_draftsman-2.0.3/draftsman/classes/__init__.py +0 -26
  249. factorio_draftsman-2.0.3/draftsman/classes/blueprint.py +0 -1206
  250. factorio_draftsman-2.0.3/draftsman/classes/blueprint_book.py +0 -566
  251. factorio_draftsman-2.0.3/draftsman/classes/blueprintable.py +0 -579
  252. factorio_draftsman-2.0.3/draftsman/classes/deconstruction_planner.py +0 -675
  253. factorio_draftsman-2.0.3/draftsman/classes/entity.py +0 -794
  254. factorio_draftsman-2.0.3/draftsman/classes/exportable.py +0 -379
  255. factorio_draftsman-2.0.3/draftsman/classes/group.py +0 -633
  256. factorio_draftsman-2.0.3/draftsman/classes/mixins/artillery_auto_target.py +0 -50
  257. factorio_draftsman-2.0.3/draftsman/classes/mixins/burner_energy_source.py +0 -201
  258. factorio_draftsman-2.0.3/draftsman/classes/mixins/circuit_condition.py +0 -106
  259. factorio_draftsman-2.0.3/draftsman/classes/mixins/circuit_connectable.py +0 -213
  260. factorio_draftsman-2.0.3/draftsman/classes/mixins/circuit_enable.py +0 -59
  261. factorio_draftsman-2.0.3/draftsman/classes/mixins/circuit_read_contents.py +0 -96
  262. factorio_draftsman-2.0.3/draftsman/classes/mixins/circuit_read_hand.py +0 -97
  263. factorio_draftsman-2.0.3/draftsman/classes/mixins/circuit_read_resource.py +0 -98
  264. factorio_draftsman-2.0.3/draftsman/classes/mixins/circuit_set_filters.py +0 -48
  265. factorio_draftsman-2.0.3/draftsman/classes/mixins/color.py +0 -96
  266. factorio_draftsman-2.0.3/draftsman/classes/mixins/consumes_ammo.py +0 -5
  267. factorio_draftsman-2.0.3/draftsman/classes/mixins/control_behavior.py +0 -173
  268. factorio_draftsman-2.0.3/draftsman/classes/mixins/directional.py +0 -246
  269. factorio_draftsman-2.0.3/draftsman/classes/mixins/double_grid_aligned.py +0 -50
  270. factorio_draftsman-2.0.3/draftsman/classes/mixins/eight_way_directional.py +0 -203
  271. factorio_draftsman-2.0.3/draftsman/classes/mixins/equipment_grid.py +0 -107
  272. factorio_draftsman-2.0.3/draftsman/classes/mixins/filters.py +0 -209
  273. factorio_draftsman-2.0.3/draftsman/classes/mixins/input_ingredients.py +0 -106
  274. factorio_draftsman-2.0.3/draftsman/classes/mixins/inventory.py +0 -217
  275. factorio_draftsman-2.0.3/draftsman/classes/mixins/inventory_filter.py +0 -337
  276. factorio_draftsman-2.0.3/draftsman/classes/mixins/io_type.py +0 -83
  277. factorio_draftsman-2.0.3/draftsman/classes/mixins/logistic_condition.py +0 -105
  278. factorio_draftsman-2.0.3/draftsman/classes/mixins/mode_of_operation.py +0 -152
  279. factorio_draftsman-2.0.3/draftsman/classes/mixins/modules.py +0 -169
  280. factorio_draftsman-2.0.3/draftsman/classes/mixins/orientation.py +0 -113
  281. factorio_draftsman-2.0.3/draftsman/classes/mixins/player_description.py +0 -56
  282. factorio_draftsman-2.0.3/draftsman/classes/mixins/power_connectable.py +0 -151
  283. factorio_draftsman-2.0.3/draftsman/classes/mixins/read_ammo.py +0 -49
  284. factorio_draftsman-2.0.3/draftsman/classes/mixins/read_rail_signal.py +0 -164
  285. factorio_draftsman-2.0.3/draftsman/classes/mixins/recipe.py +0 -216
  286. factorio_draftsman-2.0.3/draftsman/classes/mixins/request_filters.py +0 -318
  287. factorio_draftsman-2.0.3/draftsman/classes/mixins/request_items.py +0 -235
  288. factorio_draftsman-2.0.3/draftsman/classes/mixins/stack_size.py +0 -170
  289. factorio_draftsman-2.0.3/draftsman/classes/mixins/target_priorities.py +0 -202
  290. factorio_draftsman-2.0.3/draftsman/classes/mixins/vehicle.py +0 -93
  291. factorio_draftsman-2.0.3/draftsman/classes/rail_planner.py +0 -646
  292. factorio_draftsman-2.0.3/draftsman/classes/schedule.py +0 -722
  293. factorio_draftsman-2.0.3/draftsman/classes/tile.py +0 -311
  294. factorio_draftsman-2.0.3/draftsman/classes/upgrade_planner.py +0 -718
  295. factorio_draftsman-2.0.3/draftsman/data/entities.pkl +0 -0
  296. factorio_draftsman-2.0.3/draftsman/data/fluids.pkl +0 -0
  297. factorio_draftsman-2.0.3/draftsman/data/items.pkl +0 -0
  298. factorio_draftsman-2.0.3/draftsman/data/items.py +0 -137
  299. factorio_draftsman-2.0.3/draftsman/data/mods.pkl +0 -0
  300. factorio_draftsman-2.0.3/draftsman/data/mods.py +0 -11
  301. factorio_draftsman-2.0.3/draftsman/data/modules.pkl +0 -0
  302. factorio_draftsman-2.0.3/draftsman/data/modules.py +0 -80
  303. factorio_draftsman-2.0.3/draftsman/data/planets.pkl +0 -0
  304. factorio_draftsman-2.0.3/draftsman/data/recipes.pkl +0 -0
  305. factorio_draftsman-2.0.3/draftsman/data/signals.pkl +0 -0
  306. factorio_draftsman-2.0.3/draftsman/data/signals.py +0 -158
  307. factorio_draftsman-2.0.3/draftsman/data/tiles.pkl +0 -0
  308. factorio_draftsman-2.0.3/draftsman/entity.py +0 -315
  309. factorio_draftsman-2.0.3/draftsman/env.py +0 -2205
  310. factorio_draftsman-2.0.3/draftsman/factorio-data/.git +0 -1
  311. factorio_draftsman-2.0.3/draftsman/factorio-data/README.md +0 -23
  312. factorio_draftsman-2.0.3/draftsman/factorio-data/changelog.txt +0 -18082
  313. factorio_draftsman-2.0.3/draftsman/factorio-data/credits.txt +0 -70
  314. factorio_draftsman-2.0.3/draftsman/factorio-data/map-gen-settings.example.json +0 -68
  315. factorio_draftsman-2.0.3/draftsman/factorio-data/map-settings.example.json +0 -122
  316. factorio_draftsman-2.0.3/draftsman/factorio-data/server-settings.example.json +0 -76
  317. factorio_draftsman-2.0.3/draftsman/factorio-data/server-whitelist.example.json +0 -4
  318. factorio_draftsman-2.0.3/draftsman/factorio-mods/.gitignore +0 -2
  319. factorio_draftsman-2.0.3/draftsman/prototypes/accumulator.py +0 -107
  320. factorio_draftsman-2.0.3/draftsman/prototypes/agricultural_tower.py +0 -118
  321. factorio_draftsman-2.0.3/draftsman/prototypes/ammo_turret.py +0 -103
  322. factorio_draftsman-2.0.3/draftsman/prototypes/arithmetic_combinator.py +0 -577
  323. factorio_draftsman-2.0.3/draftsman/prototypes/artillery_turret.py +0 -102
  324. factorio_draftsman-2.0.3/draftsman/prototypes/artillery_wagon.py +0 -83
  325. factorio_draftsman-2.0.3/draftsman/prototypes/assembling_machine.py +0 -185
  326. factorio_draftsman-2.0.3/draftsman/prototypes/asteroid_collector.py +0 -223
  327. factorio_draftsman-2.0.3/draftsman/prototypes/beacon.py +0 -73
  328. factorio_draftsman-2.0.3/draftsman/prototypes/boiler.py +0 -60
  329. factorio_draftsman-2.0.3/draftsman/prototypes/burner_generator.py +0 -107
  330. factorio_draftsman-2.0.3/draftsman/prototypes/car.py +0 -81
  331. factorio_draftsman-2.0.3/draftsman/prototypes/cargo_bay.py +0 -56
  332. factorio_draftsman-2.0.3/draftsman/prototypes/cargo_landing_pad.py +0 -78
  333. factorio_draftsman-2.0.3/draftsman/prototypes/cargo_wagon.py +0 -77
  334. factorio_draftsman-2.0.3/draftsman/prototypes/constant_combinator.py +0 -345
  335. factorio_draftsman-2.0.3/draftsman/prototypes/container.py +0 -65
  336. factorio_draftsman-2.0.3/draftsman/prototypes/curved_rail_a.py +0 -55
  337. factorio_draftsman-2.0.3/draftsman/prototypes/curved_rail_b.py +0 -55
  338. factorio_draftsman-2.0.3/draftsman/prototypes/decider_combinator.py +0 -690
  339. factorio_draftsman-2.0.3/draftsman/prototypes/display_panel.py +0 -179
  340. factorio_draftsman-2.0.3/draftsman/prototypes/electric_energy_interface.py +0 -251
  341. factorio_draftsman-2.0.3/draftsman/prototypes/electric_pole.py +0 -64
  342. factorio_draftsman-2.0.3/draftsman/prototypes/electric_turret.py +0 -103
  343. factorio_draftsman-2.0.3/draftsman/prototypes/elevated_curved_rail_a.py +0 -55
  344. factorio_draftsman-2.0.3/draftsman/prototypes/elevated_curved_rail_b.py +0 -55
  345. factorio_draftsman-2.0.3/draftsman/prototypes/elevated_half_diagonal_rail.py +0 -57
  346. factorio_draftsman-2.0.3/draftsman/prototypes/elevated_straight_rail.py +0 -55
  347. factorio_draftsman-2.0.3/draftsman/prototypes/filter_inserter.py +0 -187
  348. factorio_draftsman-2.0.3/draftsman/prototypes/fluid_turret.py +0 -103
  349. factorio_draftsman-2.0.3/draftsman/prototypes/fluid_wagon.py +0 -58
  350. factorio_draftsman-2.0.3/draftsman/prototypes/furnace.py +0 -223
  351. factorio_draftsman-2.0.3/draftsman/prototypes/fusion_generator.py +0 -53
  352. factorio_draftsman-2.0.3/draftsman/prototypes/fusion_reactor.py +0 -53
  353. factorio_draftsman-2.0.3/draftsman/prototypes/gate.py +0 -53
  354. factorio_draftsman-2.0.3/draftsman/prototypes/generator.py +0 -50
  355. factorio_draftsman-2.0.3/draftsman/prototypes/half_diagonal_rail.py +0 -55
  356. factorio_draftsman-2.0.3/draftsman/prototypes/heat_interface.py +0 -174
  357. factorio_draftsman-2.0.3/draftsman/prototypes/heat_pipe.py +0 -50
  358. factorio_draftsman-2.0.3/draftsman/prototypes/infinity_container.py +0 -240
  359. factorio_draftsman-2.0.3/draftsman/prototypes/infinity_pipe.py +0 -371
  360. factorio_draftsman-2.0.3/draftsman/prototypes/inserter.py +0 -293
  361. factorio_draftsman-2.0.3/draftsman/prototypes/lab.py +0 -100
  362. factorio_draftsman-2.0.3/draftsman/prototypes/lamp.py +0 -179
  363. factorio_draftsman-2.0.3/draftsman/prototypes/land_mine.py +0 -50
  364. factorio_draftsman-2.0.3/draftsman/prototypes/legacy_curved_rail.py +0 -113
  365. factorio_draftsman-2.0.3/draftsman/prototypes/legacy_straight_rail.py +0 -105
  366. factorio_draftsman-2.0.3/draftsman/prototypes/lightning_attractor.py +0 -51
  367. factorio_draftsman-2.0.3/draftsman/prototypes/linked_belt.py +0 -58
  368. factorio_draftsman-2.0.3/draftsman/prototypes/linked_container.py +0 -143
  369. factorio_draftsman-2.0.3/draftsman/prototypes/loader.py +0 -60
  370. factorio_draftsman-2.0.3/draftsman/prototypes/locomotive.py +0 -71
  371. factorio_draftsman-2.0.3/draftsman/prototypes/logistic_active_container.py +0 -85
  372. factorio_draftsman-2.0.3/draftsman/prototypes/logistic_buffer_container.py +0 -100
  373. factorio_draftsman-2.0.3/draftsman/prototypes/logistic_passive_container.py +0 -87
  374. factorio_draftsman-2.0.3/draftsman/prototypes/logistic_request_container.py +0 -116
  375. factorio_draftsman-2.0.3/draftsman/prototypes/logistic_storage_container.py +0 -95
  376. factorio_draftsman-2.0.3/draftsman/prototypes/mining_drill.py +0 -129
  377. factorio_draftsman-2.0.3/draftsman/prototypes/offshore_pump.py +0 -87
  378. factorio_draftsman-2.0.3/draftsman/prototypes/pipe.py +0 -50
  379. factorio_draftsman-2.0.3/draftsman/prototypes/player_port.py +0 -46
  380. factorio_draftsman-2.0.3/draftsman/prototypes/power_switch.py +0 -153
  381. factorio_draftsman-2.0.3/draftsman/prototypes/programmable_speaker.py +0 -850
  382. factorio_draftsman-2.0.3/draftsman/prototypes/pump.py +0 -72
  383. factorio_draftsman-2.0.3/draftsman/prototypes/radar.py +0 -47
  384. factorio_draftsman-2.0.3/draftsman/prototypes/rail_chain_signal.py +0 -131
  385. factorio_draftsman-2.0.3/draftsman/prototypes/rail_ramp.py +0 -55
  386. factorio_draftsman-2.0.3/draftsman/prototypes/rail_signal.py +0 -162
  387. factorio_draftsman-2.0.3/draftsman/prototypes/rail_support.py +0 -55
  388. factorio_draftsman-2.0.3/draftsman/prototypes/reactor.py +0 -170
  389. factorio_draftsman-2.0.3/draftsman/prototypes/roboport.py +0 -295
  390. factorio_draftsman-2.0.3/draftsman/prototypes/rocket_silo.py +0 -190
  391. factorio_draftsman-2.0.3/draftsman/prototypes/selector_combinator.py +0 -151
  392. factorio_draftsman-2.0.3/draftsman/prototypes/simple_entity_with_force.py +0 -84
  393. factorio_draftsman-2.0.3/draftsman/prototypes/simple_entity_with_owner.py +0 -84
  394. factorio_draftsman-2.0.3/draftsman/prototypes/solar_panel.py +0 -50
  395. factorio_draftsman-2.0.3/draftsman/prototypes/space_platform_hub.py +0 -136
  396. factorio_draftsman-2.0.3/draftsman/prototypes/spider_vehicle.py +0 -197
  397. factorio_draftsman-2.0.3/draftsman/prototypes/splitter.py +0 -192
  398. factorio_draftsman-2.0.3/draftsman/prototypes/storage_tank.py +0 -59
  399. factorio_draftsman-2.0.3/draftsman/prototypes/straight_rail.py +0 -105
  400. factorio_draftsman-2.0.3/draftsman/prototypes/thruster.py +0 -50
  401. factorio_draftsman-2.0.3/draftsman/prototypes/train_stop.py +0 -426
  402. factorio_draftsman-2.0.3/draftsman/prototypes/transport_belt.py +0 -92
  403. factorio_draftsman-2.0.3/draftsman/prototypes/turret.py +0 -60
  404. factorio_draftsman-2.0.3/draftsman/prototypes/underground_belt.py +0 -60
  405. factorio_draftsman-2.0.3/draftsman/prototypes/underground_pipe.py +0 -53
  406. factorio_draftsman-2.0.3/draftsman/prototypes/wall.py +0 -173
  407. factorio_draftsman-2.0.3/draftsman/rail.py +0 -11
  408. factorio_draftsman-2.0.3/draftsman/signatures.py +0 -1443
  409. factorio_draftsman-2.0.3/factorio_draftsman.egg-info/PKG-INFO +0 -187
  410. factorio_draftsman-2.0.3/pyproject.toml +0 -6
  411. factorio_draftsman-2.0.3/setup.py +0 -87
  412. factorio_draftsman-2.0.3/test/test_deconstruction_planner.py +0 -380
  413. factorio_draftsman-2.0.3/test/test_entity.py +0 -463
  414. factorio_draftsman-2.0.3/test/test_examples.py +0 -51
  415. factorio_draftsman-2.0.3/test/test_version.py +0 -9
  416. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/LICENSE +0 -0
  417. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/compatibility/serpent.lua +0 -0
  418. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/compatibility/settings.lua +0 -0
  419. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/data-updates.lua +0 -0
  420. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/data.lua +0 -0
  421. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/migrations/1.1.0.json +0 -0
  422. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/migrations/1.2.0 stack inserter rename.json +0 -0
  423. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/migrations/2.0.0-biter-egg.json +0 -0
  424. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/migrations/2.0.0-internal.json +0 -0
  425. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/migrations/2.0.0-internal2.json +0 -0
  426. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/migrations/2.0.0-internal3.json +0 -0
  427. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/migrations/2.0.0.json +0 -0
  428. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/migrations/2.0.0.lua +0 -0
  429. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/migrations/migrations.txt +0 -0
  430. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/achievements.lua +0 -0
  431. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/ambient-sounds.lua +0 -0
  432. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/autoplace-controls.lua +0 -0
  433. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/categories/ammo-category.lua +0 -0
  434. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/categories/equipment-category.lua +0 -0
  435. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/categories/fuel-category.lua +0 -0
  436. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/categories/module-category.lua +0 -0
  437. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/categories/quality.lua +0 -0
  438. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/categories/recipe-category.lua +0 -0
  439. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/categories/resource-category.lua +0 -0
  440. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/collision-layers.lua +0 -0
  441. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/custom-inputs.lua +0 -0
  442. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/damage-type.lua +0 -0
  443. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/decorative/decorative-trigger-effects.lua +0 -0
  444. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/decorative/decoratives.lua +0 -0
  445. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/demo.lua +0 -0
  446. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/artillery-cannon-muzzle-flash-shifting.lua +0 -0
  447. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/assemblerpipes.lua +0 -0
  448. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/atomic-bomb.lua +0 -0
  449. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/beacon-animations.lua +0 -0
  450. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/beams.lua +0 -0
  451. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/biter-ai-settings.lua +0 -0
  452. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/biter-animations.lua +0 -0
  453. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/biter-die-effects.lua +0 -0
  454. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/cargo-hatch.lua +0 -0
  455. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/cargo-pod-catalogue.lua +0 -0
  456. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/character-animations.lua +0 -0
  457. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/combinator-pictures.lua +0 -0
  458. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/crash-site.lua +0 -0
  459. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/enemies.lua +0 -0
  460. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/enemy-autoplace-utils.lua +0 -0
  461. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/enemy-constants.lua +0 -0
  462. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/enemy-projectiles.lua +0 -0
  463. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/explosion-animations.lua +0 -0
  464. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/explosions.lua +0 -0
  465. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/factorio-logo.lua +0 -0
  466. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/fire.lua +0 -0
  467. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/flying-robots.lua +0 -0
  468. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/giga-cargo-hatch.lua +0 -0
  469. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/hit-effects.lua +0 -0
  470. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/laser-sounds.lua +0 -0
  471. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/mining-drill.lua +0 -0
  472. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/movement-triggers.lua +0 -0
  473. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/pipecovers.lua +0 -0
  474. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/projectiles.lua +0 -0
  475. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/pump-connector.lua +0 -0
  476. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/rail-pictures.lua +0 -0
  477. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/resources.lua +0 -0
  478. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/rocket-projectile-pictures.lua +0 -0
  479. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/smoke-animations.lua +0 -0
  480. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/smoke.lua +0 -0
  481. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/sounds.lua +0 -0
  482. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/spawner-animation.lua +0 -0
  483. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/spidertron-animations.lua +0 -0
  484. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/spidertron-light-positions.lua +0 -0
  485. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/spitter-animations.lua +0 -0
  486. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/trains.lua +0 -0
  487. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/transport-belts.lua +0 -0
  488. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/trees.lua +0 -0
  489. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/entity/worm-animations.lua +0 -0
  490. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/equipment-grid.lua +0 -0
  491. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/equipment.lua +0 -0
  492. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/factoriopedia-simulations.lua +0 -0
  493. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/factoriopedia-util.lua +0 -0
  494. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/fire-util.lua +0 -0
  495. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/fluid.lua +0 -0
  496. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/impact-deliver-category.lua +0 -0
  497. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/item-groups.lua +0 -0
  498. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/item-tints.lua +0 -0
  499. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/item_sounds.lua +0 -0
  500. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/map-gen-presets.lua +0 -0
  501. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/map-settings.lua +0 -0
  502. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/noise-expressions.lua +0 -0
  503. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/particle-animations.lua +0 -0
  504. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/particles.lua +0 -0
  505. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/planet/planet-map-gen.lua +0 -0
  506. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/planet/planet.lua +0 -0
  507. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/planet/procession-audio-catalogue-types.lua +0 -0
  508. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/planet/procession-graphic-catalogue-types.lua +0 -0
  509. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/planet/procession-style.lua +0 -0
  510. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/planet/procession.lua +0 -0
  511. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/planet/surface-property.lua +0 -0
  512. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/pollution.lua +0 -0
  513. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/recipe.lua +0 -0
  514. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/shortcuts.lua +0 -0
  515. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/signal.lua +0 -0
  516. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/technology.lua +0 -0
  517. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/tile/tile-collision-masks.lua +0 -0
  518. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/tile/tile-graphics.lua +0 -0
  519. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/tile/tile-pollution-values.lua +0 -0
  520. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/tile/tile-sounds.lua +0 -0
  521. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/tile/tile-trigger-effects.lua +0 -0
  522. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/tile/tiles.lua +0 -0
  523. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/tips-and-tricks-simulations.lua +0 -0
  524. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/tips-and-tricks.lua +0 -0
  525. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/trigger-target-types.lua +0 -0
  526. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/tutorials.lua +0 -0
  527. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/base/prototypes/utility-sprites.lua +0 -0
  528. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/backers.json +0 -0
  529. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/data.lua +0 -0
  530. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/info.json +0 -0
  531. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/autoplace_utils.lua +0 -0
  532. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/bonus-gui-ordering.lua +0 -0
  533. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/circuit-connector-generated-definitions.lua +0 -0
  534. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/circuit-connector-sprites.lua +0 -0
  535. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/collision-mask-defaults.lua +0 -0
  536. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/collision-mask-util.lua +0 -0
  537. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/crash-site.lua +0 -0
  538. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/data-duplicate-checker.lua +0 -0
  539. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/dataloader.lua +0 -0
  540. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/event_handler.lua +0 -0
  541. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/kill-score.lua +0 -0
  542. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/math2d.lua +0 -0
  543. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/math3d.lua +0 -0
  544. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/meld.lua +0 -0
  545. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/mod-gui.lua +0 -0
  546. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/production-score.lua +0 -0
  547. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/resource-autoplace.lua +0 -0
  548. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/silo-script.lua +0 -0
  549. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/sound-util.lua +0 -0
  550. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/space-finish-script.lua +0 -0
  551. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/story.lua +0 -0
  552. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/surface-render-parameter-effects.lua +0 -0
  553. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/lualib/util.lua +0 -0
  554. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/prototypes/burner-usage.lua +0 -0
  555. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/prototypes/cursors.lua +0 -0
  556. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/prototypes/editor-controller.lua +0 -0
  557. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/prototypes/fonts.lua +0 -0
  558. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/prototypes/god-controller.lua +0 -0
  559. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/prototypes/noise-functions.lua +0 -0
  560. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/prototypes/noise-programs.lua +0 -0
  561. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/prototypes/parameters.lua +0 -0
  562. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/prototypes/remote-controller.lua +0 -0
  563. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/prototypes/spectator-controller.lua +0 -0
  564. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/prototypes/style.lua +0 -0
  565. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/prototypes/unknown.lua +0 -0
  566. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/prototypes/utility-sounds.lua +0 -0
  567. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/core/prototypes/utility-sprites.lua +0 -0
  568. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/elevated-rails/data.lua +0 -0
  569. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/elevated-rails/prototypes/base-data-updates.lua +0 -0
  570. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/elevated-rails/prototypes/entity/elevated-rail-pictures.lua +0 -0
  571. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/elevated-rails/prototypes/entity/elevated-rails.lua +0 -0
  572. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/elevated-rails/prototypes/entity/explosions.lua +0 -0
  573. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/elevated-rails/prototypes/item/elevated-rails.lua +0 -0
  574. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/elevated-rails/prototypes/particles.lua +0 -0
  575. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/elevated-rails/prototypes/recipe/elevated-rails.lua +0 -0
  576. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/elevated-rails/prototypes/sloped-trains-updates.lua +0 -0
  577. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/elevated-rails/prototypes/technology/elevated-rails.lua +0 -0
  578. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/elevated-rails/prototypes/tips-and-tricks-simulations.lua +0 -0
  579. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/elevated-rails/prototypes/tips-and-tricks.lua +0 -0
  580. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/data-updates.lua +0 -0
  581. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/data.lua +0 -0
  582. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/prototypes/base-data-updates.lua +0 -0
  583. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/prototypes/entity/entity.lua +0 -0
  584. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/prototypes/entity/explosions.lua +0 -0
  585. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/prototypes/entity/recycler-pictures.lua +0 -0
  586. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/prototypes/entity/remnants.lua +0 -0
  587. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/prototypes/item.lua +0 -0
  588. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/prototypes/module-category.lua +0 -0
  589. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/prototypes/quality.lua +0 -0
  590. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/prototypes/recipe.lua +0 -0
  591. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/prototypes/recycling.lua +0 -0
  592. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/prototypes/signal.lua +0 -0
  593. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/prototypes/technology.lua +0 -0
  594. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/prototypes/tips-and-tricks-simulations.lua +0 -0
  595. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/quality/prototypes/tips-and-tricks.lua +0 -0
  596. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/base-data-updates.lua +0 -0
  597. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/data-updates.lua +0 -0
  598. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/data.lua +0 -0
  599. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/migrations/aquilo-tilesets.json +0 -0
  600. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/migrations/biolab.json +0 -0
  601. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/migrations/internal.json +0 -0
  602. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/migrations/jelly-yum-rename.json +0 -0
  603. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/migrations/shattered-planet.json +0 -0
  604. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/migrations/tungsten-belt-rename.json +0 -0
  605. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/achievements.lua +0 -0
  606. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/active-triggers.lua +0 -0
  607. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/autoplace-controls.lua +0 -0
  608. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/burner-usage.lua +0 -0
  609. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/categories/ammo-category.lua +0 -0
  610. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/categories/fuel-category.lua +0 -0
  611. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/categories/recipe-category.lua +0 -0
  612. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/categories/resource-category.lua +0 -0
  613. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/decorative/decoratives-fulgora.lua +0 -0
  614. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/decorative/decoratives-gleba.lua +0 -0
  615. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/decorative/decoratives.lua +0 -0
  616. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/agricultural-tower-crane.lua +0 -0
  617. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/asteroid-collector-pictures.lua +0 -0
  618. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/asteroid.lua +0 -0
  619. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/beams.lua +0 -0
  620. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/big-mining-drill.lua +0 -0
  621. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/biochamber-pictures.lua +0 -0
  622. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/cargo-hatch.lua +0 -0
  623. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/cargo-pod-catalogue.lua +0 -0
  624. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/circuit-network.lua +0 -0
  625. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/crusher-pictures.lua +0 -0
  626. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/cryogenic-plant-pictures.lua +0 -0
  627. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/electromagnetic-plant-pictures.lua +0 -0
  628. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/explosion-animations.lua +0 -0
  629. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/flying-robots.lua +0 -0
  630. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/foundry-pictures.lua +0 -0
  631. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/fusion-system-pictures.lua +0 -0
  632. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/giga-cargo-hatch.lua +0 -0
  633. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/gleba-ai-settings.lua +0 -0
  634. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/gleba-enemy-animations.lua +0 -0
  635. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/lightning-collector-graphics.lua +0 -0
  636. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/lightning-rod-graphics.lua +0 -0
  637. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/mech-armor-animations.lua +0 -0
  638. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/plants.lua +0 -0
  639. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/projectiles.lua +0 -0
  640. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/railgun-turret-pictures.lua +0 -0
  641. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/remnants.lua +0 -0
  642. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/resources.lua +0 -0
  643. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/smoke.lua +0 -0
  644. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/sounds.lua +0 -0
  645. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/space-enemy-autoplace-utils.lua +0 -0
  646. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/space-platform-hub-cockpit.lua +0 -0
  647. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/transport-belts.lua +0 -0
  648. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/trees.lua +0 -0
  649. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/entity/turrets.lua +0 -0
  650. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/equipment-grid.lua +0 -0
  651. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/equipment.lua +0 -0
  652. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/factoriopedia-simulations.lua +0 -0
  653. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/fluid.lua +0 -0
  654. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/item-effects.lua +0 -0
  655. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/item-groups.lua +0 -0
  656. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/item.lua +0 -0
  657. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/item_sounds.lua +0 -0
  658. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/particle-animations.lua +0 -0
  659. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/particles.lua +0 -0
  660. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/asteroid-spawn-definitions.lua +0 -0
  661. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/general-functions.lua +0 -0
  662. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/general-variables.lua +0 -0
  663. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/planet-to-platform/audio-events.lua +0 -0
  664. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/planet-to-platform/cloud-layers.lua +0 -0
  665. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/planet-to-platform/pod-layers-a.lua +0 -0
  666. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/planet-to-platform/pod-layers-b.lua +0 -0
  667. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/planet-to-platform/pod-layers-i.lua +0 -0
  668. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/planet-to-platform/rocket-layers.lua +0 -0
  669. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/planet-to-platform/space-layers.lua +0 -0
  670. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/planet-to-platform.lua +0 -0
  671. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/platform-to-planet/audio-events.lua +0 -0
  672. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/platform-to-planet/cloud-layers.lua +0 -0
  673. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/platform-to-planet/pod-layers-a.lua +0 -0
  674. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/platform-to-planet/pod-layers-b.lua +0 -0
  675. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/platform-to-planet/pod-layers-i.lua +0 -0
  676. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/platform-to-planet/space-layers.lua +0 -0
  677. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/general/platform-to-planet.lua +0 -0
  678. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/planet-aquilo-map-gen.lua +0 -0
  679. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/planet-fulgora-map-gen.lua +0 -0
  680. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/planet-gleba-map-gen.lua +0 -0
  681. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/planet-map-gen.lua +0 -0
  682. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/planet-vulcanus-map-gen.lua +0 -0
  683. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/planet.lua +0 -0
  684. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/procession-catalogue-aquilo.lua +0 -0
  685. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/procession-catalogue-fulgora.lua +0 -0
  686. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/procession-catalogue-gleba.lua +0 -0
  687. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/procession-catalogue-vulcanus.lua +0 -0
  688. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/procession-common.lua +0 -0
  689. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/planet/procession.lua +0 -0
  690. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/spores.lua +0 -0
  691. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/surface.lua +0 -0
  692. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/technology.lua +0 -0
  693. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/tile/platform-tile-animations.lua +0 -0
  694. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/tile/tile-pollution-values.lua +0 -0
  695. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/tile/tile-sounds.lua +0 -0
  696. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/tile/tile-trigger-effects.lua +0 -0
  697. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/tile/tiles-aquilo.lua +0 -0
  698. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/tile/tiles-fulgora.lua +0 -0
  699. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/tile/tiles-gleba.lua +0 -0
  700. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/tile/tiles-vulcanus.lua +0 -0
  701. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/tile/tiles.lua +0 -0
  702. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/tips-and-tricks-simulations.lua +0 -0
  703. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/tips-and-tricks.lua +0 -0
  704. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/utility-sounds.lua +0 -0
  705. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/factorio-data/space-age/prototypes/utility-sprites.lua +0 -0
  706. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/draftsman/types.py +0 -0
  707. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/factorio_draftsman.egg-info/dependency_links.txt +0 -0
  708. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/factorio_draftsman.egg-info/entry_points.txt +0 -0
  709. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/factorio_draftsman.egg-info/top_level.txt +0 -0
  710. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/setup.cfg +0 -0
  711. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_association.py +0 -0
  712. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_collision_set.py +0 -0
  713. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_environment.py +0 -0
  714. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_mixins.py +0 -0
  715. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_rail_planner.py +0 -0
  716. {factorio_draftsman-2.0.3 → factorio_draftsman-3.0.0}/test/test_train_configuration.py +0 -0
@@ -1,9 +1,9 @@
1
- global-include *.pkl
2
- global-exclude *.zip
3
-
4
- exclude draftsman/factorio-mods/mod-settings.dat
5
- exclude draftsman/factorio-mods/mod-list.json
6
- include draftsman/factorio-mods/.gitignore
7
-
8
- recursive-include draftsman/factorio-data/* *
1
+ global-include *.pkl
2
+ global-exclude *.zip
3
+
4
+ exclude draftsman/factorio-mods/mod-settings.dat
5
+ exclude draftsman/factorio-mods/mod-list.json
6
+ include draftsman/factorio-mods/.gitignore
7
+
8
+ recursive-include draftsman/factorio-data/* *
9
9
  include draftsman/compatibility/*
@@ -0,0 +1,312 @@
1
+ Metadata-Version: 2.4
2
+ Name: factorio-draftsman
3
+ Version: 3.0.0
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
35
+ Classifier: Programming Language :: Python :: 3.7
36
+ Classifier: Programming Language :: Python :: 3.8
37
+ Classifier: Programming Language :: Python :: 3.9
38
+ Classifier: Programming Language :: Python :: 3.10
39
+ Classifier: Programming Language :: Python :: 3.11
40
+ Classifier: Programming Language :: Python :: 3.12
41
+ Classifier: Programming Language :: Python :: 3.13
42
+ Classifier: Intended Audience :: Developers
43
+ Classifier: Intended Audience :: End Users/Desktop
44
+ Classifier: Operating System :: OS Independent
45
+ Classifier: License :: OSI Approved :: MIT License
46
+ Requires-Python: >=3.8
47
+ Description-Content-Type: text/markdown
48
+ License-File: LICENSE
49
+ Requires-Dist: attrs>=25.3.0
50
+ Requires-Dist: cattrs>=24.1.3
51
+ Requires-Dist: lupa>=2.0
52
+ Requires-Dist: GitPython>=3.1.43
53
+ Requires-Dist: thefuzz>=0.20.0
54
+ Requires-Dist: enum_tools>=0.13.0
55
+ Requires-Dist: typing
56
+ Requires-Dist: typing_extensions; python_version < "3.8"
57
+ Dynamic: license-file
58
+
59
+ # factorio-draftsman
60
+
61
+ ![A logo generated with 'examples/draftsman_logo.py'](https://github.com/redruin1/factorio-draftsman/raw/main/docs/img/logo.png)
62
+
63
+ [![PyPI version](https://badge.fury.io/py/factorio-draftsman.svg)](https://badge.fury.io/py/factorio-draftsman)
64
+ [![Documentation Status](https://readthedocs.org/projects/factorio-draftsman/badge/?version=latest)](https://factorio-draftsman.readthedocs.io/en/latest/?badge=latest)
65
+ [![codecov](https://codecov.io/gh/redruin1/factorio-draftsman/branch/main/graph/badge.svg?token=UERAOXVTO1)](https://codecov.io/gh/redruin1/factorio-draftsman)
66
+ [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
67
+ [![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)
68
+
69
+ `factorio-draftsman` is a Python module for creating and editing blueprints for the game [Factorio](https://factorio.com/).
70
+
71
+ ```python
72
+ from draftsman.blueprintable import *
73
+ from draftsman.constants import Direction
74
+ from draftsman.entity import *
75
+
76
+ # Create new Blueprints from scratch
77
+ blueprint = Blueprint()
78
+ blueprint.label = "Example"
79
+ blueprint.description = "A blueprint for the readme."
80
+ blueprint.version = (2, 0) # Factorio version 2.0
81
+
82
+ # Add new entities and configure them procedurally
83
+ test_string = "readme"
84
+ for i, char in enumerate(test_string):
85
+ signal_string = "signal-{}".format(char.upper())
86
+
87
+ constant_combinator = ConstantCombinator(tile_position=(i - 2, 0))
88
+ section = constant_combinator.add_section()
89
+ section.set_signal(
90
+ index=0,
91
+ name=signal_string,
92
+ count=0,
93
+ )
94
+ blueprint.entities.append(constant_combinator)
95
+
96
+ display_panel = DisplayPanel(tile_position=(i - 2, 1))
97
+ display_panel.icon = signal_string
98
+ display_panel.always_show_in_alt_mode = True
99
+ blueprint.entities.append(display_panel)
100
+
101
+ # Flexible ways to specify entities
102
+ blueprint.entities.append(
103
+ "constant-combinator",
104
+ id="constant",
105
+ tile_position=(-1, 3),
106
+ direction=Direction.EAST
107
+ )
108
+ blueprint.entities.append(
109
+ "decider-combinator",
110
+ id="clock",
111
+ tile_position=(0, 3),
112
+ direction=Direction.EAST,
113
+ )
114
+ blueprint.entities.append(
115
+ "small-lamp",
116
+ id="blinker",
117
+ tile_position=(2, 3)
118
+ )
119
+
120
+ # Use IDs for ease of access on complex blueprints
121
+ constant: ConstantCombinator = blueprint.entities["constant"]
122
+ constant.add_section().set_signal(index=0, name="signal-red", count=1)
123
+
124
+ clock: DeciderCombinator = blueprint.entities["clock"]
125
+ clock.conditions = [
126
+ DeciderCombinator.Condition(
127
+ first_signal="signal-red",
128
+ comparator="<=",
129
+ constant=60
130
+ )
131
+ ]
132
+ clock.outputs = [
133
+ DeciderCombinator.Output(
134
+ signal="signal-red"
135
+ )
136
+ ]
137
+
138
+ blinker: Lamp = blueprint.entities["blinker"]
139
+ blinker.circuit_enabled = True
140
+ blinker.set_circuit_condition("signal-red", "=", 60)
141
+ blinker.use_colors = True
142
+
143
+ # Sophisticated relationship handling with Associations
144
+ blueprint.add_circuit_connection( # Constant to input of decider
145
+ color="green",
146
+ entity_1="constant",
147
+ entity_2="clock"
148
+ )
149
+ blueprint.add_circuit_connection( # Input of decider to output of decider
150
+ color="red", entity_1="clock", side_1="input", entity_2="clock", side_2="output"
151
+ )
152
+ blueprint.add_circuit_connection( # Output of decider to lamp
153
+ color="green", entity_1="clock", side_1="output", entity_2="blinker", side_2="input"
154
+ )
155
+
156
+ # Import compressed blueprints
157
+ bp_string = """0eNqllGFrwyAQhv/LfdZhkmUl+SujDJNc2wO9FLVjXfC/z2TZBisrLH4S9d7n3pdDJ+jMBc+OOEA7AfUje2ifJ/B0ZG3mM9YWoQXtPdrOEB+l1f2JGGUFUQDxgG/QFnEvADlQIPwkLJvrC19shy4ViLskAefRJ/HIc88EVA+1gOuyxpkdyKzgX4WyWOpkEb87ODwk6iBP+l27QaZQvcOA0uAhJM83CJVNyPewxlC5KVRuCJWdIXsS2YPIn0N5S/iS/u37n6JNnVZ/1RZ/1RZ/d0XpYVJAm+5+/hEBr+j8gqmfyuaxaeqdKutdU8b4AbwVejE="""
158
+
159
+ # Group entities together and treat them all as one unit
160
+ group = Group.from_string(bp_string)
161
+ for i in range(3):
162
+ blueprint.groups.append(group, position=(i * 4 - 3, 7))
163
+
164
+ # Quickly query Blueprints by region or contents
165
+ ccs = blueprint.find_entities_filtered(name="constant-combinator")
166
+ assert len(ccs) == len(test_string) + 1
167
+ asm_machines: list[AssemblingMachine] = blueprint.find_entities_filtered(type="assembling-machine")
168
+ assert len(asm_machines) == 3
169
+ for asm_machine in asm_machines:
170
+ asm_machine.recipe = "low-density-structure"
171
+
172
+ # Every blueprintable type is supported
173
+ blueprint_book = BlueprintBook()
174
+ blueprint_book.blueprints = [blueprint, UpgradePlanner(), DeconstructionPlanner()]
175
+
176
+ print(blueprint_book.to_string(version=(2, 0))) # Blueprint string to import into Factorio
177
+ ```
178
+
179
+ ![The output from the above script.](examples/images/readme_output.PNG)
180
+
181
+ # Overview
182
+
183
+ 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.
184
+ 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.
185
+
186
+ 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/).
187
+
188
+ 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).
189
+
190
+ 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.
191
+
192
+ ## Features
193
+ * Compatible with Python >= 3.10
194
+ * Compatible with all versions of Factorio >= 1.0.0
195
+ * Compatible with Factorio mods(!)
196
+ * Well documented
197
+ * Intuitive and flexible API
198
+ * Useful constructs for ease-of-use:
199
+ * Give entities unique string IDs to make association between entities easier
200
+ * 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)
201
+ * Entities are categorized and organized within `draftsman.data` for easy and flexible iteration
202
+ * Group entities together and manipulate them all as one unit
203
+ * Verbose Errors and Warnings (["Factorio-safety" and "Factorio-correctness"](https://factorio-draftsman.readthedocs.io/en/latest/concepts/validation.html))
204
+ * Expansive and rigorous test suite
205
+
206
+ # Installation
207
+
208
+ ## For Users:
209
+
210
+ ```
211
+ pip install factorio-draftsman
212
+ ```
213
+
214
+ 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.
215
+
216
+ 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`:
217
+
218
+ ```
219
+ draftsman factorio-version latest
220
+ draftsman --mods-path "path/to/mods/folder" update
221
+ ```
222
+
223
+ 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).
224
+
225
+ ## For Developers
226
+
227
+ Clone the repository using your preferred method (making sure submodules are populated) and navigate to the root of the newly cloned repository:
228
+
229
+ ```
230
+ git clone --recurse-submodules https://github.com/redruin1/factorio-draftsman.git
231
+ cd factorio-draftsman
232
+ ```
233
+
234
+ 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:
235
+
236
+ ```perl
237
+ pip install uv # or via pipx or standalone script, see uv docs
238
+ uv venv
239
+ ```
240
+
241
+ Install the package in editable mode, alongside the `dev` dependency group (requires modern pip):
242
+
243
+ ```
244
+ pip install -e .
245
+ pip install --group dev
246
+ ```
247
+
248
+ You should now be able to run the test suite with [`pytest`](https://docs.pytest.org/en/stable/#):
249
+
250
+ ```
251
+ python -m pytest test -Werror -vv
252
+ ```
253
+
254
+ Or - more succinctly - using [`coverage`](https://coverage.readthedocs.io/en/latest/):
255
+
256
+ ```
257
+ coverage run
258
+ ```
259
+
260
+ To run a mock CI against all supported Python versions, run [`tox`](https://tox.wiki/en/4.27.0/):
261
+
262
+ ```
263
+ tox
264
+ ```
265
+
266
+ However, Draftsman (>= 3.0) also provides a [`justfile`](https://github.com/casey/just) which has a number of recipes which make contributing much easier.
267
+ Type `just` to see a list of all options:
268
+
269
+ ```perl
270
+ Available recipes:
271
+ ci # Run 'lint + test + report-coverage'
272
+ ci-all # Run 'lint + test-all + report-coverage'
273
+ lint *args # Run black and ruff
274
+ test # Run test suite against {current Factorio version, all Python versions}
275
+ test-all # Run test suite against {all Factorio versions, latest Python version} (LONG)
276
+ report-coverage # Combine all coverage files and create HTML report
277
+ ```
278
+
279
+ Note that testing currently is only guaranteed to pass with a vanilla [environment](https://factorio-draftsman.readthedocs.io/en/latest/concepts/environment.html).
280
+
281
+ A html-browsable coverage report can be generated with:
282
+
283
+ ```
284
+ coverage html
285
+ ```
286
+
287
+ To build + check documentation locally:
288
+
289
+ ```
290
+ cd docs
291
+ make clean
292
+ make doctest
293
+ make html
294
+ ```
295
+
296
+ and then navigate to `docs/build/index.html` to view.
297
+
298
+ --------------------------------------------------------------------------------
299
+
300
+ # Contributing
301
+
302
+ 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.
303
+
304
+ 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.
305
+
306
+ 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.
307
+
308
+ 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.
309
+
310
+ 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:
311
+
312
+ <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,254 @@
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
+ ```
220
+
221
+ Note that testing currently is only guaranteed to pass with a vanilla [environment](https://factorio-draftsman.readthedocs.io/en/latest/concepts/environment.html).
222
+
223
+ A html-browsable coverage report can be generated with:
224
+
225
+ ```
226
+ coverage html
227
+ ```
228
+
229
+ To build + check documentation locally:
230
+
231
+ ```
232
+ cd docs
233
+ make clean
234
+ make doctest
235
+ make html
236
+ ```
237
+
238
+ and then navigate to `docs/build/index.html` to view.
239
+
240
+ --------------------------------------------------------------------------------
241
+
242
+ # Contributing
243
+
244
+ 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.
245
+
246
+ 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.
247
+
248
+ 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.
249
+
250
+ 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.
251
+
252
+ 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:
253
+
254
+ <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.0"
4
+ __version_info__ = (3, 0, 0)