├── src ├── ColorHelper │ ├── __init__.py │ └── color.py ├── Yaml │ ├── __init__.py │ └── yaml.py ├── UI │ ├── __init__.py │ ├── loadingscreen.py │ ├── window.py │ ├── popup.py │ ├── configRow.py │ ├── optionMenu.py │ ├── settingsFrame.py │ └── imageFrame.py ├── Tiles │ ├── __init__.py │ └── tileRefManager.py ├── EntitySystem │ ├── __init__.py │ ├── entity.py │ └── EntityManager.py ├── Config │ ├── __init__.py │ ├── config.py │ └── appSettings.py ├── ImageReader │ ├── __init__.py │ ├── selectors.py │ └── ImageReader.py ├── GridSystem │ ├── __init__.py │ ├── tile.py │ ├── map.py │ ├── grid.py │ └── chunk.py └── Components │ ├── ShuttleComponent.py │ ├── BroadphaseComponent.py │ ├── OccluderTreeComponent.py │ ├── SpreaderGridComponent.py │ ├── GasTileOverlayComponent.py │ ├── GridPathfindingComponent.py │ ├── DecalGridComponent.py │ ├── RadiationGridResistanceComponent.py │ ├── FixturesComponent.py │ ├── GravityShakeComponent.py │ ├── TransformComponent.py │ ├── MetaDataComponent.py │ ├── GravityComponent.py │ ├── PhysicsComponent.py │ ├── __init__.py │ ├── MapGridComponent.py │ ├── GridAtmosphereComponent.py │ └── base.py ├── requirements.txt ├── Textures └── Tiles │ ├── bar.png │ ├── blue.png │ ├── cave.png │ ├── dark.png │ ├── dirt.png │ ├── gold.png │ ├── gym.png │ ├── hull.png │ ├── lime.png │ ├── lino.png │ ├── meat.png │ ├── mime.png │ ├── mono.png │ ├── snow.png │ ├── tile.png │ ├── wood.png │ ├── boxing.png │ ├── clown.png │ ├── glass.png │ ├── grass.png │ ├── hydro.png │ ├── rglass.png │ ├── silver.png │ ├── steel.png │ ├── white.png │ ├── arcadered.png │ ├── cafeteria.png │ ├── chromite.png │ ├── dark_mini.png │ ├── dark_mono.png │ ├── eighties.png │ ├── foammetal.png │ ├── freezer.png │ ├── grassdark.png │ ├── kitchen.png │ ├── lattice.png │ ├── laundry.png │ ├── plastic.png │ ├── plating.png │ ├── showroom.png │ ├── wood_tile.png │ ├── arcadeblue.png │ ├── arcadeblue2.png │ ├── carpetclown.png │ ├── cavedrought.png │ ├── dark_offset.png │ ├── deprecated.png │ ├── grassjungle.png │ ├── grasslight.png │ ├── red_circuit.png │ ├── reinforced.png │ ├── rock_vault.png │ ├── shuttleblue.png │ ├── shuttlegrey.png │ ├── shuttlered.png │ ├── steel_burnt.png │ ├── steel_dirty.png │ ├── steel_maint.png │ ├── steel_mini.png │ ├── steel_mono.png │ ├── tech_maint.png │ ├── white_mini.png │ ├── white_mono.png │ ├── wood_broken.png │ ├── wood_large.png │ ├── Planet │ ├── basalt.png │ ├── Snow │ │ ├── ice.png │ │ ├── snow.png │ │ ├── plating.png │ │ ├── snow_dug.png │ │ ├── permafrost.png │ │ ├── snow_double_edge_east.png │ │ ├── snow_double_edge_north.png │ │ ├── snow_double_edge_south.png │ │ ├── snow_double_edge_west.png │ │ ├── snow_dug_double_edge_east.png │ │ ├── snow_dug_double_edge_north.png │ │ ├── snow_dug_double_edge_south.png │ │ ├── snow_dug_double_edge_west.png │ │ └── meta.json │ ├── Grass │ │ ├── grass.png │ │ ├── double_edge.png │ │ ├── single_edge.png │ │ ├── triple_edge.png │ │ └── attributions.yml │ ├── Desert │ │ ├── desert.png │ │ ├── desert_dug.png │ │ ├── low_desert.png │ │ ├── low_desert_dug.png │ │ ├── iron_sand │ │ │ ├── ironsand1.png │ │ │ ├── ironsand10.png │ │ │ ├── ironsand11.png │ │ │ ├── ironsand12.png │ │ │ ├── ironsand13.png │ │ │ ├── ironsand14.png │ │ │ ├── ironsand15.png │ │ │ ├── ironsand2.png │ │ │ ├── ironsand3.png │ │ │ ├── ironsand4.png │ │ │ ├── ironsand5.png │ │ │ ├── ironsand6.png │ │ │ ├── ironsand7.png │ │ │ ├── ironsand8.png │ │ │ └── ironsand9.png │ │ └── meta.json │ ├── dirt.rsi │ │ ├── dirt.png │ │ └── meta.json │ ├── lava.rsi │ │ ├── full.png │ │ ├── lava.png │ │ ├── lava0.png │ │ ├── lava1.png │ │ ├── lava2.png │ │ ├── lava3.png │ │ ├── lava4.png │ │ ├── lava5.png │ │ ├── lava6.png │ │ ├── lava7.png │ │ └── meta.json │ ├── Concrete │ │ ├── asphalt.png │ │ ├── concrete.png │ │ ├── concrete_mono.png │ │ ├── grayconcrete.png │ │ ├── oldconcrete.png │ │ ├── concrete_smooth.png │ │ ├── grayconcrete_mono.png │ │ ├── oldconcrete_mono.png │ │ ├── oldconcrete_smooth.png │ │ ├── grayconcrete_smooth.png │ │ └── attributions.yml │ ├── basalt.rsi │ │ ├── basalt1.png │ │ ├── basalt2.png │ │ ├── basalt3.png │ │ ├── basalt4.png │ │ ├── basalt5.png │ │ └── meta.json │ ├── liquid_plasma.rsi │ │ ├── full.png │ │ ├── plasma.png │ │ ├── plasma0.png │ │ ├── plasma1.png │ │ ├── plasma2.png │ │ ├── plasma3.png │ │ ├── plasma4.png │ │ ├── plasma5.png │ │ ├── plasma6.png │ │ ├── plasma7.png │ │ └── meta.json │ ├── shadowbasalt.rsi │ │ ├── basalt1.png │ │ ├── basalt2.png │ │ ├── basalt3.png │ │ ├── basalt4.png │ │ ├── basalt5.png │ │ └── meta.json │ ├── Chasms │ │ ├── snow_chasm.rsi │ │ │ ├── chasm.png │ │ │ ├── full.png │ │ │ ├── chasm0.png │ │ │ ├── chasm1.png │ │ │ ├── chasm2.png │ │ │ ├── chasm3.png │ │ │ ├── chasm4.png │ │ │ ├── chasm5.png │ │ │ ├── chasm6.png │ │ │ ├── chasm7.png │ │ │ └── meta.json │ │ ├── basalt_chasm.rsi │ │ │ ├── chasm.png │ │ │ ├── full.png │ │ │ ├── chasm0.png │ │ │ ├── chasm1.png │ │ │ ├── chasm2.png │ │ │ ├── chasm3.png │ │ │ ├── chasm4.png │ │ │ ├── chasm5.png │ │ │ ├── chasm6.png │ │ │ ├── chasm7.png │ │ │ └── meta.json │ │ ├── desert_chasm.rsi │ │ │ ├── chasm.png │ │ │ ├── full.png │ │ │ ├── chasm0.png │ │ │ ├── chasm1.png │ │ │ ├── chasm2.png │ │ │ ├── chasm3.png │ │ │ ├── chasm4.png │ │ │ ├── chasm5.png │ │ │ ├── chasm6.png │ │ │ ├── chasm7.png │ │ │ └── meta.json │ │ └── chromite_chasm.rsi │ │ │ ├── chasm.png │ │ │ ├── chasm0.png │ │ │ ├── chasm1.png │ │ │ ├── chasm2.png │ │ │ ├── chasm3.png │ │ │ ├── chasm4.png │ │ │ ├── chasm5.png │ │ │ ├── chasm6.png │ │ │ ├── chasm7.png │ │ │ ├── full.png │ │ │ └── meta.json │ ├── water.rsi │ │ ├── shoreline_water.png │ │ └── meta.json │ └── attributions.yml │ ├── blue_circuit.png │ ├── carpetoffice.png │ ├── checker_dark.png │ ├── dark_diagonal.png │ ├── dark_pavement.png │ ├── dark_plastic.png │ ├── elevator_shaft.png │ ├── grating_maint.png │ ├── green_circuit.png │ ├── latticeTrain.png │ ├── metaldiamond.png │ ├── mining_floor.png │ ├── plating_burnt.png │ ├── shuttleblack.png │ ├── shuttleorange.png │ ├── shuttlepurple.png │ ├── shuttlewhite.png │ ├── snow_plating.png │ ├── steel_damaged.png │ ├── steel_diagonal.png │ ├── steel_offset.png │ ├── steel_pavement.png │ ├── white_diagonal.png │ ├── white_offset.png │ ├── white_pavement.png │ ├── white_plastic.png │ ├── cropped_parallax.png │ ├── dark_herringbone.png │ ├── hull_reinforced.png │ ├── plating_damaged.png │ ├── super_reinforced.png │ ├── Asteroid │ ├── asteroid.png │ ├── asteroid0.png │ ├── ironsand.png │ ├── ironsand0.png │ ├── asteroid_dug.png │ ├── asteroid_red.png │ ├── asteroid_tile.png │ └── asteroid_plating.png │ ├── Misc │ ├── Web │ │ ├── web_tile.png │ │ └── meta.json │ ├── clockwork │ │ ├── reebe.png │ │ ├── reebegame.png │ │ ├── reebemap.png │ │ ├── reebespawn.png │ │ ├── reebelattice.png │ │ ├── clockwork_floor.png │ │ ├── clockwork_floor_filled.png │ │ ├── clockwork_lattice.rsi │ │ │ ├── clock_lattice.png │ │ │ └── meta.json │ │ └── meta.json │ ├── bananium.rsi │ │ ├── bananium.png │ │ └── meta.json │ └── floortrap.rsi │ │ ├── floortrap.png │ │ ├── floortrapspawn.png │ │ └── meta.json │ ├── dark_diagonal_mini.png │ ├── mining_floor_dark.png │ ├── mining_floor_light.png │ ├── steel_diagonal_mini.png │ ├── steel_herringbone.png │ ├── white_diagonal_mini.png │ ├── white_herringbone.png │ ├── tile-reference-sheet.png │ ├── dark_pavement_vertical.png │ ├── steel_pavement_vertical.png │ ├── white_pavement_vertical.png │ ├── SteelTileSpritingGuide.txt │ └── attributions.yml ├── Tiles ├── space.yml ├── plating.yml ├── planet.yml └── floors.yml ├── install.bat ├── main.py ├── install.sh ├── README.md └── .gitignore /src/ColorHelper/__init__.py: -------------------------------------------------------------------------------- 1 | from .color import * 2 | -------------------------------------------------------------------------------- /src/Yaml/__init__.py: -------------------------------------------------------------------------------- 1 | from .yaml import * 2 | 3 | -------------------------------------------------------------------------------- /src/UI/__init__.py: -------------------------------------------------------------------------------- 1 | from .window import Window 2 | 3 | -------------------------------------------------------------------------------- /src/Tiles/__init__.py: -------------------------------------------------------------------------------- 1 | from .tileRefManager import TilesRefsManager 2 | 3 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Pillow==10.4.0 2 | customtkinter==5.2.2 3 | PyYAML==6.0.2 4 | 5 | -------------------------------------------------------------------------------- /Textures/Tiles/bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/bar.png -------------------------------------------------------------------------------- /Textures/Tiles/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/blue.png -------------------------------------------------------------------------------- /Textures/Tiles/cave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/cave.png -------------------------------------------------------------------------------- /Textures/Tiles/dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/dark.png -------------------------------------------------------------------------------- /Textures/Tiles/dirt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/dirt.png -------------------------------------------------------------------------------- /Textures/Tiles/gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/gold.png -------------------------------------------------------------------------------- /Textures/Tiles/gym.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/gym.png -------------------------------------------------------------------------------- /Textures/Tiles/hull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/hull.png -------------------------------------------------------------------------------- /Textures/Tiles/lime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/lime.png -------------------------------------------------------------------------------- /Textures/Tiles/lino.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/lino.png -------------------------------------------------------------------------------- /Textures/Tiles/meat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/meat.png -------------------------------------------------------------------------------- /Textures/Tiles/mime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/mime.png -------------------------------------------------------------------------------- /Textures/Tiles/mono.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/mono.png -------------------------------------------------------------------------------- /Textures/Tiles/snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/snow.png -------------------------------------------------------------------------------- /Textures/Tiles/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/tile.png -------------------------------------------------------------------------------- /Textures/Tiles/wood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/wood.png -------------------------------------------------------------------------------- /src/EntitySystem/__init__.py: -------------------------------------------------------------------------------- 1 | from .entity import Entity 2 | from .EntityManager import EntitySystem 3 | 4 | -------------------------------------------------------------------------------- /Textures/Tiles/boxing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/boxing.png -------------------------------------------------------------------------------- /Textures/Tiles/clown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/clown.png -------------------------------------------------------------------------------- /Textures/Tiles/glass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/glass.png -------------------------------------------------------------------------------- /Textures/Tiles/grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/grass.png -------------------------------------------------------------------------------- /Textures/Tiles/hydro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/hydro.png -------------------------------------------------------------------------------- /Textures/Tiles/rglass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/rglass.png -------------------------------------------------------------------------------- /Textures/Tiles/silver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/silver.png -------------------------------------------------------------------------------- /Textures/Tiles/steel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/steel.png -------------------------------------------------------------------------------- /Textures/Tiles/white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/white.png -------------------------------------------------------------------------------- /Textures/Tiles/arcadered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/arcadered.png -------------------------------------------------------------------------------- /Textures/Tiles/cafeteria.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/cafeteria.png -------------------------------------------------------------------------------- /Textures/Tiles/chromite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/chromite.png -------------------------------------------------------------------------------- /Textures/Tiles/dark_mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/dark_mini.png -------------------------------------------------------------------------------- /Textures/Tiles/dark_mono.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/dark_mono.png -------------------------------------------------------------------------------- /Textures/Tiles/eighties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/eighties.png -------------------------------------------------------------------------------- /Textures/Tiles/foammetal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/foammetal.png -------------------------------------------------------------------------------- /Textures/Tiles/freezer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/freezer.png -------------------------------------------------------------------------------- /Textures/Tiles/grassdark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/grassdark.png -------------------------------------------------------------------------------- /Textures/Tiles/kitchen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/kitchen.png -------------------------------------------------------------------------------- /Textures/Tiles/lattice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/lattice.png -------------------------------------------------------------------------------- /Textures/Tiles/laundry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/laundry.png -------------------------------------------------------------------------------- /Textures/Tiles/plastic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/plastic.png -------------------------------------------------------------------------------- /Textures/Tiles/plating.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/plating.png -------------------------------------------------------------------------------- /Textures/Tiles/showroom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/showroom.png -------------------------------------------------------------------------------- /Textures/Tiles/wood_tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/wood_tile.png -------------------------------------------------------------------------------- /Textures/Tiles/arcadeblue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/arcadeblue.png -------------------------------------------------------------------------------- /Textures/Tiles/arcadeblue2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/arcadeblue2.png -------------------------------------------------------------------------------- /Textures/Tiles/carpetclown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/carpetclown.png -------------------------------------------------------------------------------- /Textures/Tiles/cavedrought.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/cavedrought.png -------------------------------------------------------------------------------- /Textures/Tiles/dark_offset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/dark_offset.png -------------------------------------------------------------------------------- /Textures/Tiles/deprecated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/deprecated.png -------------------------------------------------------------------------------- /Textures/Tiles/grassjungle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/grassjungle.png -------------------------------------------------------------------------------- /Textures/Tiles/grasslight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/grasslight.png -------------------------------------------------------------------------------- /Textures/Tiles/red_circuit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/red_circuit.png -------------------------------------------------------------------------------- /Textures/Tiles/reinforced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/reinforced.png -------------------------------------------------------------------------------- /Textures/Tiles/rock_vault.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/rock_vault.png -------------------------------------------------------------------------------- /Textures/Tiles/shuttleblue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/shuttleblue.png -------------------------------------------------------------------------------- /Textures/Tiles/shuttlegrey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/shuttlegrey.png -------------------------------------------------------------------------------- /Textures/Tiles/shuttlered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/shuttlered.png -------------------------------------------------------------------------------- /Textures/Tiles/steel_burnt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/steel_burnt.png -------------------------------------------------------------------------------- /Textures/Tiles/steel_dirty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/steel_dirty.png -------------------------------------------------------------------------------- /Textures/Tiles/steel_maint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/steel_maint.png -------------------------------------------------------------------------------- /Textures/Tiles/steel_mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/steel_mini.png -------------------------------------------------------------------------------- /Textures/Tiles/steel_mono.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/steel_mono.png -------------------------------------------------------------------------------- /Textures/Tiles/tech_maint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/tech_maint.png -------------------------------------------------------------------------------- /Textures/Tiles/white_mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/white_mini.png -------------------------------------------------------------------------------- /Textures/Tiles/white_mono.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/white_mono.png -------------------------------------------------------------------------------- /Textures/Tiles/wood_broken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/wood_broken.png -------------------------------------------------------------------------------- /Textures/Tiles/wood_large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/wood_large.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/basalt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/basalt.png -------------------------------------------------------------------------------- /Textures/Tiles/blue_circuit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/blue_circuit.png -------------------------------------------------------------------------------- /Textures/Tiles/carpetoffice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/carpetoffice.png -------------------------------------------------------------------------------- /Textures/Tiles/checker_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/checker_dark.png -------------------------------------------------------------------------------- /Textures/Tiles/dark_diagonal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/dark_diagonal.png -------------------------------------------------------------------------------- /Textures/Tiles/dark_pavement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/dark_pavement.png -------------------------------------------------------------------------------- /Textures/Tiles/dark_plastic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/dark_plastic.png -------------------------------------------------------------------------------- /Textures/Tiles/elevator_shaft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/elevator_shaft.png -------------------------------------------------------------------------------- /Textures/Tiles/grating_maint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/grating_maint.png -------------------------------------------------------------------------------- /Textures/Tiles/green_circuit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/green_circuit.png -------------------------------------------------------------------------------- /Textures/Tiles/latticeTrain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/latticeTrain.png -------------------------------------------------------------------------------- /Textures/Tiles/metaldiamond.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/metaldiamond.png -------------------------------------------------------------------------------- /Textures/Tiles/mining_floor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/mining_floor.png -------------------------------------------------------------------------------- /Textures/Tiles/plating_burnt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/plating_burnt.png -------------------------------------------------------------------------------- /Textures/Tiles/shuttleblack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/shuttleblack.png -------------------------------------------------------------------------------- /Textures/Tiles/shuttleorange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/shuttleorange.png -------------------------------------------------------------------------------- /Textures/Tiles/shuttlepurple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/shuttlepurple.png -------------------------------------------------------------------------------- /Textures/Tiles/shuttlewhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/shuttlewhite.png -------------------------------------------------------------------------------- /Textures/Tiles/snow_plating.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/snow_plating.png -------------------------------------------------------------------------------- /Textures/Tiles/steel_damaged.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/steel_damaged.png -------------------------------------------------------------------------------- /Textures/Tiles/steel_diagonal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/steel_diagonal.png -------------------------------------------------------------------------------- /Textures/Tiles/steel_offset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/steel_offset.png -------------------------------------------------------------------------------- /Textures/Tiles/steel_pavement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/steel_pavement.png -------------------------------------------------------------------------------- /Textures/Tiles/white_diagonal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/white_diagonal.png -------------------------------------------------------------------------------- /Textures/Tiles/white_offset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/white_offset.png -------------------------------------------------------------------------------- /Textures/Tiles/white_pavement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/white_pavement.png -------------------------------------------------------------------------------- /Textures/Tiles/white_plastic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/white_plastic.png -------------------------------------------------------------------------------- /src/Config/__init__.py: -------------------------------------------------------------------------------- 1 | from .config import getConfigPath 2 | from .appSettings import GlobalSettings, Frames, Selectors 3 | 4 | -------------------------------------------------------------------------------- /src/ImageReader/__init__.py: -------------------------------------------------------------------------------- 1 | from .ImageReader import GetImageColormap, ConvertImageToMap 2 | from .selectors import * 3 | 4 | -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Snow/ice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Snow/ice.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Snow/snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Snow/snow.png -------------------------------------------------------------------------------- /Textures/Tiles/cropped_parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/cropped_parallax.png -------------------------------------------------------------------------------- /Textures/Tiles/dark_herringbone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/dark_herringbone.png -------------------------------------------------------------------------------- /Textures/Tiles/hull_reinforced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/hull_reinforced.png -------------------------------------------------------------------------------- /Textures/Tiles/plating_damaged.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/plating_damaged.png -------------------------------------------------------------------------------- /Textures/Tiles/super_reinforced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/super_reinforced.png -------------------------------------------------------------------------------- /Textures/Tiles/Asteroid/asteroid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Asteroid/asteroid.png -------------------------------------------------------------------------------- /Textures/Tiles/Asteroid/asteroid0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Asteroid/asteroid0.png -------------------------------------------------------------------------------- /Textures/Tiles/Asteroid/ironsand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Asteroid/ironsand.png -------------------------------------------------------------------------------- /Textures/Tiles/Asteroid/ironsand0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Asteroid/ironsand0.png -------------------------------------------------------------------------------- /Textures/Tiles/Misc/Web/web_tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Misc/Web/web_tile.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Grass/grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Grass/grass.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Snow/plating.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Snow/plating.png -------------------------------------------------------------------------------- /Textures/Tiles/dark_diagonal_mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/dark_diagonal_mini.png -------------------------------------------------------------------------------- /Textures/Tiles/mining_floor_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/mining_floor_dark.png -------------------------------------------------------------------------------- /Textures/Tiles/mining_floor_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/mining_floor_light.png -------------------------------------------------------------------------------- /Textures/Tiles/steel_diagonal_mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/steel_diagonal_mini.png -------------------------------------------------------------------------------- /Textures/Tiles/steel_herringbone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/steel_herringbone.png -------------------------------------------------------------------------------- /Textures/Tiles/white_diagonal_mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/white_diagonal_mini.png -------------------------------------------------------------------------------- /Textures/Tiles/white_herringbone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/white_herringbone.png -------------------------------------------------------------------------------- /Textures/Tiles/Asteroid/asteroid_dug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Asteroid/asteroid_dug.png -------------------------------------------------------------------------------- /Textures/Tiles/Asteroid/asteroid_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Asteroid/asteroid_red.png -------------------------------------------------------------------------------- /Textures/Tiles/Misc/clockwork/reebe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Misc/clockwork/reebe.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/desert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/desert.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Snow/snow_dug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Snow/snow_dug.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/dirt.rsi/dirt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/dirt.rsi/dirt.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/lava.rsi/full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/lava.rsi/full.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/lava.rsi/lava.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/lava.rsi/lava.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/lava.rsi/lava0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/lava.rsi/lava0.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/lava.rsi/lava1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/lava.rsi/lava1.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/lava.rsi/lava2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/lava.rsi/lava2.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/lava.rsi/lava3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/lava.rsi/lava3.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/lava.rsi/lava4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/lava.rsi/lava4.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/lava.rsi/lava5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/lava.rsi/lava5.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/lava.rsi/lava6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/lava.rsi/lava6.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/lava.rsi/lava7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/lava.rsi/lava7.png -------------------------------------------------------------------------------- /Textures/Tiles/tile-reference-sheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/tile-reference-sheet.png -------------------------------------------------------------------------------- /src/GridSystem/__init__.py: -------------------------------------------------------------------------------- 1 | from .tile import Tile 2 | from .chunk import Chunk 3 | from .grid import Grid 4 | from .map import Map 5 | 6 | -------------------------------------------------------------------------------- /Textures/Tiles/Asteroid/asteroid_tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Asteroid/asteroid_tile.png -------------------------------------------------------------------------------- /Textures/Tiles/Misc/clockwork/reebegame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Misc/clockwork/reebegame.png -------------------------------------------------------------------------------- /Textures/Tiles/Misc/clockwork/reebemap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Misc/clockwork/reebemap.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Concrete/asphalt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Concrete/asphalt.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Concrete/concrete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Concrete/concrete.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/desert_dug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/desert_dug.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/low_desert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/low_desert.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Grass/double_edge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Grass/double_edge.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Grass/single_edge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Grass/single_edge.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Grass/triple_edge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Grass/triple_edge.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Snow/permafrost.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Snow/permafrost.png -------------------------------------------------------------------------------- /Textures/Tiles/dark_pavement_vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/dark_pavement_vertical.png -------------------------------------------------------------------------------- /Textures/Tiles/steel_pavement_vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/steel_pavement_vertical.png -------------------------------------------------------------------------------- /Textures/Tiles/white_pavement_vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/white_pavement_vertical.png -------------------------------------------------------------------------------- /Textures/Tiles/Asteroid/asteroid_plating.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Asteroid/asteroid_plating.png -------------------------------------------------------------------------------- /Textures/Tiles/Misc/bananium.rsi/bananium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Misc/bananium.rsi/bananium.png -------------------------------------------------------------------------------- /Textures/Tiles/Misc/clockwork/reebespawn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Misc/clockwork/reebespawn.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/basalt.rsi/basalt1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/basalt.rsi/basalt1.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/basalt.rsi/basalt2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/basalt.rsi/basalt2.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/basalt.rsi/basalt3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/basalt.rsi/basalt3.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/basalt.rsi/basalt4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/basalt.rsi/basalt4.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/basalt.rsi/basalt5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/basalt.rsi/basalt5.png -------------------------------------------------------------------------------- /Textures/Tiles/Misc/clockwork/reebelattice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Misc/clockwork/reebelattice.png -------------------------------------------------------------------------------- /Textures/Tiles/Misc/floortrap.rsi/floortrap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Misc/floortrap.rsi/floortrap.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Concrete/concrete_mono.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Concrete/concrete_mono.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Concrete/grayconcrete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Concrete/grayconcrete.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Concrete/oldconcrete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Concrete/oldconcrete.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/low_desert_dug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/low_desert_dug.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/liquid_plasma.rsi/full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/liquid_plasma.rsi/full.png -------------------------------------------------------------------------------- /Textures/Tiles/Misc/clockwork/clockwork_floor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Misc/clockwork/clockwork_floor.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Concrete/concrete_smooth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Concrete/concrete_smooth.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/liquid_plasma.rsi/plasma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/liquid_plasma.rsi/plasma.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/shadowbasalt.rsi/basalt1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/shadowbasalt.rsi/basalt1.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/shadowbasalt.rsi/basalt2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/shadowbasalt.rsi/basalt2.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/shadowbasalt.rsi/basalt3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/shadowbasalt.rsi/basalt3.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/shadowbasalt.rsi/basalt4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/shadowbasalt.rsi/basalt4.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/shadowbasalt.rsi/basalt5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/shadowbasalt.rsi/basalt5.png -------------------------------------------------------------------------------- /Textures/Tiles/Misc/floortrap.rsi/floortrapspawn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Misc/floortrap.rsi/floortrapspawn.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/snow_chasm.rsi/full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/snow_chasm.rsi/full.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Concrete/grayconcrete_mono.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Concrete/grayconcrete_mono.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Concrete/oldconcrete_mono.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Concrete/oldconcrete_mono.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Concrete/oldconcrete_smooth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Concrete/oldconcrete_smooth.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/iron_sand/ironsand1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/iron_sand/ironsand1.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/iron_sand/ironsand10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/iron_sand/ironsand10.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/iron_sand/ironsand11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/iron_sand/ironsand11.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/iron_sand/ironsand12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/iron_sand/ironsand12.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/iron_sand/ironsand13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/iron_sand/ironsand13.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/iron_sand/ironsand14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/iron_sand/ironsand14.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/iron_sand/ironsand15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/iron_sand/ironsand15.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/iron_sand/ironsand2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/iron_sand/ironsand2.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/iron_sand/ironsand3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/iron_sand/ironsand3.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/iron_sand/ironsand4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/iron_sand/ironsand4.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/iron_sand/ironsand5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/iron_sand/ironsand5.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/iron_sand/ironsand6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/iron_sand/ironsand6.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/iron_sand/ironsand7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/iron_sand/ironsand7.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/iron_sand/ironsand8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/iron_sand/ironsand8.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/iron_sand/ironsand9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Desert/iron_sand/ironsand9.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Snow/snow_double_edge_east.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Snow/snow_double_edge_east.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Snow/snow_double_edge_north.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Snow/snow_double_edge_north.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Snow/snow_double_edge_south.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Snow/snow_double_edge_south.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Snow/snow_double_edge_west.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Snow/snow_double_edge_west.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/liquid_plasma.rsi/plasma0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/liquid_plasma.rsi/plasma0.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/liquid_plasma.rsi/plasma1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/liquid_plasma.rsi/plasma1.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/liquid_plasma.rsi/plasma2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/liquid_plasma.rsi/plasma2.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/liquid_plasma.rsi/plasma3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/liquid_plasma.rsi/plasma3.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/liquid_plasma.rsi/plasma4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/liquid_plasma.rsi/plasma4.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/liquid_plasma.rsi/plasma5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/liquid_plasma.rsi/plasma5.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/liquid_plasma.rsi/plasma6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/liquid_plasma.rsi/plasma6.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/liquid_plasma.rsi/plasma7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/liquid_plasma.rsi/plasma7.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/water.rsi/shoreline_water.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/water.rsi/shoreline_water.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/full.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/desert_chasm.rsi/full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/desert_chasm.rsi/full.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm0.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm1.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm2.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm3.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm4.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm5.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm6.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/snow_chasm.rsi/chasm7.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Concrete/grayconcrete_smooth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Concrete/grayconcrete_smooth.png -------------------------------------------------------------------------------- /Textures/Tiles/Misc/clockwork/clockwork_floor_filled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Misc/clockwork/clockwork_floor_filled.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm0.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm1.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm2.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm3.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm4.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm5.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm6.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/chasm7.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm0.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm1.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm2.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm3.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm4.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm5.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm6.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/chasm7.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/full.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm0.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm1.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm2.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm3.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm4.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm5.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm6.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Chasms/desert_chasm.rsi/chasm7.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Snow/snow_dug_double_edge_east.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Snow/snow_dug_double_edge_east.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Snow/snow_dug_double_edge_north.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Snow/snow_dug_double_edge_north.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Snow/snow_dug_double_edge_south.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Snow/snow_dug_double_edge_south.png -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Snow/snow_dug_double_edge_west.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Planet/Snow/snow_dug_double_edge_west.png -------------------------------------------------------------------------------- /src/Components/ShuttleComponent.py: -------------------------------------------------------------------------------- 1 | from .base import Component 2 | 3 | 4 | class ShuttleComponent(Component): 5 | def __init__(self): 6 | Component.__init__(self) 7 | 8 | -------------------------------------------------------------------------------- /src/Components/BroadphaseComponent.py: -------------------------------------------------------------------------------- 1 | from .base import Component 2 | 3 | 4 | class BroadphaseComponent(Component): 5 | def __init__(self): 6 | Component.__init__(self) 7 | 8 | -------------------------------------------------------------------------------- /src/Components/OccluderTreeComponent.py: -------------------------------------------------------------------------------- 1 | from .base import Component 2 | 3 | 4 | class OccluderTreeComponent(Component): 5 | def __init__(self): 6 | Component.__init__(self) 7 | 8 | -------------------------------------------------------------------------------- /src/Components/SpreaderGridComponent.py: -------------------------------------------------------------------------------- 1 | from .base import Component 2 | 3 | 4 | class SpreaderGridComponent(Component): 5 | def __init__(self): 6 | Component.__init__(self) 7 | 8 | -------------------------------------------------------------------------------- /Textures/Tiles/Misc/clockwork/clockwork_lattice.rsi/clock_lattice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poeMota/map-converter-ss14/HEAD/Textures/Tiles/Misc/clockwork/clockwork_lattice.rsi/clock_lattice.png -------------------------------------------------------------------------------- /src/Components/GasTileOverlayComponent.py: -------------------------------------------------------------------------------- 1 | from .base import Component 2 | 3 | 4 | class GasTileOverlayComponent(Component): 5 | def __init__(self): 6 | Component.__init__(self) 7 | 8 | -------------------------------------------------------------------------------- /src/Components/GridPathfindingComponent.py: -------------------------------------------------------------------------------- 1 | from .base import Component 2 | 3 | 4 | class GridPathfindingComponent(Component): 5 | def __init__(self): 6 | Component.__init__(self) 7 | 8 | -------------------------------------------------------------------------------- /src/Components/DecalGridComponent.py: -------------------------------------------------------------------------------- 1 | from .base import Component 2 | 3 | 4 | class DecalGridComponent(Component): 5 | def __init__(self): 6 | Component.__init__(self) 7 | # TODO 8 | 9 | -------------------------------------------------------------------------------- /src/Components/RadiationGridResistanceComponent.py: -------------------------------------------------------------------------------- 1 | from .base import Component 2 | 3 | 4 | class RadiationGridResistanceComponent(Component): 5 | def __init__(self): 6 | Component.__init__(self) 7 | 8 | -------------------------------------------------------------------------------- /Tiles/space.yml: -------------------------------------------------------------------------------- 1 | - type: tile 2 | id: Space 3 | name: tiles-space 4 | friction: 0 5 | isSubfloor: true 6 | isSpace: true 7 | sturdy: false 8 | thermalConductivity: 0.4 9 | heatCapacity: 700000 10 | -------------------------------------------------------------------------------- /Textures/Tiles/Planet/attributions.yml: -------------------------------------------------------------------------------- 1 | - files: ["basalt.png"] 2 | license: "CC-BY-SA-3.0" 3 | copyright: "Taken from tgstation" 4 | source: "https://github.com/tgstation/tgstation/tree/423404b31e36c4605faacec881b324db8997b0a6" -------------------------------------------------------------------------------- /src/Components/FixturesComponent.py: -------------------------------------------------------------------------------- 1 | from .base import Component 2 | 3 | 4 | class FixturesComponent(Component): 5 | def __init__(self, fixtures): 6 | Component.__init__(self) 7 | self.fixtures = fixtures 8 | 9 | -------------------------------------------------------------------------------- /src/Components/GravityShakeComponent.py: -------------------------------------------------------------------------------- 1 | from .base import Component 2 | 3 | 4 | class GravityShakeComponent(Component): 5 | def __init__(self, shakeTimes: int): 6 | Component.__init__(self) 7 | self.shakeTimes = shakeTimes 8 | 9 | -------------------------------------------------------------------------------- /src/Config/config.py: -------------------------------------------------------------------------------- 1 | from os import path 2 | from pathlib import Path 3 | 4 | 5 | def getConfigPath() -> Path: 6 | configPath = Path(path.dirname(__file__) + '/../../.config/') 7 | configPath.mkdir(parents=True, exist_ok=True) 8 | 9 | return configPath 10 | 11 | -------------------------------------------------------------------------------- /src/Components/TransformComponent.py: -------------------------------------------------------------------------------- 1 | from .base import Component 2 | 3 | 4 | class TransformComponent(Component): 5 | def __init__(self, x: float, y: float, parent: int | str): 6 | Component.__init__(self) 7 | self.pos = [x, y] 8 | self.parent = parent 9 | 10 | -------------------------------------------------------------------------------- /src/GridSystem/tile.py: -------------------------------------------------------------------------------- 1 | class Tile: 2 | def __init__(self, x: float, y: float, tile: str, tileId: int = 0): 3 | self.id = tileId 4 | 5 | self.x = x 6 | self.y = y 7 | self.name = tile 8 | self.metadata = 0 9 | self.variation = 0 10 | 11 | -------------------------------------------------------------------------------- /Textures/Tiles/Misc/Web/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "license": "CC-BY-SA-3.0", 4 | "copyright": "Made by PixelTheKermit (github) for ss14", 5 | "size": { 6 | "x": 32, 7 | "y": 32 8 | }, 9 | "states": [ 10 | { 11 | "name": "web_tile" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /Textures/Tiles/Misc/bananium.rsi/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "license": "CC-BY-SA-3.0", 4 | "copyright": "Made by brainfood1183 (github) for ss14", 5 | "size": { 6 | "x": 32, 7 | "y": 32 8 | }, 9 | "states": [ 10 | { 11 | "name": "bananium" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /install.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | where python >nul 2>nul 4 | IF %ERRORLEVEL% NEQ 0 ( 5 | echo ERROR: Python not installed 6 | exit /b 1 7 | ) 8 | 9 | where pip >nul 2>nul 10 | IF %ERRORLEVEL% NEQ 0 ( 11 | echo ERROR: pip not installed 12 | exit /b 1 13 | ) 14 | 15 | pip install -r requirements.txt 16 | 17 | -------------------------------------------------------------------------------- /src/Components/MetaDataComponent.py: -------------------------------------------------------------------------------- 1 | from .base import Component 2 | 3 | 4 | class MetaDataComponent(Component): 5 | def __init__(self, name: str = "", description: str = ""): 6 | Component.__init__(self, dontShowOnDefault = True) 7 | self.name = name 8 | self.description = description 9 | 10 | -------------------------------------------------------------------------------- /src/Components/GravityComponent.py: -------------------------------------------------------------------------------- 1 | from .base import Component 2 | 3 | 4 | class GravityComponent(Component): 5 | def __init__(self): 6 | Component.__init__(self) 7 | self.gravityShakeSound = { 8 | "!type": "SoundPathSpecifier", 9 | "path": "Audio/Effects/alert.ogg" 10 | } 11 | 12 | -------------------------------------------------------------------------------- /Textures/Tiles/Misc/floortrap.rsi/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "license": "CC-BY-SA-3.0", 4 | "copyright": "Made by Nimfar11 (github) for ss14", 5 | "size": { 6 | "x": 32, 7 | "y": 32 8 | }, 9 | "states": [ 10 | { 11 | "name": "floortrap" 12 | }, 13 | { 14 | "name": "floortrapspawn" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /src/Components/PhysicsComponent.py: -------------------------------------------------------------------------------- 1 | from .base import Component 2 | 3 | 4 | class PhysicsComponent(Component): 5 | def __init__(self): 6 | Component.__init__(self) 7 | self.bodyStatus = "InAir" 8 | self.angularDamping = 0.05 9 | self.linearDamping = 0.05 10 | self.fixedRotation = False 11 | self.bodyType = "Dynamic" 12 | 13 | -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Grass/attributions.yml: -------------------------------------------------------------------------------- 1 | - files: ["grass.png", "triple_edge.png", "double_edge.png", "single_edge.png"] 2 | license: "CC-BY-SA-3.0" 3 | copyright: "tgstation commit 8abb19545828230d92ba18827feeb42a67a55d49. double_edge, single_edge, and triple_edge modified from grass by github user @Flareguy" 4 | source: "https://github.com/space-wizards/space-station-14/pull/27912" -------------------------------------------------------------------------------- /Textures/Tiles/Planet/dirt.rsi/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "license": "CC-BY-SA-3.0", 4 | "copyright": "https://github.com/FortunaSS13/Fortuna Fortuna commit 2a9408a47e2f83d945335e4feeeeafb552173e6f, grasslight and dirt by Peptide based on grassdark.png and dirt.", 5 | "size": { 6 | "x": 32, 7 | "y": 32 8 | }, 9 | "states": [ 10 | { 11 | "name": "dirt" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /src/Components/__init__.py: -------------------------------------------------------------------------------- 1 | import os 2 | import importlib 3 | 4 | for filename in os.listdir(os.path.dirname(__file__)): 5 | if filename.endswith(".py") and filename != "__init__.py": 6 | module_name = filename[:-3] 7 | module = importlib.import_module(f".{module_name}", package=__name__) 8 | globals().update({name: getattr(module, name) for name in dir(module) if not name.startswith('_')}) 9 | 10 | -------------------------------------------------------------------------------- /Textures/Tiles/Misc/clockwork/clockwork_lattice.rsi/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "license": "CC-BY-SA-3.0", 4 | "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/blob/99e6a1b09e800f1dd5ac6003053e0a8b05939511/icons/obj/smooth_structures/lattice_clockwork.dmi", 5 | "size": { 6 | "x": 32, 7 | "y": 32 8 | }, 9 | "states": [ 10 | { 11 | "name": "clock_lattice" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/ImageReader/selectors.py: -------------------------------------------------------------------------------- 1 | class EntitySelector: 2 | def __init__(self, protos: list[str], name: str = "", description: str = "", tileName: str = "Plating"): 3 | self.protos = protos 4 | self.name = name 5 | self.description = description 6 | self.tileName = tileName # Tile name under the entity 7 | 8 | 9 | class TileSelector: 10 | def __init__(self, tileName): 11 | self.tileName = tileName 12 | 13 | -------------------------------------------------------------------------------- /Textures/Tiles/Planet/water.rsi/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "license": "CC-BY-SA-3.0", 4 | "copyright": "https://github.com/Citadel-Station-13/Citadel-Station-13-RP/tree/2ac1c566b89a6862c46380de02700c7c0d21a10d/icons/turf", 5 | "size": { 6 | "x": 32, 7 | "y": 32 8 | }, 9 | "states": [ 10 | { 11 | "name": "shoreline_water", 12 | "delays": [ 13 | [ 14 | 0.3, 15 | 0.3, 16 | 0.3, 17 | 0.3, 18 | 0.3, 19 | 0.3, 20 | 0.3, 21 | 0.3 22 | ] 23 | ] 24 | } 25 | ] 26 | } -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | #!/bin/python3 2 | 3 | import sys 4 | 5 | from src.Tiles import TilesRefsManager 6 | from src.UI import Window 7 | from src.Config import GlobalSettings 8 | 9 | 10 | if __name__ == '__main__': 11 | if sys.version_info.major < 3: 12 | print("You need python 3+ version to run this app") 13 | sys.exit(1) 14 | 15 | settings = GlobalSettings() 16 | _tilesRefsMan = TilesRefsManager() 17 | _tilesRefsMan.getColorRefs() 18 | 19 | app = Window() 20 | app.mainloop() 21 | 22 | settings.writeConfig() 23 | print(f"Config saved to: {settings.configPath}") 24 | 25 | -------------------------------------------------------------------------------- /src/Components/MapGridComponent.py: -------------------------------------------------------------------------------- 1 | from src.GridSystem import Chunk, Tile 2 | from .base import Component 3 | 4 | 5 | class MapGridComponent(Component): 6 | def __init__(self, chunks): 7 | Component.__init__(self) 8 | self.chunks: dict[Chunk] = chunks 9 | 10 | 11 | def _serialize(self) -> dict: 12 | return { 13 | "type": type(self).__name__.replace("Component", ""), 14 | "chunks": { 15 | ind: self.chunks[ind]._serialize() 16 | for ind in self.chunks if self.chunks[ind]._filled_tiles > 0 17 | } 18 | } 19 | 20 | -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Concrete/attributions.yml: -------------------------------------------------------------------------------- 1 | - files: ["asphalt.png", "oldconcrete.png", "oldconcrete_mono.png", "oldconcrete_smooth.png"] 2 | license: "CC-BY-SA-3.0" 3 | copyright: "Taken from vgstation13, modified by EmoGarbage404 (github)" 4 | source: "https://github.com/vgstation-coders/vgstation13/commit/02b9f6894af4419c9f7e699a22c402b086d8067e" 5 | 6 | - files: ["concrete.png", "concrete_mono.png", "concrete_smooth.png", "grayconcrete.png", "grayconcrete_mono.png", "grayconcrete_smooth.png"] 7 | license: "CC-BY-NC-SA-3.0" 8 | copyright: "Taken from goonstation, modified by EmoGarbage404 (github)" 9 | source: "https://github.com/goonstation/goonstation/commit/1a76b08389014ec88f703fdb1ae916c2a6e57bd8" -------------------------------------------------------------------------------- /src/UI/loadingscreen.py: -------------------------------------------------------------------------------- 1 | import customtkinter as ctk 2 | 3 | 4 | class LoadingScreen(ctk.CTkFrame): 5 | def __init__(self, master, text="Loading..."): 6 | super().__init__(master, width=master.winfo_width(), height=master.winfo_height()) 7 | self.place(x=0, y=0) 8 | self.configure(bg_color='transparent') 9 | 10 | # Loading label 11 | self.label = ctk.CTkLabel(self, text=text, text_color="white", font=("Arial", 18)) 12 | self.label.place(relx=0.5, rely=0.4, anchor='center') 13 | self.lift() 14 | 15 | # Grab all events 16 | self.after(1, self.grab_set) 17 | 18 | 19 | def close(self): 20 | self.grab_release() 21 | self.destroy() 22 | 23 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | if ! command -v python3 &> /dev/null; then 3 | echo "ERROR: Python not installed" 4 | exit 1 5 | fi 6 | 7 | if ! command -v pacman &> /dev/null; then 8 | if ! command -v pip3 &> /dev/null; then 9 | echo "ERROR: pip not installed" 10 | exit 1 11 | fi 12 | 13 | pip install -r requirements.txt 14 | else 15 | if ! command -v yay &> /dev/null; then 16 | echo "ERROR: you are using Arch or Arch based Linux, you need to install yay to continue" 17 | exit 1 18 | fi 19 | 20 | sudo pacman -S --noconfirm python-pillow 21 | sudo pacman -S --noconfirm tk 22 | yay --noconfirm -S python-customtkinter 23 | fi 24 | 25 | echo "Installation completed successfully, to run the program run python main.py" 26 | 27 | -------------------------------------------------------------------------------- /Textures/Tiles/Misc/clockwork/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "license": "CC-BY-SA-3.0", 4 | "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/blob/cf00ca220063bedbb8838277bec32ef8ce90ede7/icons/turf/floors.dmi, item icons taken from tgstation at https://github.com/tgstation/tgstation/blob/c0f9d2e7e84856063bf2dbb93b35dc5c62cfdd5c/icons/obj/tiles.dmi", 5 | "size": { 6 | "x": 32, 7 | "y": 32 8 | }, 9 | "states": [ 10 | { 11 | "name": "clockwork_floor" 12 | }, 13 | { 14 | "name": "reebe" 15 | }, 16 | { 17 | "name": "reebemap" 18 | }, 19 | { 20 | "name": "reebespawn" 21 | }, 22 | { 23 | "name": "reebelattice" 24 | }, 25 | { 26 | "name": "reebegame" 27 | }, 28 | { 29 | "name": "clockwork_floor_filled" 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/snow_chasm.rsi/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "license": "CC0-1.0", 4 | "copyright": "Created by TheShuEd (github) for ss14", 5 | "size": { 6 | "x": 32, 7 | "y": 32 8 | }, 9 | "states": [ 10 | { 11 | "name": "full" 12 | }, 13 | { 14 | "name": "chasm0", 15 | "directions": 4 16 | }, 17 | { 18 | "name": "chasm1", 19 | "directions": 4 20 | }, 21 | { 22 | "name": "chasm2", 23 | "directions": 4 24 | }, 25 | { 26 | "name": "chasm3", 27 | "directions": 4 28 | }, 29 | { 30 | "name": "chasm4", 31 | "directions": 4 32 | }, 33 | { 34 | "name": "chasm5", 35 | "directions": 4 36 | }, 37 | { 38 | "name": "chasm6", 39 | "directions": 4 40 | }, 41 | { 42 | "name": "chasm7", 43 | "directions": 4 44 | }, 45 | { 46 | "name": "chasm" 47 | } 48 | ] 49 | } -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/chromite_chasm.rsi/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "license": "CC0-1.0", 4 | "copyright": "Created by TheShuEd (github) for ss14", 5 | "size": { 6 | "x": 32, 7 | "y": 32 8 | }, 9 | "states": [ 10 | { 11 | "name": "full" 12 | }, 13 | { 14 | "name": "chasm0", 15 | "directions": 4 16 | }, 17 | { 18 | "name": "chasm1", 19 | "directions": 4 20 | }, 21 | { 22 | "name": "chasm2", 23 | "directions": 4 24 | }, 25 | { 26 | "name": "chasm3", 27 | "directions": 4 28 | }, 29 | { 30 | "name": "chasm4", 31 | "directions": 4 32 | }, 33 | { 34 | "name": "chasm5", 35 | "directions": 4 36 | }, 37 | { 38 | "name": "chasm6", 39 | "directions": 4 40 | }, 41 | { 42 | "name": "chasm7", 43 | "directions": 4 44 | }, 45 | { 46 | "name": "chasm" 47 | } 48 | ] 49 | } -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/desert_chasm.rsi/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "license": "CC0-1.0", 4 | "copyright": "Created by TheShuEd (github) for ss14", 5 | "size": { 6 | "x": 32, 7 | "y": 32 8 | }, 9 | "states": [ 10 | { 11 | "name": "full" 12 | }, 13 | { 14 | "name": "chasm0", 15 | "directions": 4 16 | }, 17 | { 18 | "name": "chasm1", 19 | "directions": 4 20 | }, 21 | { 22 | "name": "chasm2", 23 | "directions": 4 24 | }, 25 | { 26 | "name": "chasm3", 27 | "directions": 4 28 | }, 29 | { 30 | "name": "chasm4", 31 | "directions": 4 32 | }, 33 | { 34 | "name": "chasm5", 35 | "directions": 4 36 | }, 37 | { 38 | "name": "chasm6", 39 | "directions": 4 40 | }, 41 | { 42 | "name": "chasm7", 43 | "directions": 4 44 | }, 45 | { 46 | "name": "chasm" 47 | } 48 | ] 49 | } -------------------------------------------------------------------------------- /src/Components/GridAtmosphereComponent.py: -------------------------------------------------------------------------------- 1 | from .base import Component 2 | 3 | 4 | class GridAtmosphereComponent(Component): 5 | def __init__(self, version: int = 2): 6 | Component.__init__(self) 7 | self.version = version 8 | self.data = { 9 | # tiles: {}, # TODO 10 | "uniqueMixes": [{ 11 | "volume": 2500, 12 | "temperature": 293.15, 13 | "moles": [ 14 | 21.824879, 15 | 82.10312, 16 | 0, 17 | 0, 18 | 0, 19 | 0, 20 | 0, 21 | 0, 22 | 0, 23 | 0, 24 | 0, 25 | 0, 26 | 0 27 | ]}], 28 | "chunkSize": 4 29 | } 30 | 31 | -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Desert/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "license": "CC-BY-SA-3.0", 4 | "copyright": "https://github.com/discordia-space/CEV-Eris/tree/d1b3041899a42ef1fb59cd7ad4a83a300b35638c", 5 | "size": { 6 | "x": 32, 7 | "y": 32 8 | }, 9 | "states": [ 10 | { 11 | "name": "desert" 12 | }, 13 | { 14 | "name": "desert_dug" 15 | }, 16 | { 17 | "name": "desert0" 18 | }, 19 | { 20 | "name": "desert1" 21 | }, 22 | { 23 | "name": "desert2" 24 | }, 25 | { 26 | "name": "desert3" 27 | }, 28 | { 29 | "name": "desert4" 30 | }, 31 | { 32 | "name": "lowdesert" 33 | }, 34 | { 35 | "name": "lowdesert_dug" 36 | }, 37 | { 38 | "name": "lowdesert0" 39 | }, 40 | { 41 | "name": "lowdesert1" 42 | }, 43 | { 44 | "name": "lowdesert2" 45 | }, 46 | { 47 | "name": "lowdesert3" 48 | }, 49 | { 50 | "name": "lowdesert4" 51 | } 52 | ] 53 | } -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Chasms/basalt_chasm.rsi/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "license": "CC-BY-SA-3.0", 4 | "copyright": "Taken from https://github.com/tgstation/tgstation/tree/f116442e34fe3e941a1df474bb57bb410dd177a3/icons/turf and modified", 5 | "size": { 6 | "x": 32, 7 | "y": 32 8 | }, 9 | "states": [ 10 | { 11 | "name": "full" 12 | }, 13 | { 14 | "name": "chasm0", 15 | "directions": 4 16 | }, 17 | { 18 | "name": "chasm1", 19 | "directions": 4 20 | }, 21 | { 22 | "name": "chasm2", 23 | "directions": 4 24 | }, 25 | { 26 | "name": "chasm3", 27 | "directions": 4 28 | }, 29 | { 30 | "name": "chasm4", 31 | "directions": 4 32 | }, 33 | { 34 | "name": "chasm5", 35 | "directions": 4 36 | }, 37 | { 38 | "name": "chasm6", 39 | "directions": 4 40 | }, 41 | { 42 | "name": "chasm7", 43 | "directions": 4 44 | }, 45 | { 46 | "name": "chasm" 47 | } 48 | ] 49 | } -------------------------------------------------------------------------------- /src/GridSystem/map.py: -------------------------------------------------------------------------------- 1 | from .grid import Grid 2 | from src.EntitySystem import EntitySystem 3 | from src.Tiles import TilesRefsManager 4 | 5 | 6 | class Map: 7 | def __init__(self, formatId: int = 6, postmapinit: bool = False): 8 | self.grids = {} # uid: grid 9 | self.format = formatId 10 | self.postmapinit = postmapinit 11 | 12 | self.usedTiles = ["Space"] 13 | 14 | 15 | def addGrid(self, grid: Grid) -> bool: 16 | if grid.uid not in self.grids: 17 | self.grids[grid.uid] = grid 18 | return True 19 | return False 20 | 21 | 22 | def _serialize(self): 23 | _entityMan = EntitySystem() 24 | _tilesRefsManager = TilesRefsManager() 25 | return { 26 | "meta": { 27 | "format": self.format, 28 | "postmapinit": self.postmapinit 29 | }, 30 | "tilemap": { # id: tileName 31 | _tilesRefsManager.tileRefs[tile]: tile for tile in self.usedTiles 32 | }, 33 | "entities": _entityMan._serialize() 34 | } 35 | 36 | -------------------------------------------------------------------------------- /src/EntitySystem/entity.py: -------------------------------------------------------------------------------- 1 | from src.Components import * 2 | from .EntityManager import EntitySystem 3 | 4 | 5 | class Entity: 6 | def __init__(self, proto: str, pos: list, parent: int | str, name: str, description: str = ""): 7 | _entityMan = EntitySystem() 8 | self.uid = 0 9 | self.proto = proto 10 | self.parent = parent 11 | self.components: list[Component] = [ 12 | TransformComponent(pos[0], pos[1], self.parent), 13 | MetaDataComponent(name, description) 14 | ] 15 | 16 | _entityMan.serialize_entity(self) 17 | 18 | 19 | def AddComponent(self, comp: Component) -> bool: 20 | for _comp in self.components: 21 | if type(_comp) is type(comp): 22 | return False 23 | 24 | self.components.append(comp) 25 | return True 26 | 27 | 28 | def _serialize(self) -> dict: 29 | return { 30 | "uid": self.uid, 31 | "components": [cmp for cmp in 32 | [comp._serialize() for comp in self.components] 33 | if cmp] 34 | } 35 | 36 | -------------------------------------------------------------------------------- /Textures/Tiles/Planet/basalt.rsi/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "license": "CC-BY-SA-3.0", 4 | "copyright": "https://github.com/tgstation/tgstation/tree/423404b31e36c4605faacec881b324db8997b0a6", 5 | "size": { 6 | "x": 32, 7 | "y": 32 8 | }, 9 | "states": [ 10 | { 11 | "name": "basalt1", 12 | "delays": [ 13 | [ 14 | 2, 15 | 2, 16 | 2, 17 | 2 18 | ] 19 | ] 20 | }, 21 | { 22 | "name": "basalt2", 23 | "delays": [ 24 | [ 25 | 2, 26 | 2, 27 | 2, 28 | 2 29 | ] 30 | ] 31 | }, 32 | { 33 | "name": "basalt3", 34 | "delays": [ 35 | [ 36 | 2, 37 | 2, 38 | 2, 39 | 2 40 | ] 41 | ] 42 | }, 43 | { 44 | "name": "basalt4", 45 | "delays": [ 46 | [ 47 | 2, 48 | 2, 49 | 2, 50 | 2 51 | ] 52 | ] 53 | }, 54 | { 55 | "name": "basalt5", 56 | "delays": [ 57 | [ 58 | 2, 59 | 2, 60 | 2, 61 | 2 62 | ] 63 | ] 64 | } 65 | ] 66 | } -------------------------------------------------------------------------------- /Textures/Tiles/Planet/shadowbasalt.rsi/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "license": "CC-BY-SA-3.0", 4 | "copyright": "taken from tgstation @ commit a0ca7b3f46132517f71f08bfda465667d133b5d7 and edited by TheShuEd", 5 | "size": { 6 | "x": 32, 7 | "y": 32 8 | }, 9 | "states": [ 10 | { 11 | "name": "basalt1", 12 | "delays": [ 13 | [ 14 | 2, 15 | 2, 16 | 2, 17 | 2 18 | ] 19 | ] 20 | }, 21 | { 22 | "name": "basalt2", 23 | "delays": [ 24 | [ 25 | 2, 26 | 2, 27 | 2, 28 | 2 29 | ] 30 | ] 31 | }, 32 | { 33 | "name": "basalt3", 34 | "delays": [ 35 | [ 36 | 2, 37 | 2, 38 | 2, 39 | 2 40 | ] 41 | ] 42 | }, 43 | { 44 | "name": "basalt4", 45 | "delays": [ 46 | [ 47 | 2, 48 | 2, 49 | 2, 50 | 2 51 | ] 52 | ] 53 | }, 54 | { 55 | "name": "basalt5", 56 | "delays": [ 57 | [ 58 | 2, 59 | 2, 60 | 2, 61 | 2 62 | ] 63 | ] 64 | } 65 | ] 66 | } -------------------------------------------------------------------------------- /src/Yaml/yaml.py: -------------------------------------------------------------------------------- 1 | import yaml 2 | import io 3 | 4 | def unknown_tag_constructor(loader, tag_suffix, node): 5 | if isinstance(node, yaml.ScalarNode): 6 | value = loader.construct_scalar(node) # Node 7 | elif isinstance(node, yaml.SequenceNode): 8 | value = loader.construct_sequence(node) # List 9 | elif isinstance(node, yaml.MappingNode): 10 | value = loader.construct_mapping(node) # Dict 11 | else: 12 | raise TypeError(f"Unknown node type: {type(node)}") 13 | 14 | return {tag_suffix: value} 15 | 16 | yaml.add_multi_constructor('!', unknown_tag_constructor) 17 | 18 | def yaml_read(path): 19 | try: 20 | with io.open(path, "r", encoding="utf8") as yaml_file: 21 | return yaml.load(yaml_file, Loader=yaml.FullLoader) 22 | except FileNotFoundError: 23 | with io.open(path, "w", encoding="utf8") as yaml_file: 24 | return {} 25 | 26 | 27 | def from_yaml(file, tag): 28 | yaml_data = yaml_read(file) 29 | if tag in yaml_data: 30 | return yaml_data[tag] 31 | return None 32 | 33 | 34 | def yaml_write(path, content): 35 | with io.open(path, "w", encoding="utf8") as yaml_file: 36 | yaml.dump(content, yaml_file, indent=2) 37 | 38 | -------------------------------------------------------------------------------- /src/Components/base.py: -------------------------------------------------------------------------------- 1 | class Component: 2 | def __init__(self, dontShowOnDefault: bool = False): 3 | self._dontShowOnDefault = dontShowOnDefault 4 | 5 | def _serialize(self): 6 | defaultParams = self.defaultParametrs() 7 | ret = {"type": type(self).__name__.replace("Component", "")} 8 | params = { 9 | name: self._convert(value) for name, value in vars(self).items() 10 | if (not callable(value) 11 | and not name.startswith('_') 12 | and (name not in defaultParams or value != defaultParams[name])) 13 | } 14 | if not params and self._dontShowOnDefault: return 15 | 16 | ret.update(params) 17 | return ret 18 | 19 | def _convert(self, value): 20 | if type(value) is list: 21 | return ",".join([str(i) for i in value]) 22 | return value 23 | 24 | 25 | def defaultParametrs(self) -> dict: 26 | arg_names = self.__init__.__code__.co_varnames[:self.__init__.__code__.co_argcount] 27 | defaults = self.__init__.__defaults__ or () 28 | positional_defaults = dict(zip(arg_names[-len(defaults):], defaults)) 29 | keyword_defaults = self.__init__.__kwdefaults__ or {} 30 | 31 | return {**positional_defaults, **keyword_defaults} 32 | 33 | -------------------------------------------------------------------------------- /src/UI/window.py: -------------------------------------------------------------------------------- 1 | import customtkinter as ctk 2 | 3 | from .settingsFrame import SettingsFrame 4 | from .imageFrame import ImageFrame 5 | from src.Config import * 6 | 7 | 8 | class Window(ctk.CTk): 9 | def __init__(self): 10 | super().__init__() 11 | 12 | self.title("SS14 Map Converter -- Image to YAML") 13 | self.geometry("800x600") 14 | self.minsize(800, 600) 15 | ctk.set_appearance_mode("dark") 16 | ctk.set_default_color_theme("blue") 17 | 18 | # Pages frames 19 | self.frames = { 20 | Frames.Image: ImageFrame(self), 21 | Frames.Settings: SettingsFrame(self) 22 | } 23 | 24 | # Segment button for switching pages 25 | self.segmented_button = ctk.CTkSegmentedButton(self, values=[frame.value for frame in self.frames], command=self.change_frame) 26 | self.segmented_button.pack(fill="x") 27 | 28 | # Show firt frame 29 | self.frames[Frames.Image].pack(fill="both", expand=True) 30 | 31 | 32 | def change_frame(self, value): 33 | # Delete current page 34 | [frame.pack_forget() for frame in self.frames.values() if frame.winfo_ismapped()] 35 | 36 | # Show selected frame 37 | self.frames[Frames(value)].pack(fill="both", expand=True) 38 | 39 | -------------------------------------------------------------------------------- /Textures/Tiles/SteelTileSpritingGuide.txt: -------------------------------------------------------------------------------- 1 | [ NOTE: This is not a guide for making tiles "look good" or a general spriting guide for all floor tiles, this is just for anything based off of steel tiles!] 2 | 3 | You might be looking at these tiles and going: "What the fuck? How on earth did they get anything salvagable out of the supernorn tiles!" 4 | Well, believe it or not - they've actually been resprited! Gone are the days of 80+ color potentially-jpeged-but-that's-just-a-theory-but-they-are-definitely-nearly-uneditable tiles. They now use a color palette around the size of 10, give or take a few colors from color errors. 5 | 6 | The process to make something like them is now dead-simple, and should be doable by even non-spriters if need be. 7 | 1. Lay out the base of the tile you're trying to make (look at tile-reference-sheet.png) 8 | 2. Semi-randomly (or deliberately) add imperfections, shine, noise, or whatever you need to do to make the tile sufficiently detailed 9 | 10 | For variants (the extra "copies" of the tile in the png file,) you can usually just replace the inner part of the tile sprite (NOT including the shine!) with another corner of the tile. There are some exceptions to this, like the monotile - where there is no corner to speak of (this is why they do not have variants as of writing.) 11 | For tiles that tile continuously (ie. diagonal tiles,) you'll need to be a lot more careful with variants, and will likely end up needing to manually edit them outside of just copy-pasting the inner parts of the tile. -------------------------------------------------------------------------------- /Textures/Tiles/Planet/Snow/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "size": { 4 | "x": 32, 5 | "y": 32 6 | }, 7 | "states": [ 8 | { 9 | "name": "snow" 10 | }, 11 | { 12 | "name": "snow_double_edge_south" 13 | }, 14 | { 15 | "name": "snow_double_edge_east" 16 | }, 17 | { 18 | "name": "snow_double_edge_north" 19 | }, 20 | { 21 | "name": "snow_double_edge_west" 22 | }, 23 | { 24 | "name": "snow_dug" 25 | }, 26 | { 27 | "name": "snow_dug_double_edge_south" 28 | }, 29 | { 30 | "name": "snow_dug_double_edge_east" 31 | }, 32 | { 33 | "name": "snow_dug_double_edge_north" 34 | }, 35 | { 36 | "name": "snow_dug_double_edge_west" 37 | }, 38 | { 39 | "name": "plating" 40 | }, 41 | { 42 | "name": "ice" 43 | }, 44 | { 45 | "name": "snow0" 46 | }, 47 | { 48 | "name": "snow1" 49 | }, 50 | { 51 | "name": "snow2" 52 | }, 53 | { 54 | "name": "snow3" 55 | }, 56 | { 57 | "name": "snow4" 58 | }, 59 | { 60 | "name": "snow5" 61 | }, 62 | { 63 | "name": "snow6" 64 | }, 65 | { 66 | "name": "snow7" 67 | }, 68 | { 69 | "name": "snow8" 70 | }, 71 | { 72 | "name": "snow9" 73 | }, 74 | { 75 | "name": "snow10" 76 | }, 77 | { 78 | "name": "snow11" 79 | }, 80 | { 81 | "name": "snow12" 82 | }, 83 | { 84 | "name": "permafrost" 85 | } 86 | ] 87 | } 88 | -------------------------------------------------------------------------------- /src/GridSystem/grid.py: -------------------------------------------------------------------------------- 1 | from .chunk import Chunk 2 | 3 | from src.Components import * 4 | from src.EntitySystem import Entity 5 | from math import floor 6 | 7 | 8 | class Grid(Entity): 9 | def __init__(self, Map, chunks: list[Chunk], name: str, x: float, y: float): 10 | Entity.__init__(self, proto="", pos=[x, y], parent="invalid", name=name) 11 | self.chunks = {chunk.strInd(): chunk for chunk in chunks} 12 | self.map = Map 13 | 14 | [self.AddComponent(comp) for comp in [ 15 | MapGridComponent(self.chunks), 16 | BroadphaseComponent(), 17 | PhysicsComponent(), 18 | FixturesComponent({}), 19 | GravityComponent(), 20 | DecalGridComponent(), 21 | #GridAtmosphereComponent(), 22 | OccluderTreeComponent(), 23 | ShuttleComponent(), 24 | GridPathfindingComponent(), 25 | SpreaderGridComponent(), 26 | GravityShakeComponent(10), 27 | GasTileOverlayComponent(), 28 | ]] 29 | self.map.addGrid(self) 30 | 31 | 32 | def AddChunk(self, chunk: Chunk): 33 | self.chunks[chunk.strInd()] = chunk 34 | 35 | 36 | def SetTile(self, tile, _tilesRefsMan): 37 | if tile.name not in _tilesRefsMan.tileRefs: 38 | _tilesRefsMan.tileRefs[tile.name] = len(_tilesRefsMan.tileRefs) 39 | tile.id = _tilesRefsMan.tileRefs[tile.name] 40 | 41 | ind = [floor(tile.x / 16), floor(tile.y / 16)] 42 | ind_str = f"{ind[0]},{ind[1]}" 43 | if ind_str in self.chunks: 44 | self.chunks[ind_str].setTile(tile) 45 | else: 46 | self.AddChunk(Chunk(ind)) 47 | self.chunks[ind_str].setTile(tile) 48 | 49 | if tile.name not in self.map.usedTiles: 50 | self.map.usedTiles.append(tile.name) 51 | 52 | -------------------------------------------------------------------------------- /src/ImageReader/ImageReader.py: -------------------------------------------------------------------------------- 1 | from PIL import Image 2 | from math import floor 3 | 4 | from src.GridSystem import * 5 | from src.Tiles import TilesRefsManager 6 | from src.EntitySystem import Entity 7 | from src.ColorHelper import * 8 | from .selectors import * 9 | 10 | 11 | 12 | def ConvertImageToMap(img: Image, colormap: dict): 13 | _tilesRefsMan = TilesRefsManager() 14 | 15 | pixels = img.load() 16 | width, height = img.size 17 | chunkSize = 16 18 | 19 | _map = Map() 20 | grid = Grid(_map, [], 21 | "Autogenerated grid", 22 | -(width // 2), 23 | -(height // 2) 24 | ) 25 | 26 | for x in range(width): 27 | for y in range(height): 28 | inv_y = height - y - 1 29 | if img.mode == "RGBA": 30 | color = rgbaToHex(pixels[x, y]) 31 | elif img.mode == "RGB": 32 | color = rgbToHex(pixels[x, y]) 33 | else: 34 | raise ValueError(f"Unsupported image mode: {img.mode}") 35 | selector = colormap[color] 36 | 37 | # Add tiles 38 | ind = [floor(x / chunkSize), 39 | floor(inv_y / chunkSize)] 40 | strInd = f"{ind[0]},{ind[1]}" 41 | if strInd not in grid.chunks: 42 | grid.AddChunk(Chunk(ind)) 43 | 44 | tile = Tile(x, inv_y, selector.tileName) 45 | grid.SetTile(tile, _tilesRefsMan) 46 | 47 | # Add entities 48 | if type(selector) is EntitySelector: 49 | [Entity( 50 | proto = proto, 51 | pos = [x, inv_y], 52 | parent = grid.uid, 53 | name = selector.name, 54 | description = selector.description 55 | ) for proto in selector.protos] 56 | 57 | _map.addGrid(grid) 58 | return _map 59 | 60 | -------------------------------------------------------------------------------- /src/GridSystem/chunk.py: -------------------------------------------------------------------------------- 1 | from .tile import Tile 2 | import base64 3 | 4 | 5 | class Chunk: 6 | def __init__(self, ind: list[int], version: int = 6): 7 | self.chunksize: int = 16 8 | 9 | self.ind = ind # [x, y] 10 | self.tiles = [[None for _ in range(self.chunksize)] for _ in range(self.chunksize)] 11 | self.version = version 12 | self._filled_tiles = 0 13 | 14 | for y in range(self.chunksize): 15 | for x in range(self.chunksize): 16 | self.tiles[y][x] = Tile( 17 | x= self.ind[0] * self.chunksize + x, 18 | y= self.ind[1] * self.chunksize + y, 19 | tile= "Space", 20 | tileId= 0 21 | ) 22 | 23 | 24 | def _serialize(self) -> dict: 25 | return { 26 | "ind": ",".join([str(i) for i in self.ind]), 27 | "tiles": self._serialize_tiles(), 28 | "version": self.version 29 | } 30 | 31 | 32 | def _serialize_tiles(self): 33 | barr = bytes() 34 | for y in range(self.chunksize): 35 | for x in range(self.chunksize): 36 | tile = self.tiles[y][x] 37 | barr += tile.id.to_bytes(2, byteorder='little') 38 | barr += tile.metadata.to_bytes(2, byteorder='little') 39 | barr += tile.variation.to_bytes(2, byteorder='little') 40 | return base64.b64encode(barr).decode('utf-8') 41 | 42 | 43 | def setTile(self, tile: Tile): 44 | y, x = tile.y % self.chunksize, tile.x % self.chunksize 45 | if tile.id != 0 and self.tiles[y][x].id == 0: 46 | self._filled_tiles += 1 47 | elif tile.id == 0 and self.tiles[y][x].id != 0: 48 | self._filled_tiles -= 1 49 | 50 | self.tiles[y][x] = tile 51 | 52 | 53 | def strInd(self): 54 | return f"{self.ind[0]},{self.ind[1]}" 55 | 56 | -------------------------------------------------------------------------------- /src/Config/appSettings.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | from pathlib import Path 3 | 4 | from src.Yaml import * 5 | from src.Config import getConfigPath 6 | 7 | 8 | class Selectors(Enum): 9 | Tile = "Tile" 10 | Entity = "Entity" 11 | 12 | 13 | class Frames(Enum): 14 | Settings="Settings" 15 | Image="Image" 16 | 17 | 18 | class GlobalSettings: 19 | def __new__(cls): 20 | if not hasattr(cls, 'instance'): 21 | cls.instance = super(GlobalSettings, cls).__new__(cls) 22 | cls.instance._initialized = False 23 | return cls.instance 24 | 25 | 26 | def __init__(self): 27 | if not self._initialized: 28 | self.configPath = getConfigPath()/"config.yml" 29 | self.image = None 30 | self.outPath = None 31 | self.outFileName = None 32 | self.outFileEntry = None 33 | self.colorsLimit = 256 34 | self.allowUseUnregistredTiles = True 35 | 36 | self.colorConfig = {} # color: selector 37 | 38 | self.readConfig() 39 | self._initialized = True 40 | 41 | 42 | def readConfig(self): 43 | if self.configPath.is_file(): 44 | data = yaml_read(self.configPath)["config"] 45 | 46 | if "colorsLimit" in data: 47 | self.colorsLimit = data["colorsLimit"] 48 | if "outPath" in data: 49 | self.outPath = Path(data["outPath"]) 50 | if "allowUseUnregistredTiles" in data: 51 | self.allowUseUnregistredTiles = data["allowUseUnregistredTiles"] 52 | else: 53 | self.writeConfig() 54 | 55 | 56 | def writeConfig(self): 57 | yaml_write( 58 | self.configPath, { 59 | "config": { 60 | "colorsLimit": self.colorsLimit, 61 | "outPath": str(self.outPath), 62 | "allowUseUnregistredTiles": self.allowUseUnregistredTiles 63 | }}) 64 | 65 | -------------------------------------------------------------------------------- /src/EntitySystem/EntityManager.py: -------------------------------------------------------------------------------- 1 | class EntitySystem: 2 | def __new__(cls): 3 | if not hasattr(cls, 'instance'): 4 | cls.instance = super(EntitySystem, cls).__new__(cls) 5 | cls.lastEntityUid = 1 # 0 For errors 6 | cls.entities = {} # uid: entity 7 | return cls.instance 8 | 9 | ''' 10 | :argument entity: the entity that needs to be serialized 11 | :return no return 12 | ''' 13 | def serialize_entity(self, entity) -> None: 14 | if entity not in self.entities.values(): 15 | self.entities[self.lastEntityUid] = entity 16 | entity.uid = self.lastEntityUid 17 | 18 | self.lastEntityUid += 1 19 | else: 20 | raise Exception("Entity already registered") 21 | 22 | ''' 23 | :argument entity: the entity that needs to be removed from entity system 24 | :return true if the entity has been removed 25 | ''' 26 | def clear_entity(self, entity): 27 | if entity.uid in self.entities: 28 | del self.entities[entity.uid] 29 | return True 30 | return False 31 | 32 | ''' 33 | :argument uid: the UID of the entity by which to get the entity object 34 | :return entity by id, false otherwise 35 | ''' 36 | def get_entity(self, uid: int): 37 | if uid in self.entities: 38 | return self.entities[uid] 39 | return False 40 | 41 | 42 | ''' 43 | Cleanup all serialized entities. 44 | ''' 45 | def clean(self): 46 | self.entities = {} 47 | self.lastEntityUid = 1 48 | 49 | 50 | def _serialize(self): 51 | protos = {} 52 | for entity in self.entities.values(): 53 | if entity.proto not in protos: 54 | protos[entity.proto] = [entity._serialize()] 55 | else: 56 | protos[entity.proto].append(entity._serialize()) 57 | 58 | return [{"proto": proto, 59 | "entities": [ent for ent in protos[proto]] 60 | }for proto in protos] 61 | 62 | -------------------------------------------------------------------------------- /src/UI/popup.py: -------------------------------------------------------------------------------- 1 | import customtkinter as ctk 2 | 3 | 4 | class PopupWindow(ctk.CTkToplevel): 5 | def __init__(self, master, title: str, message: str, width=300, height=150, buttlonLabel: str = "Close"): 6 | super().__init__(master) 7 | 8 | self.title(title) 9 | self.center_window(height, width) 10 | 11 | self.attributes("-topmost", True) 12 | self.resizable(False, False) 13 | 14 | # Message label 15 | self.label = ctk.CTkLabel(self, text=message, wraplength=250) 16 | self.label.pack(pady=20, padx=20) 17 | 18 | # Close buttom 19 | self.close_button = ctk.CTkButton(self, text=buttlonLabel, command=self.close_window) 20 | self.close_button.pack(pady=10) 21 | 22 | self.after(1, self.grab_set) # the window may not have time to initialise 23 | 24 | 25 | def center_window(self, height, width): 26 | self.update_idletasks() 27 | 28 | parent_x = self.master.winfo_x() 29 | parent_y = self.master.winfo_y() 30 | parent_width = self.master.winfo_width() 31 | parent_height = self.master.winfo_height() 32 | 33 | x = parent_x + (parent_width // 2) - (width // 2) 34 | y = parent_y + (parent_height // 2) - (height // 2) 35 | 36 | self.geometry(f'{width}x{height}+{x}+{y}') 37 | 38 | 39 | def close_window(self): 40 | self.grab_release() 41 | self.destroy() 42 | 43 | 44 | class ColorsWarningPopup(PopupWindow): 45 | def __init__(self, master, title: str, message: str, command, width=300, height=150, buttonLabel: str = "Convert"): 46 | super().__init__(master, title, message, width, height, buttonLabel) 47 | self.close_button.pack(pady=10, padx=10, side="right") 48 | self.command = command 49 | 50 | self.option = ctk.CTkOptionMenu(self, 51 | values=["8 bit", "4 bit", "2 bit", "1 bit"]) 52 | self.option.set("8 bit") 53 | self.option.pack(pady=10, padx=10, side="left") 54 | 55 | 56 | def close_window(self): 57 | self.grab_release() 58 | self.destroy() 59 | self.command(int(self.option.get().split(' ')[0])) 60 | 61 | -------------------------------------------------------------------------------- /Tiles/plating.yml: -------------------------------------------------------------------------------- 1 | - type: tile 2 | id: Plating 3 | name: tiles-plating 4 | sprite: /Textures/Tiles/plating.png 5 | baseTurf: Lattice 6 | isSubfloor: true 7 | footstepSounds: 8 | collection: FootstepPlating 9 | friction: 0.3 10 | heatCapacity: 10000 11 | 12 | - type: tile 13 | id: PlatingDamaged 14 | name: tiles-plating 15 | sprite: /Textures/Tiles/plating_damaged.png 16 | variants: 3 17 | placementVariants: 18 | - 1.0 19 | - 1.0 20 | - 1.0 21 | baseTurf: Lattice 22 | isSubfloor: true 23 | footstepSounds: 24 | collection: FootstepPlating 25 | friction: 0.3 26 | heatCapacity: 10000 27 | 28 | - type: tile 29 | id: PlatingAsteroid 30 | name: tiles-asteroid-plating 31 | sprite: /Textures/Tiles/Asteroid/asteroid_plating.png 32 | baseTurf: Lattice 33 | isSubfloor: true 34 | footstepSounds: 35 | collection: FootstepPlating 36 | friction: 0.3 37 | heatCapacity: 10000 38 | 39 | - type: tile 40 | id: PlatingBrass 41 | name: tiles-brass-plating 42 | sprite: /Textures/Tiles/Misc/clockwork/clockwork_floor.png 43 | baseTurf: Lattice 44 | isSubfloor: true 45 | footstepSounds: 46 | collection: FootstepPlating 47 | friction: 0.3 48 | heatCapacity: 10000 49 | 50 | - type: tile 51 | id: PlatingSnow 52 | name: tiles-snow-plating 53 | sprite: /Textures/Tiles/snow_plating.png #Not in the snow planet RSI because it doesn't have any metadata. Should probably be moved to its own folder later. 54 | baseTurf: Lattice 55 | isSubfloor: true 56 | footstepSounds: 57 | collection: FootstepPlating 58 | friction: 0.15 #a little less then actual snow 59 | heatCapacity: 10000 60 | 61 | - type: tile 62 | id: Lattice 63 | name: tiles-lattice 64 | sprite: /Textures/Tiles/lattice.png 65 | baseTurf: Space 66 | isSubfloor: true 67 | deconstructTools: [ Cutting ] 68 | weather: true 69 | footstepSounds: 70 | collection: FootstepPlating 71 | friction: 0.3 72 | isSpace: true 73 | itemDrop: PartRodMetal1 74 | heatCapacity: 10000 75 | 76 | - type: tile 77 | id: TrainLattice 78 | name: tiles-lattice-train 79 | sprite: /Textures/Tiles/latticeTrain.png 80 | baseTurf: Space 81 | isSubfloor: true 82 | deconstructTools: [ Cutting ] 83 | weather: true 84 | footstepSounds: 85 | collection: FootstepPlating 86 | friction: 0.3 87 | isSpace: true 88 | itemDrop: PartRodMetal1 89 | heatCapacity: 10000 90 | -------------------------------------------------------------------------------- /src/Tiles/tileRefManager.py: -------------------------------------------------------------------------------- 1 | from os import listdir, path 2 | from PIL import Image 3 | from pathlib import Path 4 | 5 | from src.Yaml import * 6 | from src.ColorHelper import * 7 | 8 | 9 | class TilesRefsManager: 10 | def __new__(cls): 11 | if not hasattr(cls, 'instance'): 12 | cls.instance = super(TilesRefsManager, cls).__new__(cls) 13 | cls.instance._initialized = False 14 | return cls.instance 15 | 16 | 17 | def __init__(self): 18 | if not self._initialized: 19 | self.tilesDataPath = path.dirname(__file__) + '/../../Tiles/' 20 | self.texturesPath = path.dirname(__file__) + '/../../' 21 | 22 | self.prototypes = [] 23 | self.tileRefs = {} # TileName: tileID 24 | self.colorRefs = {} # color: TileName 25 | 26 | self.getPrototypes(self.tilesDataPath) 27 | self.getTileRefs() 28 | 29 | self._initialized = True 30 | 31 | 32 | def getPrototypes(self, dirPath): 33 | for filename in listdir(dirPath): 34 | if '.yml' in filename: 35 | data = yaml_read(dirPath + filename) 36 | if type(data) is list: 37 | [self.prototypes.append(i) for i in data] 38 | else: 39 | self.prototypes.append(data) 40 | elif path.isdir(dirPath + filename): 41 | self.getPrototypes(f"{dirPath}{filename}/") 42 | 43 | 44 | def getTileRefs(self): 45 | tileRefs = {"Space": 0} # Space tile should be only 0 id 46 | 47 | for proto in self.prototypes: 48 | if (proto["type"] == "tile" 49 | and proto["id"] != "Space"): 50 | tileRefs[proto["id"]] = len(tileRefs.values()) 51 | 52 | self.tileRefs = tileRefs 53 | 54 | 55 | def getColorRefs(self): 56 | for proto in self.prototypes: 57 | if "sprite" in proto: 58 | if Path(self.texturesPath + proto["sprite"]).is_file(): 59 | image = Image.open(self.texturesPath + proto["sprite"]).convert("RGBA") 60 | colors = GetImageColormap(image, False, False) 61 | self.colorRefs[rgbaToHex(AvarageColor(colors))] = proto["id"] 62 | else: 63 | print(f"WARNING: No sprite found for the tile {proto['id']} on the path: {proto['sprite']}") 64 | -------------------------------------------------------------------------------- /src/ColorHelper/color.py: -------------------------------------------------------------------------------- 1 | import math 2 | from PIL import Image 3 | 4 | 5 | def rgbToHex(rgb: list): 6 | return '#{:02x}{:02x}{:02x}'.format(rgb[0], rgb[1], rgb[2]) 7 | 8 | 9 | def rgbaToHex(rgba): 10 | r, g, b, a = rgba 11 | return "#{:02x}{:02x}{:02x}{:02x}".format(r, g, b, int(a * 255)) 12 | 13 | 14 | def hexToRgba(hex_color): 15 | hex_color = hex_color.lstrip('#') 16 | 17 | if len(hex_color) == 6: #RRGGBB 18 | r, g, b = int(hex_color[0:2], 16), int(hex_color[2:4], 16), int(hex_color[4:6], 16) 19 | a = 255 20 | else: #RRGGBBAA 21 | r, g, b, a = int(hex_color[0:2], 16), int(hex_color[2:4], 16), int(hex_color[4:6], 16), int(hex_color[6:8], 16) 22 | 23 | return (r, g, b, a) 24 | 25 | 26 | def HEX8ToHEX6(hex8: str): 27 | if hex8.startswith("#"): return hex8[:7] 28 | return hex8[:6] 29 | 30 | 31 | def euclideanDistance(color1, color2): 32 | return math.sqrt(sum((a - b) ** 2 for a, b in zip(color1, color2))) 33 | 34 | 35 | def FindClosestColor(target_color: str, color_list: list[str]): 36 | closest_color = None 37 | min_distance = float('inf') 38 | 39 | for color in color_list: 40 | distance = euclideanDistance(hexToRgba(target_color), hexToRgba(color)) 41 | if distance < min_distance: 42 | min_distance = distance 43 | closest_color = color 44 | 45 | return closest_color 46 | 47 | 48 | def AvarageColor(colors: list[list]) -> str: 49 | rgba = [0, 0, 0, 0] 50 | 51 | for i in range(len(rgba)): 52 | rgba[i] = sum([color[i] for color in colors]) // len(colors) 53 | return rgba 54 | 55 | 56 | def GetImageColormap(image: Image, convert = True, uniqueOnly = True): 57 | if uniqueOnly: 58 | colors = set(list(image.getdata())) 59 | else: 60 | colors = list(image.getdata()) 61 | 62 | if image.mode == "RGBA": 63 | convertMethod = rgbaToHex 64 | elif image.mode == "RGB": 65 | convertMethod = rgbToHex 66 | else: 67 | raise ValueError(f"Unsupported image mode: {image.mode}") 68 | 69 | if convert: return [convertMethod(color) for color in colors] 70 | else: return colors 71 | 72 | 73 | def quantize(image: Image, colors: int): 74 | mode = image.mode 75 | 76 | if mode == "RGBA": method = 2 77 | else: method = Image.MEDIANCUT 78 | 79 | return image.quantize(colors=colors, method=method).convert(mode) 80 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SS14 Map Converter - Image to YAML 2 | 3 | ### A tool for quickly converting map drawings to YAML map format of Space Station 14. 4 | ![image](https://github.com/user-attachments/assets/2b3bf4a3-9e1a-4f86-9afa-8f214f54e113) 5 | ![image](https://github.com/user-attachments/assets/81e55a4b-b6c6-4b69-bce0-82c254763d14) 6 | ![image](https://github.com/user-attachments/assets/6b0e3c3d-31ad-435d-ad0f-626a57629f70) 7 | 8 | 9 | ## Installing 10 | To install, you must have a [python](https://www.python.org/downloads/) and [git](https://git-scm.com/downloads). 11 | ### 1. Clone this repo 12 | ```git clone https://github.com/poeMota/map-converter-ss14``` 13 | 14 | ### 2. Install dependencies 15 | - **Windows:** run `install.bat`. 16 | - **Linux:** run `bash install.sh` from terminal. 17 | 18 | Alternatively, you can manually install via terminal: 19 | - `cd map-converter-ss14` - go to the cloned folder. 20 | - `pip install -r requirements.txt` - install dependencies. 21 | 22 | ### 3. Now you can run the application 23 | ```python main.py``` 24 | 25 | 26 | # Usage 27 | The application consists of two pages 28 | 29 | ## 1. Image 30 | On this page you can: 31 | - Select an image to convert by clicking - **Choose image**. 32 | - If you select an image with more colors than **256**, a **Warning** window will appear suggesting to convert the image with fewer bits (8-bit is recommended as there are few tiles in the game and this number of colours is the most effective). 33 | - If you select **PNG** image, the transparent background will be automatically interpreted as space. 34 | - Select a folder to save the output file - **Choose output path**. 35 | - Allow or disallow the use of tiles other than those saved in the **Tiles** folder of the programme by clicking on the **Use any tiles** checkbox. 36 | - Select a name for the output file in the **text field**. 37 | - Convert the image according to the selected settings by pressing - **Convert** 38 | 39 | ## 2. Settings 40 | Once the image is loaded, this page will show options for customising each of the colors. 41 | 42 | - **Type** - here you can choose how the colour will be interpreted on the image - Tile/Object 43 | - **Tile name** - name of the tile that will be added to the map for this colour 44 | - In **Entity** mode, the tile will simply be added under it. 45 | - **Entity proto** - field that appears in Object mode, in it you should enter the names of prototypes of objects that will be added, there can be several objects, they should be separated by a space, for example "**Window Grille**" - adding windows and grilles to the tile. 46 | - **Autogenerate** - button for map art, it generates **tiles **according to color. 47 | -------------------------------------------------------------------------------- /src/UI/configRow.py: -------------------------------------------------------------------------------- 1 | import customtkinter as ctk 2 | 3 | from .optionMenu import OptionEntry 4 | from src.Config import * 5 | from src.ColorHelper import * 6 | from src.ImageReader.selectors import * 7 | from src.Tiles import TilesRefsManager 8 | 9 | 10 | class ConfigRow(ctk.CTkFrame): 11 | def __init__(self, master, color): 12 | super().__init__(master) 13 | self.color = color 14 | baseTile = "Plating" 15 | 16 | # Selectors option menu 17 | self.optionMenu = ctk.CTkOptionMenu(self, 18 | values=[Selectors.Tile.value, Selectors.Entity.value], 19 | command=lambda value: self.change_selector(value)) 20 | self.optionMenu.pack(side="left", padx=10, pady=10) 21 | self.optionMenu.set(Selectors.Tile.value) 22 | 23 | # Entity protoName selector 24 | self.entityEntry = ctk.CTkEntry(self, width=200) 25 | self.entityEntry.insert(0, "") 26 | 27 | # TileName selector 28 | self.tileEntry = OptionEntry(self, TilesRefsManager().tileRefs.keys(), width=200) 29 | self.tileEntry.pack(side="left", padx=10, pady=10) 30 | self.tileEntry.insert(0, baseTile) 31 | 32 | # Color square 33 | self.colorLabel = ctk.CTkLabel(self, width=30, height=30, text="", fg_color=color) 34 | self.colorLabel.pack(side="right", pady=10, padx=10) 35 | 36 | 37 | def change_selector(self, value: str): 38 | if value == Selectors.Entity.value: 39 | self.entityEntry.pack(side="left", padx=10, pady=10) 40 | elif value == Selectors.Tile.value: 41 | self.entityEntry.pack_forget() 42 | 43 | 44 | def setValues(self, option: Selectors = None, tile: str = None, proto: str = None, color = None): 45 | if option: 46 | self.optionMenu.set(option.value) 47 | if tile: 48 | self.tileEntry.delete(0, ctk.END) 49 | self.tileEntry.insert(0, tile) 50 | if proto: 51 | self.entityEntry.delete(0, ctk.END) 52 | self.entityEntry.insert(0, proto) 53 | if color: 54 | self.colorLabel.configure(fg_color=color) 55 | 56 | 57 | def getOutput(self): 58 | if self.optionMenu.get() == Selectors.Entity.value: 59 | if not self.entityEntry.get(): 60 | return 61 | 62 | protos = self.entityEntry.get().strip().split(' ') 63 | tile = self.tileEntry.get().strip() 64 | 65 | return EntitySelector(protos, tileName=tile) 66 | elif self.optionMenu.get() == Selectors.Tile.value: 67 | if not self.tileEntry.get(): 68 | return 69 | 70 | tile = self.tileEntry.get().strip() 71 | return TileSelector(tile) 72 | 73 | -------------------------------------------------------------------------------- /src/UI/optionMenu.py: -------------------------------------------------------------------------------- 1 | import customtkinter as ctk 2 | import tkinter as tk 3 | 4 | 5 | # FIXME - Yep, i hate frontend 6 | class OptionEntry(ctk.CTkFrame): 7 | def __init__(self, master, options, **kwargs): 8 | super().__init__(master, **kwargs) 9 | self.options = options 10 | 11 | self.entry = ctk.CTkEntry(self, width=200) 12 | self.entry.pack(fill='x') 13 | self.entry.bind("", self.update_listbox) 14 | self.entry.bind("", lambda _: self.master.focus()) 15 | self.entry.bind("", lambda _: self.listFrame.place_forget()) 16 | 17 | self.listFrame = ctk.CTkFrame(master.master, 18 | border_color="#565b5e", 19 | fg_color="#343638", 20 | border_width=2) 21 | 22 | self.listbox = HoverListbox(self.listFrame, 23 | fg="white", 24 | bg="#343638", 25 | highlightbackground="#343638", 26 | selectbackground="#565b5e", 27 | font=("Arial", 9), 28 | relief="flat", 29 | bd=0) 30 | self.listbox.bind("<>", self.on_select) 31 | 32 | self.listbox.pack(fill="both", padx=3, pady=3, expand=True) 33 | 34 | 35 | def get(self): 36 | return self.entry.get() 37 | 38 | 39 | def insert(self, index, string): 40 | self.entry.insert(index, string) 41 | 42 | 43 | def delete(self, first_index, last_index): 44 | self.entry.delete(first_index, last_index) 45 | 46 | 47 | def update_listbox(self, _): 48 | search_term = self.entry.get().lower() 49 | self.listbox.delete(0, tk.END) 50 | 51 | matching_options = [option for option in self.options if search_term in option.lower()] 52 | 53 | if matching_options: 54 | for option in matching_options: 55 | self.listbox.insert(tk.END, option) 56 | self.find_place() 57 | else: 58 | self.listFrame.place_forget() 59 | 60 | 61 | def find_place(self): 62 | win_height = self.master.master.master.winfo_height() 63 | list_height = self.listFrame.winfo_height() 64 | x = self.master.winfo_x() + self.winfo_x() 65 | y = self.master.winfo_y() + self.winfo_y() + self.entry.winfo_height() + 2 66 | 67 | if y + list_height > win_height: 68 | y = self.master.winfo_y() + self.winfo_y() - list_height - 2 69 | 70 | self.listFrame.place_configure(x=x, y=y, width=self.entry.winfo_width()) 71 | self.listFrame.lift() 72 | 73 | 74 | def on_select(self, _): 75 | selected_index = self.listbox.curselection() 76 | if selected_index: 77 | selected_option = self.listbox.get(selected_index) 78 | self.entry.delete(0, tk.END) 79 | self.entry.insert(0, selected_option) 80 | self.listFrame.place_forget() 81 | self.master.focus() 82 | 83 | 84 | class HoverListbox(tk.Listbox): 85 | def __init__(self, master=None, **kwargs): 86 | super().__init__(master, **kwargs) 87 | self.bind("", self.on_hover) 88 | self.bind("", self.on_leave) 89 | 90 | 91 | def on_hover(self, event): 92 | index = self.nearest(event.y) 93 | self.selection_clear(0, tk.END) 94 | self.selection_set(index) 95 | self.activate(index) 96 | 97 | 98 | def on_leave(self, _): 99 | self.selection_clear(0, tk.END) -------------------------------------------------------------------------------- /src/UI/settingsFrame.py: -------------------------------------------------------------------------------- 1 | import customtkinter as ctk 2 | from .configRow import ConfigRow 3 | from src.Config import * 4 | from src.ColorHelper import * 5 | from src.ImageReader.selectors import * 6 | from src.Tiles import TilesRefsManager 7 | 8 | 9 | class SettingsFrame(ctk.CTkFrame): 10 | def __new__(cls, master): 11 | if not hasattr(cls, 'instance'): 12 | cls.instance = super(SettingsFrame, cls).__new__(cls) 13 | cls.instance._initialized = False 14 | return cls.instance 15 | 16 | 17 | def __init__(self, master): 18 | if not self._initialized: 19 | super().__init__(master) 20 | self.frames: dict = {} # color: row frame 21 | 22 | self.upper_frame = ctk.CTkFrame(self) 23 | self.upper_frame.pack(fill="x", padx=20, pady=5) 24 | 25 | self.scrollable_frame = ctk.CTkScrollableFrame(self) 26 | self.scrollable_frame.pack(fill="both", expand=True, padx=20, pady=15) 27 | 28 | # Autogenerate config button 29 | self.autogen_button = ctk.CTkButton(self.upper_frame, text="Autogenerate", command=self.autogen_config) 30 | self.autogen_button.pack(side="right") 31 | 32 | # Labels 33 | self.typeLabel = ctk.CTkLabel( 34 | self.upper_frame, 35 | text="Type", 36 | fg_color="#4a4a4a", 37 | width=140) 38 | self.typeLabel.pack(side="left", padx=(25, 0)) 39 | 40 | self.tileTitle = ctk.CTkLabel( 41 | self.upper_frame, 42 | text="Title name", 43 | fg_color="#4a4a4a", 44 | width=200) 45 | self.tileTitle.pack(side="left", padx=(20, 0)) 46 | 47 | self.entityTitle = ctk.CTkLabel( 48 | self.upper_frame, 49 | text="Entity proto", 50 | fg_color="#4a4a4a", 51 | width=200) 52 | self.entityTitle.pack(side="left", padx=(21, 0)) # Pixelhunting 53 | 54 | self._initialized = True 55 | 56 | 57 | def set_options(self, colormap: list[str]): 58 | [frame.pack_forget() for frame in self.frames.values()] 59 | for color in colormap: 60 | if color[7:] != '0': 61 | row_frame = ConfigRow(self.scrollable_frame, HEX8ToHEX6(color)) 62 | row_frame.pack(fill="x", pady=5, padx=10) 63 | 64 | self.frames[color] = row_frame 65 | print(f"Settings frame has been set up for {len(colormap)} colors") 66 | 67 | 68 | def setup_colormap(self): 69 | settings = GlobalSettings() 70 | settings.colorConfig = {"#00000000": TileSelector("Space")} # For PNG's 71 | for color in self.frames: 72 | settings.colorConfig[color] = self.frames[color].getOutput() 73 | 74 | 75 | def autogen_config(self): 76 | _tilesRefsManager = TilesRefsManager() 77 | for color in self.frames: 78 | row = self.frames[color] 79 | tileColor = FindClosestColor(color, _tilesRefsManager.colorRefs.keys()) 80 | row.setValues(Selectors.Tile, tile=_tilesRefsManager.colorRefs[tileColor]) 81 | self.setup_colormap() 82 | print("Autogenerated config") 83 | 84 | 85 | def validate_config(self): 86 | _tilesRefsManager = TilesRefsManager() 87 | for row in self.frames.values(): 88 | tileName = row.tileEntry.get() 89 | if (not GlobalSettings().allowUseUnregistredTiles and 90 | tileName not in _tilesRefsManager.tileRefs): 91 | raise ValueError(f"Unknown tile: {tileName}") 92 | if (row.optionMenu.get() == Selectors.Entity.value and 93 | not row.entityEntry.get().strip()): 94 | raise ValueError(f"Empty entity proto field found") 95 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | .idea/ 4 | *.py[cod] 5 | *$py.class 6 | 7 | # C extensions 8 | *.so 9 | 10 | # Distribution / packaging 11 | .Python 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | wheels/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | cover/ 54 | 55 | # Translations 56 | *.mo 57 | *.pot 58 | 59 | # Django stuff: 60 | *.log 61 | local_settings.py 62 | db.sqlite3 63 | db.sqlite3-journal 64 | 65 | # Flask stuff: 66 | instance/ 67 | .webassets-cache 68 | 69 | # Scrapy stuff: 70 | .scrapy 71 | 72 | # Sphinx documentation 73 | docs/_build/ 74 | 75 | # PyBuilder 76 | .pybuilder/ 77 | target/ 78 | 79 | # Jupyter Notebook 80 | .ipynb_checkpoints 81 | 82 | # IPython 83 | profile_default/ 84 | ipython_config.py 85 | 86 | # pyenv 87 | # For a library or package, you might want to ignore these files since the code is 88 | # intended to run in multiple environments; otherwise, check them in: 89 | # .python-version 90 | 91 | # pipenv 92 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 93 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 94 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 95 | # install all needed dependencies. 96 | #Pipfile.lock 97 | 98 | # poetry 99 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 100 | # This is especially recommended for binary packages to ensure reproducibility, and is more 101 | # commonly ignored for libraries. 102 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 103 | #poetry.lock 104 | 105 | # pdm 106 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. 107 | #pdm.lock 108 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it 109 | # in version control. 110 | # https://pdm.fming.dev/#use-with-ide 111 | .pdm.toml 112 | 113 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm 114 | __pypackages__/ 115 | 116 | # Celery stuff 117 | celerybeat-schedule 118 | celerybeat.pid 119 | 120 | # SageMath parsed files 121 | *.sage.py 122 | 123 | # Environments 124 | .env 125 | .venv 126 | env/ 127 | venv/ 128 | ENV/ 129 | env.bak/ 130 | venv.bak/ 131 | 132 | # Spyder project settings 133 | .spyderproject 134 | .spyproject 135 | 136 | # Rope project settings 137 | .ropeproject 138 | 139 | # mkdocs documentation 140 | /site 141 | 142 | # mypy 143 | .mypy_cache/ 144 | .dmypy.json 145 | dmypy.json 146 | 147 | # Pyre type checker 148 | .pyre/ 149 | 150 | # pytype static type analyzer 151 | .pytype/ 152 | 153 | # Cython debug symbols 154 | cython_debug/ 155 | 156 | # PyCharm 157 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 158 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 159 | # and can be added to the global gitignore or merged into this file. For a more nuclear 160 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 161 | #.idea/ 162 | 163 | # Vim 164 | *~ 165 | *.swp 166 | *.swo 167 | 168 | # test 169 | .debug/ 170 | 171 | # app config 172 | .config/ 173 | 174 | -------------------------------------------------------------------------------- /Tiles/planet.yml: -------------------------------------------------------------------------------- 1 | - type: tile 2 | id: FloorPlanetDirt 3 | name: tiles-dirt-floor 4 | sprite: /Textures/Tiles/Planet/dirt.rsi/dirt.png 5 | variants: 4 6 | placementVariants: 7 | - 1.0 8 | - 1.0 9 | - 1.0 10 | - 1.0 11 | isSubfloor: true 12 | footstepSounds: 13 | collection: FootstepAsteroid 14 | heatCapacity: 10000 15 | weather: true 16 | indestructible: true 17 | 18 | # Desert 19 | - type: tile 20 | id: FloorDesert 21 | name: tiles-desert-floor 22 | sprite: /Textures/Tiles/Planet/Desert/desert.png 23 | variants: 6 24 | placementVariants: 25 | - 1.0 26 | - 1.0 27 | - 1.0 28 | - 1.0 29 | - 1.0 30 | - 1.0 31 | isSubfloor: true 32 | footstepSounds: 33 | collection: FootstepAsteroid 34 | heatCapacity: 10000 35 | weather: true 36 | indestructible: true 37 | 38 | - type: tile 39 | id: FloorLowDesert 40 | name: tiles-low-desert-floor 41 | sprite: /Textures/Tiles/Planet/Desert/low_desert.png 42 | variants: 6 43 | placementVariants: 44 | - 1.0 45 | - 1.0 46 | - 1.0 47 | - 1.0 48 | - 1.0 49 | - 1.0 50 | isSubfloor: true 51 | footstepSounds: 52 | collection: FootstepAsteroid 53 | heatCapacity: 10000 54 | weather: true 55 | indestructible: true 56 | 57 | # Grass 58 | - type: tile 59 | id: FloorPlanetGrass 60 | name: tiles-grass-planet-floor 61 | sprite: /Textures/Tiles/Planet/Grass/grass.png 62 | variants: 4 63 | placementVariants: 64 | - 1.0 65 | - 1.0 66 | - 1.0 67 | - 1.0 68 | edgeSpritePriority: 1 69 | edgeSprites: 70 | SouthEast: /Textures/Tiles/Planet/Grass/single_edge.png 71 | NorthEast: /Textures/Tiles/Planet/Grass/single_edge.png 72 | NorthWest: /Textures/Tiles/Planet/Grass/single_edge.png 73 | SouthWest: /Textures/Tiles/Planet/Grass/single_edge.png 74 | South: /Textures/Tiles/Planet/Grass/double_edge.png 75 | East: /Textures/Tiles/Planet/Grass/double_edge.png 76 | North: /Textures/Tiles/Planet/Grass/double_edge.png 77 | West: /Textures/Tiles/Planet/Grass/double_edge.png 78 | baseTurf: FloorPlanetDirt 79 | isSubfloor: true 80 | footstepSounds: 81 | collection: FootstepGrass 82 | itemDrop: FloorTileItemGrass 83 | heatCapacity: 10000 84 | weather: true 85 | indestructible: true 86 | 87 | # Lava 88 | - type: tile 89 | id: FloorBasalt 90 | name: tiles-basalt-floor 91 | sprite: /Textures/Tiles/Planet/basalt.png 92 | isSubfloor: true 93 | footstepSounds: 94 | collection: FootstepAsteroid 95 | heatCapacity: 10000 96 | weather: true 97 | indestructible: true 98 | 99 | # Snow 100 | - type: tile 101 | id: FloorSnow 102 | name: tiles-snow 103 | sprite: /Textures/Tiles/Planet/Snow/snow.png 104 | variants: 13 105 | placementVariants: 106 | - 0.8 107 | - 0.0166 108 | - 0.0166 109 | - 0.0166 110 | - 0.0166 111 | - 0.0166 112 | - 0.0166 113 | - 0.0166 114 | - 0.0166 115 | - 0.0166 116 | - 0.0166 117 | - 0.0116 118 | - 0.0116 119 | edgeSpritePriority: 2 120 | edgeSprites: 121 | South: /Textures/Tiles/Planet/Snow/snow_double_edge_south.png 122 | East: /Textures/Tiles/Planet/Snow/snow_double_edge_east.png 123 | North: /Textures/Tiles/Planet/Snow/snow_double_edge_north.png 124 | West: /Textures/Tiles/Planet/Snow/snow_double_edge_west.png 125 | isSubfloor: true 126 | footstepSounds: 127 | collection: FootstepSnow 128 | heatCapacity: 10000 129 | weather: true 130 | indestructible: true 131 | 132 | # Ice 133 | - type: tile 134 | id: FloorIce 135 | name: tiles-ice 136 | sprite: /Textures/Tiles/Planet/Snow/ice.png 137 | isSubfloor: true 138 | friction: 0.05 139 | heatCapacity: 10000 140 | weather: true 141 | mobFriction: 0.5 142 | mobFrictionNoInput: 0.05 143 | mobAcceleration: 2 144 | indestructible: true 145 | 146 | # Dug snow 147 | - type: tile 148 | id: FloorSnowDug 149 | name: tiles-snow-dug 150 | sprite: /Textures/Tiles/Planet/Snow/snow_dug.png 151 | edgeSpritePriority: 1 152 | edgeSprites: 153 | South: /Textures/Tiles/Planet/Snow/snow_dug_double_edge_south.png 154 | East: /Textures/Tiles/Planet/Snow/snow_dug_double_edge_east.png 155 | North: /Textures/Tiles/Planet/Snow/snow_dug_double_edge_north.png 156 | West: /Textures/Tiles/Planet/Snow/snow_dug_double_edge_west.png 157 | isSubfloor: true 158 | footstepSounds: 159 | collection: FootstepSnow 160 | heatCapacity: 10000 161 | weather: true 162 | indestructible: true 163 | 164 | # Wasteland 165 | -------------------------------------------------------------------------------- /Textures/Tiles/Planet/lava.rsi/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "license": "CC-BY-SA-3.0", 4 | "copyright": "Taken from https://github.com/tgstation/tgstation/tree/f116442e34fe3e941a1df474bb57bb410dd177a3/icons/turf and modified", 5 | "size": { 6 | "x": 32, 7 | "y": 32 8 | }, 9 | "states": [ 10 | { 11 | "name": "full" 12 | }, 13 | { 14 | "name": "lava0", 15 | "directions": 4, 16 | "delays": [ 17 | [ 18 | 2, 19 | 2, 20 | 2, 21 | 2 22 | ], 23 | [ 24 | 2, 25 | 2, 26 | 2, 27 | 2 28 | ], 29 | [ 30 | 2, 31 | 2, 32 | 2, 33 | 2 34 | ], 35 | [ 36 | 2, 37 | 2, 38 | 2, 39 | 2 40 | ] 41 | ] 42 | }, 43 | { 44 | "name": "lava1", 45 | "directions": 4, 46 | "delays": [ 47 | [ 48 | 2, 49 | 2, 50 | 2, 51 | 2 52 | ], 53 | [ 54 | 2, 55 | 2, 56 | 2, 57 | 2 58 | ], 59 | [ 60 | 2, 61 | 2, 62 | 2, 63 | 2 64 | ], 65 | [ 66 | 2, 67 | 2, 68 | 2, 69 | 2 70 | ] 71 | ] 72 | }, 73 | { 74 | "name": "lava2", 75 | "directions": 4, 76 | "delays": [ 77 | [ 78 | 2, 79 | 2, 80 | 2, 81 | 2 82 | ], 83 | [ 84 | 2, 85 | 2, 86 | 2, 87 | 2 88 | ], 89 | [ 90 | 2, 91 | 2, 92 | 2, 93 | 2 94 | ], 95 | [ 96 | 2, 97 | 2, 98 | 2, 99 | 2 100 | ] 101 | ] 102 | }, 103 | { 104 | "name": "lava3", 105 | "directions": 4, 106 | "delays": [ 107 | [ 108 | 2, 109 | 2, 110 | 2, 111 | 2 112 | ], 113 | [ 114 | 2, 115 | 2, 116 | 2, 117 | 2 118 | ], 119 | [ 120 | 2, 121 | 2, 122 | 2, 123 | 2 124 | ], 125 | [ 126 | 2, 127 | 2, 128 | 2, 129 | 2 130 | ] 131 | ] 132 | }, 133 | { 134 | "name": "lava4", 135 | "directions": 4, 136 | "delays": [ 137 | [ 138 | 2, 139 | 2, 140 | 2, 141 | 2 142 | ], 143 | [ 144 | 2, 145 | 2, 146 | 2, 147 | 2 148 | ], 149 | [ 150 | 2, 151 | 2, 152 | 2, 153 | 2 154 | ], 155 | [ 156 | 2, 157 | 2, 158 | 2, 159 | 2 160 | ] 161 | ] 162 | }, 163 | { 164 | "name": "lava5", 165 | "directions": 4, 166 | "delays": [ 167 | [ 168 | 2, 169 | 2, 170 | 2, 171 | 2 172 | ], 173 | [ 174 | 2, 175 | 2, 176 | 2, 177 | 2 178 | ], 179 | [ 180 | 2, 181 | 2, 182 | 2, 183 | 2 184 | ], 185 | [ 186 | 2, 187 | 2, 188 | 2, 189 | 2 190 | ] 191 | ] 192 | }, 193 | { 194 | "name": "lava6", 195 | "directions": 4, 196 | "delays": [ 197 | [ 198 | 2, 199 | 2, 200 | 2, 201 | 2 202 | ], 203 | [ 204 | 2, 205 | 2, 206 | 2, 207 | 2 208 | ], 209 | [ 210 | 2, 211 | 2, 212 | 2, 213 | 2 214 | ], 215 | [ 216 | 2, 217 | 2, 218 | 2, 219 | 2 220 | ] 221 | ] 222 | }, 223 | { 224 | "name": "lava7", 225 | "directions": 4, 226 | "delays": [ 227 | [ 228 | 2, 229 | 2, 230 | 2, 231 | 2 232 | ], 233 | [ 234 | 2, 235 | 2, 236 | 2, 237 | 2 238 | ], 239 | [ 240 | 2, 241 | 2, 242 | 2, 243 | 2 244 | ], 245 | [ 246 | 2, 247 | 2, 248 | 2, 249 | 2 250 | ] 251 | ] 252 | }, 253 | { 254 | "name": "lava", 255 | "delays": [ 256 | [ 257 | 2, 258 | 2, 259 | 2, 260 | 2 261 | ] 262 | ] 263 | } 264 | ] 265 | } -------------------------------------------------------------------------------- /Textures/Tiles/Planet/liquid_plasma.rsi/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "license": "CC-BY-SA-3.0", 4 | "copyright": "Taken from https://github.com/tgstation/tgstation/tree/f116442e34fe3e941a1df474bb57bb410dd177a3/icons/turf lava sprites, hueshifted and modified by mirrorcult", 5 | "size": { 6 | "x": 32, 7 | "y": 32 8 | }, 9 | "states": [ 10 | { 11 | "name": "full" 12 | }, 13 | { 14 | "name": "plasma0", 15 | "directions": 4, 16 | "delays": [ 17 | [ 18 | 2, 19 | 2, 20 | 2, 21 | 2 22 | ], 23 | [ 24 | 2, 25 | 2, 26 | 2, 27 | 2 28 | ], 29 | [ 30 | 2, 31 | 2, 32 | 2, 33 | 2 34 | ], 35 | [ 36 | 2, 37 | 2, 38 | 2, 39 | 2 40 | ] 41 | ] 42 | }, 43 | { 44 | "name": "plasma1", 45 | "directions": 4, 46 | "delays": [ 47 | [ 48 | 2, 49 | 2, 50 | 2, 51 | 2 52 | ], 53 | [ 54 | 2, 55 | 2, 56 | 2, 57 | 2 58 | ], 59 | [ 60 | 2, 61 | 2, 62 | 2, 63 | 2 64 | ], 65 | [ 66 | 2, 67 | 2, 68 | 2, 69 | 2 70 | ] 71 | ] 72 | }, 73 | { 74 | "name": "plasma2", 75 | "directions": 4, 76 | "delays": [ 77 | [ 78 | 2, 79 | 2, 80 | 2, 81 | 2 82 | ], 83 | [ 84 | 2, 85 | 2, 86 | 2, 87 | 2 88 | ], 89 | [ 90 | 2, 91 | 2, 92 | 2, 93 | 2 94 | ], 95 | [ 96 | 2, 97 | 2, 98 | 2, 99 | 2 100 | ] 101 | ] 102 | }, 103 | { 104 | "name": "plasma3", 105 | "directions": 4, 106 | "delays": [ 107 | [ 108 | 2, 109 | 2, 110 | 2, 111 | 2 112 | ], 113 | [ 114 | 2, 115 | 2, 116 | 2, 117 | 2 118 | ], 119 | [ 120 | 2, 121 | 2, 122 | 2, 123 | 2 124 | ], 125 | [ 126 | 2, 127 | 2, 128 | 2, 129 | 2 130 | ] 131 | ] 132 | }, 133 | { 134 | "name": "plasma4", 135 | "directions": 4, 136 | "delays": [ 137 | [ 138 | 2, 139 | 2, 140 | 2, 141 | 2 142 | ], 143 | [ 144 | 2, 145 | 2, 146 | 2, 147 | 2 148 | ], 149 | [ 150 | 2, 151 | 2, 152 | 2, 153 | 2 154 | ], 155 | [ 156 | 2, 157 | 2, 158 | 2, 159 | 2 160 | ] 161 | ] 162 | }, 163 | { 164 | "name": "plasma5", 165 | "directions": 4, 166 | "delays": [ 167 | [ 168 | 2, 169 | 2, 170 | 2, 171 | 2 172 | ], 173 | [ 174 | 2, 175 | 2, 176 | 2, 177 | 2 178 | ], 179 | [ 180 | 2, 181 | 2, 182 | 2, 183 | 2 184 | ], 185 | [ 186 | 2, 187 | 2, 188 | 2, 189 | 2 190 | ] 191 | ] 192 | }, 193 | { 194 | "name": "plasma6", 195 | "directions": 4, 196 | "delays": [ 197 | [ 198 | 2, 199 | 2, 200 | 2, 201 | 2 202 | ], 203 | [ 204 | 2, 205 | 2, 206 | 2, 207 | 2 208 | ], 209 | [ 210 | 2, 211 | 2, 212 | 2, 213 | 2 214 | ], 215 | [ 216 | 2, 217 | 2, 218 | 2, 219 | 2 220 | ] 221 | ] 222 | }, 223 | { 224 | "name": "plasma7", 225 | "directions": 4, 226 | "delays": [ 227 | [ 228 | 2, 229 | 2, 230 | 2, 231 | 2 232 | ], 233 | [ 234 | 2, 235 | 2, 236 | 2, 237 | 2 238 | ], 239 | [ 240 | 2, 241 | 2, 242 | 2, 243 | 2 244 | ], 245 | [ 246 | 2, 247 | 2, 248 | 2, 249 | 2 250 | ] 251 | ] 252 | }, 253 | { 254 | "name": "plasma", 255 | "delays": [ 256 | [ 257 | 2, 258 | 2, 259 | 2, 260 | 2 261 | ] 262 | ] 263 | } 264 | ] 265 | } 266 | -------------------------------------------------------------------------------- /src/UI/imageFrame.py: -------------------------------------------------------------------------------- 1 | import customtkinter as ctk 2 | from PIL import Image 3 | from tkinter import filedialog 4 | from pathlib import Path 5 | 6 | from src.Yaml import * 7 | from src.EntitySystem import EntitySystem 8 | from src.ImageReader import ConvertImageToMap 9 | from src.ColorHelper import * 10 | from src.Config import * 11 | from .settingsFrame import SettingsFrame 12 | from .optionMenu import OptionEntry 13 | from .popup import PopupWindow, ColorsWarningPopup 14 | 15 | 16 | class ImageFrame(ctk.CTkFrame): 17 | def __new__(cls, master): 18 | if not hasattr(cls, 'instance'): 19 | cls.instance = super(ImageFrame, cls).__new__(cls) 20 | cls.instance._initialized = False 21 | return cls.instance 22 | 23 | 24 | def __init__(self, master): 25 | if not self._initialized: 26 | super().__init__(master) 27 | settings = GlobalSettings() 28 | self.left_frame = ctk.CTkFrame(self) 29 | self.left_frame.pack(side="left", fill="both", expand=True, padx=20, pady=20) 30 | 31 | self.right_frame = ctk.CTkFrame(self) 32 | self.right_frame.pack(side="right", fill="y", padx=20, pady=20) 33 | 34 | # Image frame 35 | self.image_label = ctk.CTkLabel(self.left_frame, text="Select the image you want to convert", height=600, corner_radius=10) 36 | self.image_label.pack(fill="x") 37 | 38 | # Choose image button 39 | self.select_image_button = ctk.CTkButton(self.right_frame, text="Choose image", command=self.select_image) 40 | self.select_image_button.pack(pady=10) 41 | 42 | # Choose out path button 43 | self.output_path_button = ctk.CTkButton(self.right_frame, text="Choose output path", command=self.select_output_path) 44 | self.output_path_button.pack(pady=0) 45 | 46 | # Convert button 47 | self.convert_button = ctk.CTkButton(self.right_frame, text="Convert to map", command=self.convert_image) 48 | self.convert_button.pack(pady=10, padx=5, side="bottom") 49 | 50 | # Filename entry 51 | self.filename_entry = ctk.CTkEntry(self.right_frame) 52 | self.filename_entry.pack(pady=0, side="bottom") 53 | self.filename_entry.insert(0, "") 54 | 55 | self.filename_label = ctk.CTkLabel(self.right_frame, text="Enter out file name") 56 | self.filename_label.pack(side="bottom") 57 | 58 | # Ignore tile errors checkbox 59 | self.unregistred_tiles_checkbox = ctk.CTkCheckBox(self.right_frame, 60 | text="Allow any tiles", 61 | variable=ctk.BooleanVar(value=settings.allowUseUnregistredTiles), 62 | command=self.on_checkbox_change) 63 | self.unregistred_tiles_checkbox.pack(pady=10, padx=5, side="top") 64 | 65 | settings.outFileEntry = self.filename_entry 66 | self._initialized = True 67 | 68 | 69 | def on_checkbox_change(self): 70 | GlobalSettings().allowUseUnregistredTiles = bool(self.unregistred_tiles_checkbox.get()) 71 | 72 | 73 | def select_image(self): 74 | file_path = filedialog.askopenfilename(filetypes=[("PNG", ".png"), ("JPEG", ".jpg")]) 75 | if file_path: 76 | image = Image.open(file_path) 77 | 78 | if '.png' in file_path: 79 | image = image.convert("RGBA") 80 | imageColormap = GetImageColormap(image) 81 | else: 82 | image = image.convert("RGB") 83 | imageColormap = GetImageColormap(image, rgbToHex) 84 | 85 | if len(imageColormap) > GlobalSettings().colorsLimit: 86 | print(f"WARNING: to many colors in image - {len(imageColormap)}") 87 | ColorsWarningPopup(self, 88 | "Warning", 89 | "The image contains too many colors, the program will work unstably, it is recommended to convert the image to a format with fewer bits.", 90 | lambda value: self._select_image(quantize(image, 2**value))) 91 | else: 92 | self._select_image(image, imageColormap) 93 | print(f"Open image from {file_path}") 94 | 95 | 96 | def _select_image(self, image: Image, imageColormap = None): 97 | settings = GlobalSettings() 98 | settings.image = image 99 | 100 | if not imageColormap: 101 | imageColormap = GetImageColormap(image) 102 | 103 | width, height = image.size 104 | resize = min(self.image_label.winfo_height() / width, self.image_label.winfo_height() / height) 105 | 106 | ctk_image = ctk.CTkImage(image, size=(width * resize, height * resize)) 107 | self.image_label.configure(image=ctk_image, text="") 108 | self.image_label.image = ctk_image 109 | 110 | # Update settings frame 111 | _settingsFrame = SettingsFrame(self.master) 112 | _settingsFrame.set_options(imageColormap) 113 | 114 | 115 | def select_output_path(self): 116 | path = filedialog.askdirectory() + '/' 117 | if path: 118 | GlobalSettings().outPath = Path(path) 119 | print(f"Output path selected: {path}") 120 | 121 | 122 | def convert_image(self): 123 | settings = GlobalSettings() 124 | settings.outFileName = settings.outFileEntry.get().strip().removesuffix('.yml') + '.yml' 125 | 126 | settingsFrame = SettingsFrame(self.master) 127 | try: 128 | settingsFrame.validate_config() 129 | except ValueError as e: 130 | print(repr(e)) 131 | PopupWindow(self, "Error", "ERROR: " + str(e)) 132 | return 133 | settingsFrame.setup_colormap() 134 | 135 | if not settings.image: 136 | print("ERROR: image not selected") 137 | PopupWindow(self, "Error", "Image is not selected.") 138 | return 139 | 140 | if not settings.outPath: 141 | print("ERROR: output path not selected") 142 | PopupWindow(self, "Error", "Output folder is not selected.") 143 | return 144 | 145 | if not settings.outFileName: 146 | print("ERROR: output filename not selected") 147 | PopupWindow(self, "Error", "Name for the output file is not selected.") 148 | return 149 | 150 | _map = ConvertImageToMap(settings.image, settings.colorConfig) 151 | yaml_write(settings.outPath/settings.outFileName, _map._serialize()) 152 | 153 | print("Image converted to path: " + str(settings.outPath/settings.outFileName)) 154 | PopupWindow(self, "Done", "Image has been successfully converted \nPath: " + str(settings.outPath/settings.outFileName)) 155 | 156 | EntitySystem().clean() 157 | print("Cleanup all entities") 158 | 159 | -------------------------------------------------------------------------------- /Textures/Tiles/attributions.yml: -------------------------------------------------------------------------------- 1 | # Attempted to keep the files in alphabetical order so its easier to audit. 2 | # Finding individual authors is an unfeasible task. If you can reference the author please do so. 3 | 4 | - files: ["tech_maint.png"] 5 | license: "CC-BY-SA-3.0" 6 | copyright: "CEV-Eris commit 28e589f0ff72a009adf17db767e90be39054f0f2" 7 | source: "https://github.com/discordia-space/CEV-Eris/" 8 | 9 | - files: ["plating.png"] 10 | license: "CC-BY-SA-3.0" 11 | copyright: "Taken from CEV-Eris commit 8e74e4370f4d5885f15c3f834973b1223ddb8b1b, modified by github user @Flareguy" 12 | source: "https://github.com/discordia-space/CEV-Eris/" 13 | 14 | - files: ["plating_damaged.png", "plating_burnt.png"] 15 | license: "CC-BY-SA-3.0" 16 | copyright: "Modified by github user @Flareguy from plating.png, using damaged plating sprites from /tg/station at commit https://github.com/tgstation/tgstation/blob/6665eec76c98a4f3f89bebcd10b34b47dcc0b8ae/icons/turf/floors.dmi" 17 | source: "https://github.com/space-wizards/space-station-14/pull/21711" 18 | 19 | - files: [ "asteroid_red.png", "asteroid_tile.png", "elevator_shaft.png", "freezer.png", "foammetal.png", "green_circuit.png", "lino.png", "mono.png", "rock_vault.png", "showroom.png"] 20 | license: "CC-BY-SA-3.0" 21 | copyright: "vgstation13 at roughly commit e4d3ea7f69d21c3667be12b114fa935c4640cb05, asteroid_red and asteroid_tile taken from commit /vg/station at commit 02b9f6894af4419c9f7e699a22c402b086d8067e." 22 | source: "https://github.com/vgstation-coders/vgstation13" 23 | 24 | - files: [ "asteroid.png", "asteroid_dug.png", "asteroid0.png"] 25 | license: "CC-BY-SA-3.0" 26 | copyright: "Taken from /tg/station at commit 6665eec76c98a4f3f89bebcd10b34b47dcc0b8ae." 27 | source: "https://github.com/tgstation/tgstation/" 28 | 29 | - files: ["blue_circuit.png", "cropped_parallax.png", "eighties.png", "gold.png", "grass.png", "ironsand1.png", "ironsand2.png", "ironsand3.png", "ironsand4.png", "junglegrass.png", "lattice.png", "red_circuit.png", "reinforced.png", "silver.png", "snow.png", "wood.png"] 30 | license: "CC-BY-SA-3.0" 31 | copyright: "tgstation commit 8abb19545828230d92ba18827feeb42a67a55d49, cropped_parallax modified from parallax." 32 | source: "https://github.com/tgstation/tgstation/" 33 | 34 | - files: ["super_reinforced.png"] 35 | license: "CC-BY-SA-3.0" 36 | copyright: "Modified from reinforced.png by github user @Flareguy" 37 | source: "https://github.com/space-wizards/space-station-14/pull/18676" 38 | 39 | - files: ["asteroid_plating.png, snow_plating.png"] 40 | license: "CC-BY-SA-3.0" 41 | copyright: "Modified from plating.png by github user @Flareguy" 42 | source: "https://github.com/space-wizards/space-station-14/" 43 | 44 | - files: ["rglass.png"] 45 | license: "CC-BY-SA-3.0" 46 | copyright: "tgstation commit 8abb19545828230d92ba18827feeb42a67a55d49, rglass modified by github user @notquitehadouken." 47 | source: "https://github.com/space-wizards/space-station-14/pull/17948" 48 | 49 | - files: ["glass.png"] 50 | license: "CC0-1.0" 51 | copyright: "Created by github user @notquitehadouken." 52 | source: "https://github.com/space-wizards/space-station-14/pull/17948" 53 | 54 | - files: [ "bar.png", "lime.png", "blue.png", "kitchen.png", "laundry.png", "mime.png", "steel.png", "steel_dirty.png", "steel_diagonal.png", "steel_mini.png", "steel_offset.png", "steel_pavement.png", "white.png", "white_diagonal.png", "white_mini.png", "white_offset.png", "white_pavement.png", "dark.png", "dark_diagonal.png", "dark_mini.png", "dark_offset.png", "dark_pavement.png", "hydro.png", "plastic.png", "dark_plastic.png", "white_plastic.png", "cafeteria.png", "checker_dark.png", "clown.png" ] 55 | license: "CC-BY-SA-3.0" 56 | copyright: "Created by github user @Flareguy, original, unedited base tiles modified from /tg/station at commit 6665eec76c98a4f3f89bebcd10b34b47dcc0b8ae and github user @moonheart08" 57 | source: "https://github.com/space-wizards/space-station-14/" 58 | 59 | - files: ["arcadeblue.png", "arcadered.png"] 60 | license: "CC-BY-SA-3.0" 61 | copyright: "arcadered renamed from eightiesred, arcadeblue by Peptide90 modified from arcadered.png, tgstation commit 8abb19545828230d92ba18827feeb42a67a55d49" 62 | source: "https://github.com/tgstation/tgstation/" 63 | 64 | - files: ["hull", "hull_reinforced.png", "steel_damaged.png", "steel_burnt.png"] 65 | license: "CC-BY-SA-3.0" 66 | copyright: "Taken from /tg/station at commit 6665eec76c98a4f3f89bebcd10b34b47dcc0b8ae" 67 | source: "https://github.com/tgstation/tgstation/" 68 | 69 | - files: ["shuttleblue.png", "shuttleorange.png", "shuttlepurple.png", "shuttlered.png", "shuttlewhite.png", "shuttlegrey.png", "shuttleblack.png"] 70 | license: "CC-BY-SA-3.0" 71 | copyright: "Modified by Flareguy for Space Station 14. Unmodified sprite from paradisestation commit 69c831afcd9aef25a2889b507e4f36a3a5fc6def, originally from /VG/ eris" 72 | source: "https://github.com/ParadiseSS13/Paradise" 73 | 74 | - files: ["deprecated.png"] 75 | license: "MIT" 76 | copyright: "created by 20kdc" 77 | source: "https://github.com/ParadiseSS13/Paradise" 78 | 79 | - files: ["arcadeblue2.png", "boxing.png", "carpetclown.png", "carpetoffice.png", "gym.png", "metaldiamond.png"] 80 | license: "CC-BY-NC-SA-3.0" 81 | copyright: "by WALPVRGIS for Goonstation, taken at commit 236551b95a5b24917c72f3069223026b2dc4e690 from floors.dmi" 82 | source: "https://github.com/goonstation/goonstation" 83 | 84 | - files: ["cave.png", "cavedrought.png"] 85 | license: "CC-BY-NC-SA-3.0" 86 | copyright: "Mojave-Sun, taken at commit 0587dd16e28108bdf0b0a28e2caae4319845e861" 87 | source: "https://github.com/Mojave-Sun/mojave-sun-13" 88 | 89 | - files: ["grassdark.png", "grasslight.png", "dirt.png"] 90 | license: "CC-BY-SA-3.0" 91 | copyright: "Fortuna commit 2a9408a47e2f83d945335e4feeeeafb552173e6f, grasslight and dirt by Peptide based on grassdark.png and dirt." 92 | source: "https://github.com/FortunaSS13/Fortuna" 93 | 94 | - files: ["steel_maint.png", "grating_maint.png", "wood_tile.png"] 95 | license: "CC-BY-SA-3.0" 96 | copyright: "by brainfood for space-station-14, ." 97 | source: "https://github.com/space-wizards/space-station-14/pull/12193" 98 | 99 | - files: ["meat.png"] 100 | license: "CC0-1.0" 101 | copyright: "Created by EmoGarbage404 (github) for space-station-14." 102 | source: "https://github.com/space-wizards/space-station-14/pull/13766" 103 | 104 | - files: ["wood_broken.png"] 105 | license: "CC-BY-SA-3.0" 106 | copyright: "taken at https://github.com/ParadiseSS13/Paradise/blob/8b7f4c8b69c74c6de5a755272eb8d3520f3d87c7/icons/turf/floors.dmi" 107 | source: "https://github.com/ParadiseSS13/Paradise" 108 | 109 | - files: ["chromite.png"] 110 | license: "CC-BY-NC-SA-3.0" 111 | copyright: "taken at commit 0587dd16e28108bdf0b0a28e2caae4319845e861, and recolored by TheShuEd" 112 | source: "https://github.com/Mojave-Sun/mojave-sun-13" 113 | 114 | - files: ["mining_floor.png", "mining_floor_dark.png", "mining_floor_light.png"] 115 | license: "CC-BY-SA-3.0" 116 | copyright: "taken at https://github.com/ParadiseSS13/Paradise/commit/43889a89d5a9378fd120d627f74613edb1841a66" 117 | source: "https://github.com/ParadiseSS13/Paradise" 118 | 119 | - files: ["latticeTrain.png"] 120 | license: "CC0-1.0" 121 | copyright: "Created by TheShuEd (github) for space-station-14." 122 | source: "https://github.com/space-wizards/space-station-14/pull/24927" 123 | 124 | - files: ["wood_large.png"] 125 | license: "CC0-1.0" 126 | copyright: "Created by ps3moira (github) for space-station-14." 127 | source: "https://github.com/space-wizards/space-station-14/" 128 | -------------------------------------------------------------------------------- /Tiles/floors.yml: -------------------------------------------------------------------------------- 1 | - type: tile 2 | id: FloorSteel 3 | name: tiles-steel-floor 4 | sprite: /Textures/Tiles/steel.png 5 | variants: 4 6 | placementVariants: 7 | - 1.0 8 | - 1.0 9 | - 1.0 10 | - 1.0 11 | baseTurf: Plating 12 | isSubfloor: false 13 | deconstructTools: [ Prying ] 14 | footstepSounds: 15 | collection: FootstepFloor 16 | itemDrop: FloorTileItemSteel 17 | heatCapacity: 10000 18 | 19 | - type: tile 20 | id: FloorSteelCheckerLight 21 | name: tiles-steel-floor-checker-light 22 | sprite: /Textures/Tiles/cafeteria.png 23 | variants: 4 24 | placementVariants: 25 | - 1.0 26 | - 1.0 27 | - 1.0 28 | - 1.0 29 | baseTurf: Plating 30 | isSubfloor: false 31 | deconstructTools: [ Prying ] 32 | footstepSounds: 33 | collection: FootstepFloor 34 | itemDrop: FloorTileItemSteelCheckerLight 35 | heatCapacity: 10000 36 | 37 | - type: tile 38 | id: FloorSteelCheckerDark 39 | name: tiles-steel-floor-checker-dark 40 | sprite: /Textures/Tiles/checker_dark.png 41 | variants: 4 42 | placementVariants: 43 | - 1.0 44 | - 1.0 45 | - 1.0 46 | - 1.0 47 | baseTurf: Plating 48 | isSubfloor: false 49 | deconstructTools: [ Prying ] 50 | footstepSounds: 51 | collection: FootstepFloor 52 | itemDrop: FloorTileItemSteelCheckerDark 53 | heatCapacity: 10000 54 | 55 | - type: tile 56 | id: FloorSteelMini 57 | name: tiles-steel-floor-mini 58 | sprite: /Textures/Tiles/steel_mini.png 59 | variants: 4 60 | placementVariants: 61 | - 1.0 62 | - 1.0 63 | - 1.0 64 | - 1.0 65 | baseTurf: Plating 66 | isSubfloor: false 67 | deconstructTools: [ Prying ] 68 | footstepSounds: 69 | collection: FootstepFloor 70 | itemDrop: FloorTileItemSteelMini 71 | heatCapacity: 10000 72 | 73 | - type: tile 74 | id: FloorSteelPavement 75 | name: tiles-steel-floor-pavement 76 | sprite: /Textures/Tiles/steel_pavement.png 77 | variants: 4 78 | placementVariants: 79 | - 1.0 80 | - 1.0 81 | - 1.0 82 | - 1.0 83 | baseTurf: Plating 84 | isSubfloor: false 85 | deconstructTools: [ Prying ] 86 | footstepSounds: 87 | collection: FootstepFloor 88 | itemDrop: FloorTileItemSteelPavement 89 | heatCapacity: 10000 90 | 91 | - type: tile 92 | id: FloorSteelDiagonal 93 | name: tiles-steel-floor-diagonal 94 | sprite: /Textures/Tiles/steel_diagonal.png 95 | variants: 4 96 | placementVariants: 97 | - 1.0 98 | - 1.0 99 | - 1.0 100 | - 1.0 101 | baseTurf: Plating 102 | isSubfloor: false 103 | deconstructTools: [ Prying ] 104 | footstepSounds: 105 | collection: FootstepFloor 106 | itemDrop: FloorTileItemSteelDiagonal 107 | heatCapacity: 10000 108 | 109 | - type: tile 110 | id: FloorSteelOffset 111 | name: tiles-steel-floor-offset 112 | sprite: /Textures/Tiles/steel_offset.png 113 | baseTurf: Plating 114 | isSubfloor: false 115 | deconstructTools: [ Prying ] 116 | footstepSounds: 117 | collection: FootstepFloor 118 | itemDrop: FloorTileItemSteelOffset 119 | heatCapacity: 10000 120 | 121 | - type: tile 122 | id: FloorSteelMono 123 | name: tiles-steel-floor-mono 124 | sprite: /Textures/Tiles/steel_mono.png 125 | variants: 4 126 | placementVariants: 127 | - 1.0 128 | - 1.0 129 | - 1.0 130 | - 1.0 131 | baseTurf: Plating 132 | isSubfloor: false 133 | deconstructTools: [ Prying ] 134 | footstepSounds: 135 | collection: FootstepTile 136 | itemDrop: FloorTileItemSteelMono 137 | heatCapacity: 10000 138 | 139 | - type: tile 140 | id: FloorSteelPavementVertical 141 | name: tiles-steel-floor-pavement-vertical 142 | sprite: /Textures/Tiles/steel_pavement_vertical.png 143 | variants: 4 144 | placementVariants: 145 | - 1.0 146 | - 1.0 147 | - 1.0 148 | - 1.0 149 | baseTurf: Plating 150 | isSubfloor: false 151 | deconstructTools: [ Prying ] 152 | footstepSounds: 153 | collection: FootstepTile 154 | itemDrop: FloorTileItemSteelPavementVertical 155 | heatCapacity: 10000 156 | 157 | - type: tile 158 | id: FloorSteelHerringbone 159 | name: tiles-steel-floor-herringbone 160 | sprite: /Textures/Tiles/steel_herringbone.png 161 | variants: 4 162 | placementVariants: 163 | - 1.0 164 | - 1.0 165 | - 1.0 166 | - 1.0 167 | baseTurf: Plating 168 | isSubfloor: false 169 | deconstructTools: [ Prying ] 170 | footstepSounds: 171 | collection: FootstepTile 172 | itemDrop: FloorTileItemSteelHerringbone 173 | heatCapacity: 10000 174 | 175 | - type: tile 176 | id: FloorSteelDiagonalMini 177 | name: tiles-steel-floor-diagonal-mini 178 | sprite: /Textures/Tiles/steel_diagonal_mini.png 179 | variants: 4 180 | placementVariants: 181 | - 1.0 182 | - 1.0 183 | - 1.0 184 | - 1.0 185 | baseTurf: Plating 186 | isSubfloor: false 187 | deconstructTools: [ Prying ] 188 | footstepSounds: 189 | collection: FootstepTile 190 | itemDrop: FloorTileItemSteelDiagonalMini 191 | heatCapacity: 10000 192 | 193 | - type: tile 194 | id: FloorBrassFilled 195 | name: tiles-brass-floor-filled 196 | sprite: /Textures/Tiles/Misc/clockwork/clockwork_floor_filled.png 197 | baseTurf: PlatingBrass 198 | isSubfloor: false 199 | deconstructTools: [ Prying ] 200 | footstepSounds: 201 | collection: FootstepHull 202 | itemDrop: FloorTileItemBrassFilled 203 | heatCapacity: 10000 204 | 205 | - type: tile 206 | id: FloorBrassReebe 207 | name: tiles-brass-floor-reebe 208 | sprite: /Textures/Tiles/Misc/clockwork/reebe.png 209 | baseTurf: PlatingBrass 210 | isSubfloor: false 211 | deconstructTools: [ Prying ] 212 | footstepSounds: 213 | collection: FootstepHull 214 | itemDrop: FloorTileItemBrassReebe 215 | heatCapacity: 10000 216 | 217 | - type: tile 218 | id: FloorPlastic 219 | name: tiles-plastic-floor 220 | sprite: /Textures/Tiles/plastic.png 221 | variants: 4 222 | placementVariants: 223 | - 1.0 224 | - 1.0 225 | - 1.0 226 | - 1.0 227 | baseTurf: Plating 228 | isSubfloor: false 229 | deconstructTools: [ Prying ] 230 | footstepSounds: 231 | collection: FootstepFloor 232 | itemDrop: FloorTileItemSteel 233 | heatCapacity: 10000 234 | 235 | - type: tile 236 | id: FloorWood 237 | name: tiles-wood 238 | sprite: /Textures/Tiles/wood.png 239 | variants: 4 240 | placementVariants: 241 | - 1.0 242 | - 1.0 243 | - 1.0 244 | - 1.0 245 | baseTurf: Plating 246 | isSubfloor: false 247 | deconstructTools: [ Prying ] 248 | footstepSounds: 249 | collection: FootstepWood 250 | barestepSounds: 251 | collection: BarestepWood 252 | itemDrop: FloorTileItemWood 253 | heatCapacity: 10000 254 | 255 | - type: tile 256 | id: FloorWhite 257 | name: tiles-white-floor 258 | sprite: /Textures/Tiles/white.png 259 | variants: 4 260 | placementVariants: 261 | - 1.0 262 | - 1.0 263 | - 1.0 264 | - 1.0 265 | baseTurf: Plating 266 | isSubfloor: false 267 | deconstructTools: [ Prying ] 268 | footstepSounds: 269 | collection: FootstepTile 270 | itemDrop: FloorTileItemWhite 271 | heatCapacity: 10000 272 | 273 | - type: tile 274 | id: FloorWhiteMini 275 | name: tiles-white-floor-mini 276 | sprite: /Textures/Tiles/white_mini.png 277 | variants: 4 278 | placementVariants: 279 | - 1.0 280 | - 1.0 281 | - 1.0 282 | - 1.0 283 | baseTurf: Plating 284 | isSubfloor: false 285 | deconstructTools: [ Prying ] 286 | footstepSounds: 287 | collection: FootstepTile 288 | itemDrop: FloorTileItemWhiteMini 289 | heatCapacity: 10000 290 | 291 | - type: tile 292 | id: FloorWhitePavement 293 | name: tiles-white-floor-pavement 294 | sprite: /Textures/Tiles/white_pavement.png 295 | variants: 4 296 | placementVariants: 297 | - 1.0 298 | - 1.0 299 | - 1.0 300 | - 1.0 301 | baseTurf: Plating 302 | isSubfloor: false 303 | deconstructTools: [ Prying ] 304 | footstepSounds: 305 | collection: FootstepTile 306 | itemDrop: FloorTileItemWhitePavement 307 | heatCapacity: 10000 308 | 309 | - type: tile 310 | id: FloorWhiteDiagonal 311 | name: tiles-white-floor-diagonal 312 | sprite: /Textures/Tiles/white_diagonal.png 313 | variants: 4 314 | placementVariants: 315 | - 1.0 316 | - 1.0 317 | - 1.0 318 | - 1.0 319 | baseTurf: Plating 320 | isSubfloor: false 321 | deconstructTools: [ Prying ] 322 | footstepSounds: 323 | collection: FootstepTile 324 | itemDrop: FloorTileItemWhiteDiagonal 325 | heatCapacity: 10000 326 | 327 | - type: tile 328 | id: FloorWhiteOffset 329 | name: tiles-white-floor-offset 330 | sprite: /Textures/Tiles/white_offset.png 331 | baseTurf: Plating 332 | isSubfloor: false 333 | deconstructTools: [ Prying ] 334 | footstepSounds: 335 | collection: FootstepTile 336 | itemDrop: FloorTileItemWhiteOffset 337 | heatCapacity: 10000 338 | 339 | - type: tile 340 | id: FloorWhiteMono 341 | name: tiles-white-floor-mono 342 | sprite: /Textures/Tiles/white_mono.png 343 | variants: 4 344 | placementVariants: 345 | - 1.0 346 | - 1.0 347 | - 1.0 348 | - 1.0 349 | baseTurf: Plating 350 | isSubfloor: false 351 | deconstructTools: [ Prying ] 352 | footstepSounds: 353 | collection: FootstepTile 354 | itemDrop: FloorTileItemWhiteMono 355 | heatCapacity: 10000 356 | 357 | - type: tile 358 | id: FloorWhitePavementVertical 359 | name: tiles-white-floor-pavement-vertical 360 | sprite: /Textures/Tiles/white_pavement_vertical.png 361 | variants: 4 362 | placementVariants: 363 | - 1.0 364 | - 1.0 365 | - 1.0 366 | - 1.0 367 | baseTurf: Plating 368 | isSubfloor: false 369 | deconstructTools: [ Prying ] 370 | footstepSounds: 371 | collection: FootstepTile 372 | itemDrop: FloorTileItemWhitePavementVertical 373 | heatCapacity: 10000 374 | 375 | - type: tile 376 | id: FloorWhiteHerringbone 377 | name: tiles-white-floor-herringbone 378 | sprite: /Textures/Tiles/white_herringbone.png 379 | variants: 4 380 | placementVariants: 381 | - 1.0 382 | - 1.0 383 | - 1.0 384 | - 1.0 385 | baseTurf: Plating 386 | isSubfloor: false 387 | deconstructTools: [ Prying ] 388 | footstepSounds: 389 | collection: FootstepTile 390 | itemDrop: FloorTileItemWhiteHerringbone 391 | heatCapacity: 10000 392 | 393 | - type: tile 394 | id: FloorWhiteDiagonalMini 395 | name: tiles-white-floor-diagonal-mini 396 | sprite: /Textures/Tiles/white_diagonal_mini.png 397 | variants: 4 398 | placementVariants: 399 | - 1.0 400 | - 1.0 401 | - 1.0 402 | - 1.0 403 | baseTurf: Plating 404 | isSubfloor: false 405 | deconstructTools: [ Prying ] 406 | footstepSounds: 407 | collection: FootstepTile 408 | itemDrop: FloorTileItemWhiteDiagonalMini 409 | heatCapacity: 10000 410 | 411 | - type: tile 412 | id: FloorWhitePlastic 413 | name: tiles-plastic-white-floor 414 | sprite: /Textures/Tiles/white_plastic.png 415 | variants: 4 416 | placementVariants: 417 | - 1.0 418 | - 1.0 419 | - 1.0 420 | - 1.0 421 | baseTurf: Plating 422 | isSubfloor: false 423 | deconstructTools: [ Prying ] 424 | footstepSounds: 425 | collection: FootstepTile 426 | itemDrop: FloorTileItemWhite 427 | heatCapacity: 10000 428 | 429 | - type: tile 430 | id: FloorDark 431 | name: tiles-dark-floor 432 | sprite: /Textures/Tiles/dark.png 433 | variants: 4 434 | placementVariants: 435 | - 1.0 436 | - 1.0 437 | - 1.0 438 | - 1.0 439 | baseTurf: Plating 440 | isSubfloor: false 441 | deconstructTools: [ Prying ] 442 | footstepSounds: 443 | collection: FootstepTile 444 | itemDrop: FloorTileItemDark 445 | heatCapacity: 10000 446 | 447 | - type: tile 448 | id: FloorDarkMini 449 | name: tiles-dark-floor-mini 450 | sprite: /Textures/Tiles/dark_mini.png 451 | variants: 4 452 | placementVariants: 453 | - 1.0 454 | - 1.0 455 | - 1.0 456 | - 1.0 457 | baseTurf: Plating 458 | isSubfloor: false 459 | deconstructTools: [ Prying ] 460 | footstepSounds: 461 | collection: FootstepTile 462 | itemDrop: FloorTileItemDarkMini 463 | heatCapacity: 10000 464 | 465 | - type: tile 466 | id: FloorDarkPavement 467 | name: tiles-dark-floor-pavement 468 | sprite: /Textures/Tiles/dark_pavement.png 469 | variants: 4 470 | placementVariants: 471 | - 1.0 472 | - 1.0 473 | - 1.0 474 | - 1.0 475 | baseTurf: Plating 476 | isSubfloor: false 477 | deconstructTools: [ Prying ] 478 | footstepSounds: 479 | collection: FootstepTile 480 | itemDrop: FloorTileItemDarkPavement 481 | heatCapacity: 10000 482 | 483 | - type: tile 484 | id: FloorDarkDiagonal 485 | name: tiles-dark-floor-diagonal 486 | sprite: /Textures/Tiles/dark_diagonal.png 487 | variants: 4 488 | placementVariants: 489 | - 1.0 490 | - 1.0 491 | - 1.0 492 | - 1.0 493 | baseTurf: Plating 494 | isSubfloor: false 495 | deconstructTools: [ Prying ] 496 | footstepSounds: 497 | collection: FootstepTile 498 | itemDrop: FloorTileItemDarkDiagonal 499 | heatCapacity: 10000 500 | 501 | - type: tile 502 | id: FloorDarkOffset 503 | name: tiles-dark-floor-offset 504 | sprite: /Textures/Tiles/dark_offset.png 505 | baseTurf: Plating 506 | isSubfloor: false 507 | deconstructTools: [ Prying ] 508 | footstepSounds: 509 | collection: FootstepTile 510 | itemDrop: FloorTileItemDarkOffset 511 | heatCapacity: 10000 512 | 513 | - type: tile 514 | id: FloorDarkMono 515 | name: tiles-dark-floor-mono 516 | sprite: /Textures/Tiles/dark_mono.png 517 | variants: 4 518 | placementVariants: 519 | - 1.0 520 | - 1.0 521 | - 1.0 522 | - 1.0 523 | baseTurf: Plating 524 | isSubfloor: false 525 | deconstructTools: [ Prying ] 526 | footstepSounds: 527 | collection: FootstepTile 528 | itemDrop: FloorTileItemDarkMono 529 | heatCapacity: 10000 530 | 531 | - type: tile 532 | id: FloorDarkPavementVertical 533 | name: tiles-dark-floor-pavement-vertical 534 | sprite: /Textures/Tiles/dark_pavement_vertical.png 535 | variants: 4 536 | placementVariants: 537 | - 1.0 538 | - 1.0 539 | - 1.0 540 | - 1.0 541 | baseTurf: Plating 542 | isSubfloor: false 543 | deconstructTools: [ Prying ] 544 | footstepSounds: 545 | collection: FootstepTile 546 | itemDrop: FloorTileItemDarkPavementVertical 547 | heatCapacity: 10000 548 | 549 | - type: tile 550 | id: FloorDarkHerringbone 551 | name: tiles-dark-floor-herringbone 552 | sprite: /Textures/Tiles/dark_herringbone.png 553 | variants: 4 554 | placementVariants: 555 | - 1.0 556 | - 1.0 557 | - 1.0 558 | - 1.0 559 | baseTurf: Plating 560 | isSubfloor: false 561 | deconstructTools: [ Prying ] 562 | footstepSounds: 563 | collection: FootstepTile 564 | itemDrop: FloorTileItemDarkHerringbone 565 | heatCapacity: 10000 566 | 567 | - type: tile 568 | id: FloorDarkDiagonalMini 569 | name: tiles-dark-floor-diagonal-mini 570 | sprite: /Textures/Tiles/dark_diagonal_mini.png 571 | variants: 4 572 | placementVariants: 573 | - 1.0 574 | - 1.0 575 | - 1.0 576 | - 1.0 577 | baseTurf: Plating 578 | isSubfloor: false 579 | deconstructTools: [ Prying ] 580 | footstepSounds: 581 | collection: FootstepTile 582 | itemDrop: FloorTileItemDarkDiagonalMini 583 | heatCapacity: 10000 584 | 585 | - type: tile 586 | id: FloorDarkPlastic 587 | name: tiles-plastic-dark-floor 588 | sprite: /Textures/Tiles/dark_plastic.png 589 | variants: 4 590 | placementVariants: 591 | - 1.0 592 | - 1.0 593 | - 1.0 594 | - 1.0 595 | baseTurf: Plating 596 | isSubfloor: false 597 | deconstructTools: [ Prying ] 598 | footstepSounds: 599 | collection: FootstepTile 600 | itemDrop: FloorTileItemDark 601 | heatCapacity: 10000 602 | 603 | - type: tile 604 | id: FloorTechMaint 605 | name: tiles-techmaint-floor 606 | sprite: /Textures/Tiles/tech_maint.png 607 | baseTurf: Plating 608 | isSubfloor: false 609 | deconstructTools: [ Prying ] 610 | footstepSounds: 611 | collection: FootstepHull 612 | itemDrop: FloorTileItemTechmaint 613 | heatCapacity: 10000 614 | 615 | - type: tile 616 | id: FloorReinforced 617 | name: tiles-reinforced-floor 618 | sprite: /Textures/Tiles/reinforced.png 619 | baseTurf: Plating 620 | isSubfloor: false 621 | deconstructTools: [ Prying ] 622 | footstepSounds: 623 | collection: FootstepHull 624 | itemDrop: PartRodMetal1 625 | heatCapacity: 10000 626 | 627 | - type: tile 628 | id: FloorMono 629 | name: tiles-mono-floor 630 | sprite: /Textures/Tiles/mono.png 631 | baseTurf: Plating 632 | isSubfloor: false 633 | deconstructTools: [ Prying ] 634 | footstepSounds: 635 | collection: FootstepTile 636 | itemDrop: FloorTileItemMono 637 | heatCapacity: 10000 638 | 639 | - type: tile 640 | id: FloorLino 641 | name: tiles-linoleum-floor 642 | sprite: /Textures/Tiles/lino.png 643 | baseTurf: Plating 644 | isSubfloor: false 645 | deconstructTools: [ Prying ] 646 | footstepSounds: 647 | collection: FootstepTile 648 | itemDrop: FloorTileItemLino 649 | heatCapacity: 10000 650 | 651 | - type: tile 652 | id: FloorSteelDirty 653 | name: tiles-dirty-steel-floor 654 | sprite: /Textures/Tiles/steel_dirty.png 655 | baseTurf: Plating 656 | isSubfloor: false 657 | deconstructTools: [ Prying ] 658 | footstepSounds: 659 | collection: FootstepPlating 660 | itemDrop: FloorTileItemDirty 661 | heatCapacity: 10000 662 | 663 | - type: tile 664 | id: FloorElevatorShaft 665 | name: tiles-elevator-shaft 666 | sprite: /Textures/Tiles/elevator_shaft.png 667 | baseTurf: Plating 668 | isSubfloor: false 669 | deconstructTools: [ Prying ] 670 | footstepSounds: 671 | collection: FootstepHull 672 | itemDrop: FloorTileItemElevatorShaft 673 | heatCapacity: 10000 674 | 675 | - type: tile 676 | id: FloorMetalDiamond 677 | name: tiles-diamond-plate-floor 678 | sprite: /Textures/Tiles/metaldiamond.png 679 | baseTurf: Plating 680 | isSubfloor: false 681 | deconstructTools: [ Prying ] 682 | footstepSounds: 683 | collection: FootstepHull 684 | itemDrop: FloorTileItemMetalDiamond 685 | heatCapacity: 10000 686 | 687 | - type: tile 688 | id: FloorRockVault 689 | name: tiles-rock-floor 690 | sprite: /Textures/Tiles/rock_vault.png 691 | baseTurf: Plating 692 | isSubfloor: false 693 | deconstructTools: [ Prying ] 694 | footstepSounds: 695 | collection: FootstepAsteroid 696 | itemDrop: FloorTileItemRockVault 697 | heatCapacity: 10000 698 | 699 | - type: tile 700 | id: FloorBlue 701 | name: tiles-blue-tile 702 | sprite: /Textures/Tiles/blue.png 703 | baseTurf: Plating 704 | isSubfloor: false 705 | deconstructTools: [ Prying ] 706 | footstepSounds: 707 | collection: FootstepTile 708 | itemDrop: FloorTileItemBlue 709 | heatCapacity: 10000 710 | 711 | - type: tile 712 | id: FloorSteelLime 713 | name: tiles-lime-floor 714 | sprite: /Textures/Tiles/lime.png 715 | variants: 4 716 | placementVariants: 717 | - 1.0 718 | - 1.0 719 | - 1.0 720 | - 1.0 721 | baseTurf: Plating 722 | isSubfloor: false 723 | deconstructTools: [ Prying ] 724 | footstepSounds: 725 | collection: FootstepFloor 726 | itemDrop: FloorTileItemLime 727 | heatCapacity: 10000 728 | 729 | - type: tile 730 | id: FloorMining 731 | name: tiles-mining-tile 732 | sprite: /Textures/Tiles/mining_floor.png 733 | baseTurf: Plating 734 | isSubfloor: false 735 | deconstructTools: [ Prying ] 736 | footstepSounds: 737 | collection: FootstepTile 738 | itemDrop: FloorTileItemMining 739 | heatCapacity: 10000 740 | 741 | - type: tile 742 | id: FloorMiningDark 743 | name: tiles-mining-dark-tile 744 | sprite: /Textures/Tiles/mining_floor_dark.png 745 | baseTurf: Plating 746 | isSubfloor: false 747 | deconstructTools: [ Prying ] 748 | footstepSounds: 749 | collection: FootstepTile 750 | itemDrop: FloorTileItemMiningDark 751 | heatCapacity: 10000 752 | 753 | - type: tile 754 | id: FloorMiningLight 755 | name: tiles-mining-light-tile 756 | sprite: /Textures/Tiles/mining_floor_light.png 757 | baseTurf: Plating 758 | isSubfloor: false 759 | deconstructTools: [ Prying ] 760 | footstepSounds: 761 | collection: FootstepTile 762 | itemDrop: FloorTileItemMiningLight 763 | heatCapacity: 10000 764 | 765 | # Departamental 766 | - type: tile 767 | id: FloorFreezer 768 | name: tiles-freezer 769 | sprite: /Textures/Tiles/freezer.png 770 | baseTurf: Plating 771 | isSubfloor: false 772 | deconstructTools: [ Prying ] 773 | footstepSounds: 774 | collection: FootstepHull 775 | itemDrop: FloorTileItemFreezer 776 | heatCapacity: 10000 777 | 778 | - type: tile 779 | id: FloorShowroom 780 | name: tiles-showroom-floor 781 | sprite: /Textures/Tiles/showroom.png 782 | baseTurf: Plating 783 | isSubfloor: false 784 | deconstructTools: [ Prying ] 785 | footstepSounds: 786 | collection: FootstepFloor 787 | itemDrop: FloorTileItemShowroom 788 | heatCapacity: 10000 789 | 790 | - type: tile 791 | id: FloorHydro 792 | name: tiles-hydro-floor 793 | sprite: /Textures/Tiles/hydro.png 794 | baseTurf: Plating 795 | isSubfloor: false 796 | deconstructTools: [ Prying ] 797 | footstepSounds: 798 | collection: FootstepFloor 799 | itemDrop: FloorTileItemHydro 800 | heatCapacity: 10000 801 | 802 | - type: tile 803 | id: FloorBar 804 | name: tiles-bar-floor 805 | sprite: /Textures/Tiles/bar.png 806 | variants: 4 807 | placementVariants: 808 | - 1.0 809 | - 1.0 810 | - 1.0 811 | - 1.0 812 | baseTurf: Plating 813 | isSubfloor: false 814 | deconstructTools: [ Prying ] 815 | footstepSounds: 816 | collection: FootstepFloor 817 | itemDrop: FloorTileItemBar 818 | heatCapacity: 10000 819 | 820 | - type: tile 821 | id: FloorClown 822 | name: tiles-clown-floor 823 | sprite: /Textures/Tiles/clown.png 824 | baseTurf: Plating 825 | isSubfloor: false 826 | deconstructTools: [ Prying ] 827 | footstepSounds: 828 | collection: FootstepFloor 829 | itemDrop: FloorTileItemClown 830 | heatCapacity: 10000 831 | 832 | - type: tile 833 | id: FloorMime 834 | name: tiles-mime-floor 835 | sprite: /Textures/Tiles/mime.png 836 | baseTurf: Plating 837 | isSubfloor: false 838 | deconstructTools: [ Prying ] 839 | footstepSounds: 840 | collection: FootstepFloor 841 | itemDrop: FloorTileItemMime 842 | heatCapacity: 10000 843 | 844 | - type: tile 845 | id: FloorKitchen 846 | name: tiles-kitchen-floor 847 | sprite: /Textures/Tiles/kitchen.png 848 | baseTurf: Plating 849 | isSubfloor: false 850 | deconstructTools: [ Prying ] 851 | footstepSounds: 852 | collection: FootstepTile 853 | itemDrop: FloorTileItemKitchen 854 | heatCapacity: 10000 855 | 856 | - type: tile 857 | id: FloorLaundry 858 | name: tiles-laundry-floor 859 | sprite: /Textures/Tiles/laundry.png 860 | baseTurf: Plating 861 | isSubfloor: false 862 | deconstructTools: [ Prying ] 863 | footstepSounds: 864 | collection: FootstepTile 865 | itemDrop: FloorTileItemLaundry 866 | heatCapacity: 10000 867 | 868 | - type: tile 869 | id: FloorSteelDamaged 870 | name: tiles-steel-floor 871 | sprite: /Textures/Tiles/steel_damaged.png 872 | variants: 5 873 | placementVariants: 874 | - 1.0 875 | - 1.0 876 | - 1.0 877 | - 1.0 878 | - 1.0 879 | baseTurf: Plating 880 | isSubfloor: false 881 | deconstructTools: [ Prying ] 882 | footstepSounds: 883 | collection: FootstepFloor 884 | itemDrop: FloorTileItemSteel #This should probably be made null when it becomes possible to make it such, in SS13 prying destroyed tiles wouldn't give you anything. 885 | heatCapacity: 10000 886 | 887 | # Concrete 888 | - type: tile 889 | id: FloorConcrete 890 | name: tiles-concrete-tile 891 | sprite: /Textures/Tiles/Planet/Concrete/concrete.png 892 | variants: 4 893 | placementVariants: 894 | - 1.0 895 | - 1.0 896 | - 1.0 897 | - 1.0 898 | baseTurf: Plating 899 | isSubfloor: false 900 | deconstructTools: [ Prying ] 901 | footstepSounds: 902 | collection: FootstepTile 903 | itemDrop: FloorTileItemConcrete 904 | heatCapacity: 10000 905 | 906 | - type: tile 907 | id: FloorConcreteMono 908 | name: tiles-concrete-slab 909 | sprite: /Textures/Tiles/Planet/Concrete/concrete_mono.png 910 | variants: 4 911 | placementVariants: 912 | - 1.0 913 | - 1.0 914 | - 1.0 915 | - 1.0 916 | baseTurf: Plating 917 | isSubfloor: false 918 | deconstructTools: [ Prying ] 919 | footstepSounds: 920 | collection: FootstepTile 921 | itemDrop: FloorTileItemConcreteMono 922 | heatCapacity: 10000 923 | 924 | - type: tile 925 | id: FloorConcreteSmooth 926 | name: tiles-concrete-smooth 927 | sprite: /Textures/Tiles/Planet/Concrete/concrete_smooth.png 928 | variants: 4 929 | placementVariants: 930 | - 1.0 931 | - 1.0 932 | - 1.0 933 | - 1.0 934 | baseTurf: Plating 935 | isSubfloor: false 936 | deconstructTools: [ Prying ] 937 | footstepSounds: 938 | collection: FootstepTile 939 | itemDrop: FloorTileItemConcreteSmooth 940 | heatCapacity: 10000 941 | 942 | - type: tile 943 | id: FloorGrayConcrete 944 | name: tiles-gray-concrete-tile 945 | sprite: /Textures/Tiles/Planet/Concrete/grayconcrete.png 946 | variants: 4 947 | placementVariants: 948 | - 1.0 949 | - 1.0 950 | - 1.0 951 | - 1.0 952 | baseTurf: Plating 953 | isSubfloor: false 954 | deconstructTools: [ Prying ] 955 | footstepSounds: 956 | collection: FootstepTile 957 | itemDrop: FloorTileItemGrayConcrete 958 | heatCapacity: 10000 959 | 960 | - type: tile 961 | id: FloorGrayConcreteMono 962 | name: tiles-gray-concrete-slab 963 | sprite: /Textures/Tiles/Planet/Concrete/grayconcrete_mono.png 964 | variants: 4 965 | placementVariants: 966 | - 1.0 967 | - 1.0 968 | - 1.0 969 | - 1.0 970 | baseTurf: Plating 971 | isSubfloor: false 972 | deconstructTools: [ Prying ] 973 | footstepSounds: 974 | collection: FootstepTile 975 | itemDrop: FloorTileItemGrayConcreteMono 976 | heatCapacity: 10000 977 | 978 | - type: tile 979 | id: FloorGrayConcreteSmooth 980 | name: tiles-gray-concrete-smooth 981 | sprite: /Textures/Tiles/Planet/Concrete/grayconcrete_smooth.png 982 | variants: 4 983 | placementVariants: 984 | - 1.0 985 | - 1.0 986 | - 1.0 987 | - 1.0 988 | baseTurf: Plating 989 | isSubfloor: false 990 | deconstructTools: [ Prying ] 991 | footstepSounds: 992 | collection: FootstepTile 993 | itemDrop: FloorTileItemGrayConcreteSmooth 994 | heatCapacity: 10000 995 | 996 | - type: tile 997 | id: FloorOldConcrete 998 | name: tiles-old-concrete-tile 999 | sprite: /Textures/Tiles/Planet/Concrete/oldconcrete.png 1000 | variants: 4 1001 | placementVariants: 1002 | - 1.0 1003 | - 1.0 1004 | - 1.0 1005 | - 1.0 1006 | baseTurf: Plating 1007 | isSubfloor: false 1008 | deconstructTools: [ Prying ] 1009 | footstepSounds: 1010 | collection: FootstepTile 1011 | itemDrop: FloorTileItemOldConcrete 1012 | heatCapacity: 10000 1013 | 1014 | - type: tile 1015 | id: FloorOldConcreteMono 1016 | name: tiles-old-concrete-slab 1017 | sprite: /Textures/Tiles/Planet/Concrete/oldconcrete_mono.png 1018 | variants: 4 1019 | placementVariants: 1020 | - 1.0 1021 | - 1.0 1022 | - 1.0 1023 | - 1.0 1024 | baseTurf: Plating 1025 | isSubfloor: false 1026 | deconstructTools: [ Prying ] 1027 | footstepSounds: 1028 | collection: FootstepTile 1029 | itemDrop: FloorTileItemOldConcreteMono 1030 | heatCapacity: 10000 1031 | 1032 | - type: tile 1033 | id: FloorOldConcreteSmooth 1034 | name: tiles-old-concrete-smooth 1035 | sprite: /Textures/Tiles/Planet/Concrete/oldconcrete_smooth.png 1036 | variants: 4 1037 | placementVariants: 1038 | - 1.0 1039 | - 1.0 1040 | - 1.0 1041 | - 1.0 1042 | baseTurf: Plating 1043 | isSubfloor: false 1044 | deconstructTools: [ Prying ] 1045 | footstepSounds: 1046 | collection: FootstepTile 1047 | itemDrop: FloorTileItemOldConcreteSmooth 1048 | heatCapacity: 10000 1049 | 1050 | # Carpets (non smoothing) 1051 | - type: tile 1052 | id: FloorArcadeBlue 1053 | name: tiles-blue-arcade-floor 1054 | sprite: /Textures/Tiles/arcadeblue.png 1055 | baseTurf: Plating 1056 | isSubfloor: false 1057 | deconstructTools: [ Prying ] 1058 | footstepSounds: 1059 | collection: FootstepCarpet 1060 | barestepSounds: 1061 | collection: BarestepCarpet 1062 | friction: 0.25 1063 | itemDrop: FloorTileItemArcadeBlue 1064 | heatCapacity: 10000 1065 | 1066 | - type: tile 1067 | id: FloorArcadeBlue2 1068 | name: tiles-blue-arcade-floor 1069 | sprite: /Textures/Tiles/arcadeblue2.png 1070 | baseTurf: Plating 1071 | isSubfloor: false 1072 | deconstructTools: [ Prying ] 1073 | footstepSounds: 1074 | collection: FootstepCarpet 1075 | barestepSounds: 1076 | collection: BarestepCarpet 1077 | friction: 0.25 1078 | itemDrop: FloorTileItemArcadeBlue2 1079 | heatCapacity: 10000 1080 | 1081 | - type: tile 1082 | id: FloorArcadeRed 1083 | name: tiles-red-arcade-floor 1084 | sprite: /Textures/Tiles/arcadered.png 1085 | baseTurf: Plating 1086 | isSubfloor: false 1087 | deconstructTools: [ Prying ] 1088 | footstepSounds: 1089 | collection: FootstepCarpet 1090 | barestepSounds: 1091 | collection: BarestepCarpet 1092 | friction: 0.25 1093 | itemDrop: FloorTileItemArcadeRed 1094 | heatCapacity: 10000 1095 | 1096 | - type: tile 1097 | id: FloorEighties 1098 | name: tiles-eighties-floor 1099 | sprite: /Textures/Tiles/eighties.png 1100 | baseTurf: Plating 1101 | isSubfloor: false 1102 | deconstructTools: [ Prying ] 1103 | footstepSounds: 1104 | collection: FootstepCarpet 1105 | barestepSounds: 1106 | collection: BarestepCarpet 1107 | friction: 0.25 1108 | itemDrop: FloorTileItemEighties 1109 | heatCapacity: 10000 1110 | 1111 | - type: tile 1112 | id: FloorCarpetClown 1113 | name: tiles-clown-carpet-floor 1114 | sprite: /Textures/Tiles/carpetclown.png 1115 | baseTurf: Plating 1116 | isSubfloor: false 1117 | deconstructTools: [ Prying ] 1118 | footstepSounds: 1119 | collection: FootstepCarpet 1120 | barestepSounds: 1121 | collection: BarestepCarpet 1122 | friction: 0.25 1123 | itemDrop: FloorTileItemCarpetClown 1124 | heatCapacity: 10000 1125 | 1126 | - type: tile 1127 | id: FloorCarpetOffice 1128 | name: tiles-office-carpet-floor 1129 | sprite: /Textures/Tiles/carpetoffice.png 1130 | baseTurf: Plating 1131 | isSubfloor: false 1132 | deconstructTools: [ Prying ] 1133 | footstepSounds: 1134 | collection: FootstepCarpet 1135 | barestepSounds: 1136 | collection: BarestepCarpet 1137 | friction: 0.25 1138 | itemDrop: FloorTileItemCarpetOffice 1139 | heatCapacity: 10000 1140 | 1141 | - type: tile 1142 | id: FloorBoxing 1143 | name: tiles-boxing-ring-floor 1144 | sprite: /Textures/Tiles/boxing.png 1145 | variants: 4 1146 | placementVariants: 1147 | - 1.0 1148 | - 1.0 1149 | - 1.0 1150 | - 1.0 1151 | baseTurf: Plating 1152 | isSubfloor: false 1153 | deconstructTools: [ Prying ] 1154 | footstepSounds: 1155 | collection: FootstepFloor 1156 | friction: 0.25 1157 | itemDrop: FloorTileItemBoxing 1158 | heatCapacity: 10000 1159 | 1160 | - type: tile 1161 | id: FloorGym 1162 | name: tiles-gym-floor 1163 | sprite: /Textures/Tiles/gym.png 1164 | variants: 4 1165 | placementVariants: 1166 | - 1.0 1167 | - 1.0 1168 | - 1.0 1169 | - 1.0 1170 | baseTurf: Plating 1171 | isSubfloor: false 1172 | deconstructTools: [ Prying ] 1173 | footstepSounds: 1174 | collection: FootstepFloor 1175 | friction: 0.25 1176 | itemDrop: FloorTileItemGym 1177 | heatCapacity: 10000 1178 | 1179 | # Shuttle 1180 | - type: tile 1181 | id: FloorShuttleWhite 1182 | name: tiles-white-shuttle-floor 1183 | sprite: /Textures/Tiles/shuttlewhite.png 1184 | variants: 4 1185 | placementVariants: 1186 | - 1.0 1187 | - 1.0 1188 | - 1.0 1189 | - 1.0 1190 | baseTurf: Plating 1191 | isSubfloor: false 1192 | deconstructTools: [ Prying ] 1193 | footstepSounds: 1194 | collection: FootstepFloor 1195 | itemDrop: FloorTileItemShuttleWhite 1196 | heatCapacity: 10000 1197 | 1198 | - type: tile 1199 | id: FloorShuttleGrey 1200 | name: tiles-grey-shuttle-floor 1201 | sprite: /Textures/Tiles/shuttlegrey.png 1202 | variants: 4 1203 | placementVariants: 1204 | - 1.0 1205 | - 1.0 1206 | - 1.0 1207 | - 1.0 1208 | baseTurf: Plating 1209 | isSubfloor: false 1210 | deconstructTools: [ Prying ] 1211 | footstepSounds: 1212 | collection: FootstepFloor 1213 | itemDrop: FloorTileItemShuttleGrey 1214 | heatCapacity: 10000 1215 | 1216 | - type: tile 1217 | id: FloorShuttleBlack 1218 | name: tiles-black-shuttle-floor 1219 | sprite: /Textures/Tiles/shuttleblack.png 1220 | variants: 4 1221 | placementVariants: 1222 | - 1.0 1223 | - 1.0 1224 | - 1.0 1225 | - 1.0 1226 | baseTurf: Plating 1227 | isSubfloor: false 1228 | deconstructTools: [ Prying ] 1229 | footstepSounds: 1230 | collection: FootstepFloor 1231 | itemDrop: FloorTileItemShuttleBlack 1232 | heatCapacity: 10000 1233 | 1234 | - type: tile 1235 | id: FloorShuttleBlue 1236 | name: tiles-blue-shuttle-floor 1237 | sprite: /Textures/Tiles/shuttleblue.png 1238 | variants: 4 1239 | placementVariants: 1240 | - 1.0 1241 | - 1.0 1242 | - 1.0 1243 | - 1.0 1244 | baseTurf: Plating 1245 | isSubfloor: false 1246 | deconstructTools: [ Prying ] 1247 | footstepSounds: 1248 | collection: FootstepFloor 1249 | itemDrop: FloorTileItemShuttleBlue 1250 | heatCapacity: 10000 1251 | 1252 | - type: tile 1253 | id: FloorShuttleOrange 1254 | name: tiles-orange-shuttle-floor 1255 | sprite: /Textures/Tiles/shuttleorange.png 1256 | variants: 4 1257 | placementVariants: 1258 | - 1.0 1259 | - 1.0 1260 | - 1.0 1261 | - 1.0 1262 | baseTurf: Plating 1263 | isSubfloor: false 1264 | deconstructTools: [ Prying ] 1265 | footstepSounds: 1266 | collection: FootstepFloor 1267 | itemDrop: FloorTileItemShuttleOrange 1268 | heatCapacity: 10000 1269 | 1270 | - type: tile 1271 | id: FloorShuttlePurple 1272 | name: tiles-purple-shuttle-floor 1273 | sprite: /Textures/Tiles/shuttlepurple.png 1274 | variants: 4 1275 | placementVariants: 1276 | - 1.0 1277 | - 1.0 1278 | - 1.0 1279 | - 1.0 1280 | baseTurf: Plating 1281 | isSubfloor: false 1282 | deconstructTools: [ Prying ] 1283 | footstepSounds: 1284 | collection: FootstepFloor 1285 | itemDrop: FloorTileItemShuttlePurple 1286 | heatCapacity: 10000 1287 | 1288 | - type: tile 1289 | id: FloorShuttleRed 1290 | name: tiles-red-shuttle-floor 1291 | sprite: /Textures/Tiles/shuttlered.png 1292 | variants: 4 1293 | placementVariants: 1294 | - 1.0 1295 | - 1.0 1296 | - 1.0 1297 | - 1.0 1298 | baseTurf: Plating 1299 | isSubfloor: false 1300 | deconstructTools: [ Prying ] 1301 | footstepSounds: 1302 | collection: FootstepFloor 1303 | itemDrop: FloorTileItemShuttleRed 1304 | heatCapacity: 10000 1305 | 1306 | 1307 | # Materials 1308 | - type: tile 1309 | id: FloorGold 1310 | name: tiles-gold-tile 1311 | sprite: /Textures/Tiles/gold.png 1312 | baseTurf: Plating 1313 | isSubfloor: false 1314 | deconstructTools: [ Prying ] 1315 | footstepSounds: 1316 | collection: FootstepTile 1317 | itemDrop: FloorTileItemGold 1318 | heatCapacity: 10000 1319 | 1320 | - type: tile 1321 | id: FloorSilver 1322 | name: tiles-silver-tile 1323 | sprite: /Textures/Tiles/silver.png 1324 | baseTurf: Plating 1325 | isSubfloor: false 1326 | deconstructTools: [ Prying ] 1327 | footstepSounds: 1328 | collection: FootstepTile 1329 | itemDrop: FloorTileItemSilver 1330 | heatCapacity: 10000 1331 | 1332 | - type: tile 1333 | id: FloorGlass 1334 | name: tiles-glass-floor 1335 | sprite: /Textures/Tiles/glass.png 1336 | variants: 4 1337 | placementVariants: 1338 | - 1.0 1339 | - 1.0 1340 | - 1.0 1341 | - 1.0 1342 | baseTurf: Plating 1343 | isSubfloor: false 1344 | deconstructTools: [ Prying ] 1345 | footstepSounds: 1346 | collection: FootstepTile 1347 | itemDrop: SheetGlass1 1348 | heatCapacity: 10000 1349 | 1350 | - type: tile 1351 | id: FloorRGlass 1352 | name: tiles-reinforced-glass-floor 1353 | sprite: /Textures/Tiles/rglass.png 1354 | variants: 4 1355 | placementVariants: 1356 | - 1.0 1357 | - 1.0 1358 | - 1.0 1359 | - 1.0 1360 | baseTurf: Plating 1361 | isSubfloor: false 1362 | deconstructTools: [ Prying ] 1363 | footstepSounds: 1364 | collection: FootstepTile 1365 | itemDrop: SheetRGlass1 1366 | heatCapacity: 10000 1367 | 1368 | - type: tile 1369 | id: FloorMetalFoam 1370 | name: tiles-metal-foam 1371 | sprite: /Textures/Tiles/foammetal.png 1372 | variants: 1 1373 | placementVariants: 1374 | - 1.0 1375 | baseTurf: Plating 1376 | isSubfloor: false 1377 | deconstructTools: [ Prying ] 1378 | footstepSounds: 1379 | collection: FootstepHull 1380 | itemDrop: SheetSteel1 1381 | heatCapacity: 10000 1382 | 1383 | # Circuits 1384 | - type: tile 1385 | id: FloorGreenCircuit 1386 | name: tiles-green-circuit-floor 1387 | sprite: /Textures/Tiles/green_circuit.png 1388 | baseTurf: Plating 1389 | isSubfloor: false 1390 | deconstructTools: [ Prying ] 1391 | footstepSounds: 1392 | collection: FootstepHull 1393 | itemDrop: FloorTileItemGCircuit 1394 | heatCapacity: 10000 1395 | 1396 | - type: tile 1397 | id: FloorBlueCircuit 1398 | name: tiles-blue-circuit-floor 1399 | sprite: /Textures/Tiles/blue_circuit.png 1400 | baseTurf: Plating 1401 | isSubfloor: false 1402 | deconstructTools: [ Prying ] 1403 | footstepSounds: 1404 | collection: FootstepHull 1405 | itemDrop: FloorTileItemBCircuit 1406 | heatCapacity: 10000 1407 | 1408 | - type: tile 1409 | id: FloorRedCircuit 1410 | name: tiles-red-circuit-floor 1411 | sprite: /Textures/Tiles/red_circuit.png 1412 | baseTurf: Plating 1413 | isSubfloor: false 1414 | deconstructTools: [ Prying ] 1415 | footstepSounds: 1416 | collection: FootstepHull 1417 | itemDrop: FloorTileItemRCircuit 1418 | heatCapacity: 10000 1419 | 1420 | # Terrain 1421 | - type: tile 1422 | id: FloorAsphalt 1423 | name: tiles-asphalt 1424 | sprite: /Textures/Tiles/Planet/Concrete/asphalt.png 1425 | variants: 10 1426 | placementVariants: 1427 | - 1.0 1428 | - 1.0 1429 | - 1.0 1430 | - 1.0 1431 | - 1.0 1432 | - 1.0 1433 | - 1.0 1434 | - 1.0 1435 | - 1.0 1436 | - 1.0 1437 | baseTurf: FloorDirt 1438 | isSubfloor: true 1439 | footstepSounds: 1440 | collection: FootstepTile 1441 | heatCapacity: 10000 1442 | weather: true 1443 | 1444 | - type: tile 1445 | id: FloorGrass 1446 | name: tiles-planet-grass-floor 1447 | sprite: /Textures/Tiles/grass.png 1448 | baseTurf: FloorDirt 1449 | isSubfloor: true 1450 | footstepSounds: 1451 | collection: FootstepGrass 1452 | itemDrop: FloorTileItemGrass 1453 | heatCapacity: 10000 1454 | weather: true 1455 | 1456 | - type: tile 1457 | id: FloorGrassJungle 1458 | name: tiles-jungle-grass-floor 1459 | sprite: /Textures/Tiles/grassjungle.png 1460 | baseTurf: FloorDirt 1461 | isSubfloor: true 1462 | footstepSounds: 1463 | collection: FootstepGrass 1464 | itemDrop: FloorTileItemGrassJungle 1465 | heatCapacity: 10000 1466 | weather: true 1467 | 1468 | - type: tile 1469 | id: FloorGrassDark 1470 | name: tiles-dark-grass-floor 1471 | sprite: /Textures/Tiles/grassdark.png 1472 | variants: 4 1473 | placementVariants: 1474 | - 1.0 1475 | - 1.0 1476 | - 1.0 1477 | - 1.0 1478 | baseTurf: FloorDirt 1479 | isSubfloor: true 1480 | footstepSounds: 1481 | collection: FootstepGrass 1482 | heatCapacity: 10000 1483 | weather: true 1484 | 1485 | - type: tile 1486 | id: FloorGrassLight 1487 | name: tiles-light-grass-floor 1488 | sprite: /Textures/Tiles/grasslight.png 1489 | variants: 4 1490 | placementVariants: 1491 | - 1.0 1492 | - 1.0 1493 | - 1.0 1494 | - 1.0 1495 | baseTurf: FloorDirt 1496 | isSubfloor: true 1497 | footstepSounds: 1498 | collection: FootstepGrass 1499 | heatCapacity: 10000 1500 | weather: true 1501 | 1502 | - type: tile 1503 | id: FloorDirt 1504 | name: tiles-dirt-floor 1505 | sprite: /Textures/Tiles/dirt.png 1506 | variants: 4 1507 | placementVariants: 1508 | - 1.0 1509 | - 1.0 1510 | - 1.0 1511 | - 1.0 1512 | baseTurf: Plating 1513 | isSubfloor: true 1514 | footstepSounds: 1515 | collection: FootstepAsteroid 1516 | heatCapacity: 10000 1517 | weather: true 1518 | 1519 | # Asteroid 1520 | 1521 | - type: tile 1522 | id: FloorAsteroidSand 1523 | name: tiles-asteroid-sand 1524 | sprite: /Textures/Tiles/Asteroid/asteroid.png 1525 | variants: 13 1526 | placementVariants: 1527 | - 0.8 1528 | - 0.0166 #Should be roughly 20%.... I think??? I don't know dude, I'm just a YAML monkey. 1529 | - 0.0166 1530 | - 0.0166 1531 | - 0.0166 1532 | - 0.0166 1533 | - 0.0166 1534 | - 0.0166 1535 | - 0.0166 1536 | - 0.0166 1537 | - 0.0166 1538 | - 0.0116 1539 | - 0.0116 1540 | baseTurf: Space 1541 | isSubfloor: true 1542 | footstepSounds: 1543 | collection: FootstepAsteroid 1544 | heatCapacity: 10000 1545 | weather: true 1546 | 1547 | - type: tile 1548 | id: FloorAsteroidSandDug 1549 | name: tiles-asteroid-sand 1550 | sprite: /Textures/Tiles/Asteroid/asteroid_dug.png 1551 | baseTurf: Space 1552 | isSubfloor: true 1553 | footstepSounds: 1554 | collection: FootstepAsteroid 1555 | heatCapacity: 10000 1556 | weather: true 1557 | 1558 | - type: tile 1559 | id: FloorAsteroidSandRed 1560 | name: tiles-asteroid-sand 1561 | sprite: /Textures/Tiles/Asteroid/asteroid_red.png 1562 | variants: 13 1563 | placementVariants: 1564 | - 0.8 1565 | - 0.0166 1566 | - 0.0166 1567 | - 0.0166 1568 | - 0.0166 1569 | - 0.0166 1570 | - 0.0166 1571 | - 0.0166 1572 | - 0.0166 1573 | - 0.0166 1574 | - 0.0166 1575 | - 0.0116 1576 | - 0.0116 1577 | baseTurf: Space 1578 | isSubfloor: true 1579 | footstepSounds: 1580 | collection: FootstepAsteroid 1581 | heatCapacity: 10000 1582 | weather: true 1583 | 1584 | - type: tile 1585 | id: FloorAsteroidTile 1586 | name: tiles-asteroid-tile 1587 | sprite: /Textures/Tiles/Asteroid/asteroid_tile.png 1588 | baseTurf: Plating 1589 | isSubfloor: false 1590 | deconstructTools: [ Prying ] 1591 | footstepSounds: 1592 | collection: FootstepAsteroid 1593 | heatCapacity: 10000 1594 | weather: true 1595 | 1596 | - type: tile 1597 | id: FloorAsteroidIronsand 1598 | name: tiles-asteroid-ironsand 1599 | sprite: /Textures/Tiles/Asteroid/ironsand.png 1600 | variants: 15 1601 | placementVariants: 1602 | - 1.0 1603 | - 1.0 1604 | - 1.0 1605 | - 1.0 1606 | - 1.0 1607 | - 1.0 1608 | - 1.0 1609 | - 1.0 1610 | - 1.0 1611 | - 1.0 1612 | - 1.0 1613 | - 1.0 1614 | - 1.0 1615 | - 1.0 1616 | - 1.0 1617 | baseTurf: Space 1618 | isSubfloor: true 1619 | footstepSounds: 1620 | collection: FootstepAsteroid 1621 | heatCapacity: 10000 1622 | weather: true 1623 | 1624 | - type: tile 1625 | id: FloorAsteroidSandUnvariantized 1626 | name: tiles-asteroid-sand 1627 | sprite: /Textures/Tiles/Asteroid/asteroid0.png 1628 | baseTurf: Space 1629 | isSubfloor: true 1630 | footstepSounds: 1631 | collection: FootstepAsteroid 1632 | heatCapacity: 10000 1633 | weather: true 1634 | 1635 | - type: tile 1636 | id: FloorAsteroidIronsandUnvariantized 1637 | name: tiles-asteroid-ironsand 1638 | sprite: /Textures/Tiles/Asteroid/ironsand0.png 1639 | baseTurf: Space 1640 | isSubfloor: true 1641 | footstepSounds: 1642 | collection: FootstepAsteroid 1643 | heatCapacity: 10000 1644 | weather: true 1645 | 1646 | # Caves 1647 | - type: tile 1648 | id: FloorCave 1649 | name: tiles-cave 1650 | sprite: /Textures/Tiles/cave.png 1651 | variants: 7 1652 | placementVariants: 1653 | - 1.0 1654 | - 1.0 1655 | - 1.0 1656 | - 1.0 1657 | - 1.0 1658 | - 1.0 1659 | - 1.0 1660 | baseTurf: Space 1661 | isSubfloor: true 1662 | footstepSounds: 1663 | collection: FootstepAsteroid 1664 | heatCapacity: 10000 1665 | 1666 | - type: tile 1667 | id: FloorCaveDrought 1668 | name: tiles-cave-drought 1669 | sprite: /Textures/Tiles/cavedrought.png 1670 | variants: 8 1671 | placementVariants: 1672 | - 1.0 1673 | - 1.0 1674 | - 1.0 1675 | - 1.0 1676 | - 1.0 1677 | - 1.0 1678 | - 1.0 1679 | - 1.0 1680 | baseTurf: Space 1681 | isSubfloor: true 1682 | footstepSounds: 1683 | collection: FootstepAsteroid 1684 | heatCapacity: 10000 1685 | 1686 | - type: tile 1687 | id: FloorFlesh 1688 | name: tiles-flesh-floor 1689 | sprite: /Textures/Tiles/meat.png 1690 | variants: 4 1691 | placementVariants: 1692 | - 1.0 1693 | - 1.0 1694 | - 1.0 1695 | - 1.0 1696 | baseTurf: Plating 1697 | isSubfloor: false 1698 | deconstructTools: [ Prying ] 1699 | footstepSounds: 1700 | collection: FootstepBlood 1701 | itemDrop: FloorTileItemFlesh 1702 | friction: 0.05 #slippy 1703 | heatCapacity: 10000 1704 | 1705 | - type: tile 1706 | id: FloorTechMaint2 1707 | name: tiles-techmaint2-floor 1708 | sprite: /Textures/Tiles/steel_maint.png 1709 | baseTurf: Plating 1710 | isSubfloor: false 1711 | deconstructTools: [ Prying ] 1712 | footstepSounds: 1713 | collection: FootstepHull 1714 | itemDrop: FloorTileItemSteelMaint 1715 | heatCapacity: 10000 1716 | 1717 | - type: tile 1718 | id: FloorTechMaint3 1719 | name: tiles-techmaint3-floor 1720 | sprite: /Textures/Tiles/grating_maint.png 1721 | variants: 4 1722 | placementVariants: 1723 | - 1.0 1724 | - 1.0 1725 | - 1.0 1726 | - 1.0 1727 | baseTurf: Plating 1728 | isSubfloor: false 1729 | deconstructTools: [ Prying ] 1730 | footstepSounds: 1731 | collection: FootstepHull 1732 | itemDrop: FloorTileItemGratingMaint 1733 | heatCapacity: 10000 1734 | 1735 | - type: tile 1736 | id: FloorWoodTile 1737 | name: tiles-wood2 1738 | sprite: /Textures/Tiles/wood_tile.png 1739 | variants: 4 1740 | placementVariants: 1741 | - 1.0 1742 | - 1.0 1743 | - 1.0 1744 | - 1.0 1745 | baseTurf: Plating 1746 | isSubfloor: false 1747 | deconstructTools: [ Prying ] 1748 | footstepSounds: 1749 | collection: FootstepWood 1750 | barestepSounds: 1751 | collection: BarestepWood 1752 | itemDrop: FloorTileItemWoodPattern 1753 | heatCapacity: 10000 1754 | 1755 | - type: tile 1756 | id: FloorBrokenWood 1757 | name: tiles-wood3 1758 | sprite: /Textures/Tiles/wood_broken.png 1759 | variants: 7 1760 | placementVariants: 1761 | - 1.0 1762 | - 1.0 1763 | - 1.0 1764 | - 1.0 1765 | - 1.0 1766 | - 1.0 1767 | - 1.0 1768 | baseTurf: Plating 1769 | isSubfloor: false 1770 | deconstructTools: [ Prying ] 1771 | footstepSounds: 1772 | collection: FootstepWood 1773 | barestepSounds: 1774 | collection: BarestepWood 1775 | itemDrop: MaterialWoodPlank1 1776 | heatCapacity: 10000 1777 | 1778 | - type: tile 1779 | id: FloorWebTile 1780 | name: tiles-web 1781 | sprite: /Textures/Tiles/Misc/Web/web_tile.png 1782 | baseTurf: Plating 1783 | isSubfloor: false 1784 | deconstructTools: [ Prying ] 1785 | footstepSounds: 1786 | collection: FootstepCarpet 1787 | barestepSounds: 1788 | collection: BarestepCarpet 1789 | itemDrop: FloorTileItemWeb 1790 | heatCapacity: 10000 1791 | 1792 | - type: tile 1793 | id: FloorChromite 1794 | name: tiles-chromite 1795 | sprite: /Textures/Tiles/chromite.png 1796 | variants: 7 1797 | placementVariants: 1798 | - 1.0 1799 | - 1.0 1800 | - 1.0 1801 | - 1.0 1802 | - 1.0 1803 | - 1.0 1804 | - 1.0 1805 | baseTurf: Space 1806 | isSubfloor: true 1807 | footstepSounds: 1808 | collection: FootstepAsteroid 1809 | heatCapacity: 10000 1810 | 1811 | #Hull tiles 1812 | - type: tile 1813 | id: FloorHull 1814 | name: tiles-hull 1815 | sprite: /Textures/Tiles/hull.png 1816 | baseTurf: Plating 1817 | isSubfloor: false 1818 | footstepSounds: 1819 | collection: FootstepHull 1820 | itemDrop: FloorTileItemSteel #probably should not be normally obtainable, but the game shits itself and dies when you try to put null here 1821 | heatCapacity: 10000 1822 | 1823 | - type: tile 1824 | id: FloorHullReinforced 1825 | name: tiles-hull-reinforced 1826 | sprite: /Textures/Tiles/hull_reinforced.png 1827 | baseTurf: Plating 1828 | isSubfloor: false 1829 | footstepSounds: 1830 | collection: FootstepHull 1831 | itemDrop: FloorTileItemSteel 1832 | heatCapacity: 100000 #/tg/ has this set as "INFINITY." I don't know if that exists here so I've just added an extra 0 1833 | indestructible: true 1834 | 1835 | - type: tile 1836 | id: FloorReinforcedHardened 1837 | name: tiles-super-reinforced-floor 1838 | sprite: /Textures/Tiles/super_reinforced.png 1839 | baseTurf: Plating 1840 | isSubfloor: false 1841 | footstepSounds: 1842 | collection: FootstepHull 1843 | itemDrop: PartRodMetal1 #same case as FloorHull 1844 | 1845 | # Faux sci tiles 1846 | 1847 | # Grass 1848 | - type: tile 1849 | id: FloorAstroGrass 1850 | name: tiles-astro-grass 1851 | sprite: /Textures/Tiles/Planet/Grass/grass.png 1852 | variants: 4 1853 | placementVariants: 1854 | - 1.0 1855 | - 1.0 1856 | - 1.0 1857 | - 1.0 1858 | edgeSpritePriority: 1 1859 | edgeSprites: 1860 | SouthEast: /Textures/Tiles/Planet/Grass/single_edge.png 1861 | NorthEast: /Textures/Tiles/Planet/Grass/single_edge.png 1862 | NorthWest: /Textures/Tiles/Planet/Grass/single_edge.png 1863 | SouthWest: /Textures/Tiles/Planet/Grass/single_edge.png 1864 | South: /Textures/Tiles/Planet/Grass/double_edge.png 1865 | East: /Textures/Tiles/Planet/Grass/double_edge.png 1866 | North: /Textures/Tiles/Planet/Grass/double_edge.png 1867 | West: /Textures/Tiles/Planet/Grass/double_edge.png 1868 | baseTurf: Plating 1869 | isSubfloor: false 1870 | deconstructTools: [ Cutting ] 1871 | footstepSounds: 1872 | collection: FootstepGrass 1873 | itemDrop: FloorTileItemAstroGrass 1874 | heatCapacity: 10000 1875 | 1876 | - type: tile 1877 | id: FloorMowedAstroGrass 1878 | name: tiles-mowed-astro-grass 1879 | parent: FloorGrass 1880 | baseTurf: Plating 1881 | isSubfloor: false 1882 | deconstructTools: [ Cutting ] 1883 | itemDrop: FloorTileItemMowedAstroGrass 1884 | 1885 | - type: tile 1886 | id: FloorJungleAstroGrass 1887 | name: tiles-jungle-astro-grass 1888 | parent: FloorGrassJungle 1889 | baseTurf: Plating 1890 | isSubfloor: false 1891 | deconstructTools: [ Cutting ] 1892 | itemDrop: FloorTileItemJungleAstroGrass 1893 | 1894 | # Ice 1895 | - type: tile 1896 | id: FloorAstroIce 1897 | name: tiles-astro-ice 1898 | sprite: /Textures/Tiles/Planet/Snow/ice.png 1899 | baseTurf: Plating 1900 | isSubfloor: false 1901 | deconstructTools: [ Prying ] 1902 | friction: 0.05 1903 | heatCapacity: 10000 1904 | mobFriction: 0.5 1905 | mobFrictionNoInput: 0.05 1906 | mobAcceleration: 2 1907 | itemDrop: FloorTileItemAstroIce 1908 | 1909 | - type: tile 1910 | id: FloorAstroSnow 1911 | name: tiles-astro-snow 1912 | parent: FloorSnow 1913 | baseTurf: Plating 1914 | isSubfloor: false 1915 | deconstructTools: [ Prying ] 1916 | itemDrop: FloorTileItemAstroSnow 1917 | 1918 | # Asteroid Sand 1919 | - type: tile 1920 | id: FloorAstroAsteroidSand 1921 | name: tiles-astro-asteroid-sand 1922 | parent: FloorAsteroidSand 1923 | baseTurf: Plating 1924 | isSubfloor: false 1925 | deconstructTools: [ Prying ] 1926 | itemDrop: FloorTileItemAstroAsteroidSand 1927 | weather: false 1928 | 1929 | - type: tile 1930 | id: FloorWoodLarge 1931 | name: tiles-wood-large 1932 | sprite: /Textures/Tiles/wood_large.png 1933 | variants: 4 1934 | placementVariants: 1935 | - 1.0 1936 | - 1.0 1937 | - 1.0 1938 | - 1.0 1939 | baseTurf: Plating 1940 | isSubfloor: false 1941 | deconstructTools: [ Prying ] 1942 | footstepSounds: 1943 | collection: FootstepWood 1944 | barestepSounds: 1945 | collection: BarestepWood 1946 | itemDrop: FloorTileItemWoodLarge 1947 | heatCapacity: 10000 1948 | --------------------------------------------------------------------------------