Laundromat

I made a quaint little Laundromat when I had some free time, so I thought I’d share the result. Mostly just a flavor addition, but whatevs. If anyone wants to PR this on Git, go ahead, I was going to but I got a lot of stuff going so I couldn’t devote enough time to figuring the git out. Have a nice day, folks :slight_smile:

To “install”:

Create a new .json file in your “data/json/mapgen” folder and paste the following text into it. This file will be the layout of the Laundromat building.

[spoiler=laundromat.json][
{
“type” : “item_group”,
“id” : “laundry”,
“items”:[
[“jeans”, 90],
[“pants_checkered”, 5],
[“shorts”, 70],
[“shorts_denim”, 35],
[“pants”, 75],
[“suit”, 60],
[“waistcoat”, 30],
[“bowhat”, 10],
[“pants_leather”, 60],
[“pants_cargo”, 70],
[“shorts_cargo”, 50],
[“skirt”, 75],
[“skirt_leather”, 5],
[“tshirt”, 70],
[“longshirt”, 80],
[“polo_shirt”, 65],
[“dress_shirt”, 60],
[“tank_top”, 50],
[“camisole”, 30],
[“bra”, 30],
[“undershirt”, 30],
[“boxer_shorts”, 30],
[“briefs”, 15],
[“panties”, 30],
[“boy_shorts”, 25],
[“sweatshirt”, 75],
[“sweater”, 75],
[“hoodie”, 65],
[“jacket_light”, 50],
[“jacket_jean”, 35],
[“blazer”, 35],
[“jacket_leather”, 30],
[“coat_winter”, 50],
[“peacoat”, 30],
[“gloves_light”, 35],
[“mittens”, 30],
[“gloves_wool”, 33],
[“gloves_winter”, 40],
[“gloves_liner”, 25],
[“gloves_leather”, 45],
[“scarf”, 45],
[“knit_scarf”, 35],
[“long_knit_scarf”, 5],
[“scarf_long”, 1],
[“hat_cotton”, 45],
[“hat_knit”, 25],
[“hat_newsboy”, 20],
[“hat_fur”, 15],
[“under_armor”, 20],
[“under_armor_shorts”, 20],
[“tights”, 20],
[“leggings”, 20],
[“stockings”, 20],
[“balclava”, 15],
[“pants_ski”, 60],
[“long_underpants”, 40],
[“long_undertop”, 40],
[“union_suit”, 20],
[“arm_warmers”, 20],
[“leg_warmers”, 20],
[“trenchcoat_leather”, 12],
[“sleeveless_trenchcoat”, 2],
[“sleeveless_trenchcoat_leather”, 2],
[“sleeveless_trenchcoat_fur”, 1],
[“duster_leather”, 12],
[“sleeveless_duster”, 2],
[“sleeveless_duster_leather”, 2],
[“sleeveless_duster_fur”, 1],
[“cloak”, 5],
[“house_coat”, 25],
[“flotation_vest”, 1],
[“fishing_waders”, 5],
[“wetsuit”, 5],
[“wetsuit_spring”, 5],
[“wetsuit_gloves”, 10],
[“wetsuit_booties”, 10],
[“wetsuit_hood”, 5],
[“apron_leather”, 1],
[“clown_suit”, 1],
[“clownshoes”, 1],
[“bondage_suit”, 1],
[“corset”, 10],
[“pants_army”, 10],
[“jacket_army”, 10],
[“winter_pants_army”, 10],
[“winter_jacket_army”, 10],
[“winter_gloves_army”, 10],
[“army_top”, 20],
[“tux”, 1],
[“dress_wedding”, 1],
[“porkpie”, 5],
[“skinny_tie”, 5],
[“tieclip”, 2],
[“collarpin”, 2],
[“jersey”, 40],
[“postman_shorts”, 5],
[“postman_shirt”, 5],
[“postman_hat”, 5],
[“maid_dress”, 3],
[“maid_hat”, 3],
[“halter_top”, 50],
[“linuxtshirt”, 20],
[“kilt”, 5],
[“nanoskirt”, 10],
[“sleeveless_tunic”, 5],
[“ear_spool”, 30],
[“fedora”, 5],
[“straw_hat”, 5],
[“straw_fedora”, 5],
[“kufi”, 2],
[“kippah”, 2],
[“thawb”, 1],
[“kittel”, 1],
[“cassock”, 1],
[“robe”, 5],
[“eboshi”, 1],
[“kariginu”, 1],
[“kimono”, 3]
]
},

{
“type” : “item_group”,
“id” : “laundromat_bleach”,
“items” : [
[“bleach”, 50]
]
},

{
“type” : “item_group”,
“id” : “laundromat_containers”,
“items” : [
[“duffelbag”, 5],
[“backpack”, 5],
[“bag_plastic”, 30]
]
},

{
“type” : “overmap_terrain”,
“id” : “s_laundromat”,
“name” : “laundromat”,
“rotate” : true,
“sym” : [94, 62, 118, 60],
“color” : “white_white”,
“see_cost” : 5,
“extras” : “build”,
“mondensity” : 2,
“sidewalk” : true,
“mapgen”: [ {
“method”: “json”,
“weight”: 400,
“object”: {
“rows”: [
“ssssssssssssssssssssssss”,
“ssssssssssssssssssssssss”,
“ssssssssssssssssssssssss”,
“ssssssssssssssssssssssss”,
"|===========-[[-===|",
"
|^…^…^…|",
"
|t…#…&|",
"
|C.ct…D|",
"
|ttt#…rrrr…D|",
"
|WWWWWWWWWWWt…D|",
"
|…D|%
",
"
|WWWWWWWWWWWt…D|%
",
"
|…D|",
"
|WWWWWWWWWWWt…D|",
"
|t…D|",
"
|c…DDD####t…D|",
"
|c…-------…|–|
",
"
|c…WWWWWWWt…|lS|
",
"
|6…+lT|
",
"
|6…rrrrrrrr…|–|
",
"
|V…rrrrrrrr…|lS|
",
"
|V…+lT|
",
"
|------------+±-----|
",
"_______________________"
],
“terrain”: {
"
": “t_pavement”,
"%": “t_pavement”,
".": “t_linoleum_white”,
"-": “t_wall”,
"=": “t_wall_glass”,
"|": “t_wall”,
"[": “t_door_glass_c”,
"+": “t_door_c”,
“l”: “t_linoleum_gray”,
"]": “t_floor”,
“r”: “t_floor”,
“W”: “t_floor”,
“D”: “t_floor”,
“6”: “t_floor”,
"#": “t_floor”,
“c”: “t_floor”,
“V”: “t_floor”,
“t”: “t_floor”,
"&": “t_floor”,
“s”: “t_sidewalk”,
“C”: “t_console_broken”,
“A”: “t_atm”,
"^": “t_linoleum_white”,
“S”: “t_linoleum_white”,
“y”: “t_linoleum_white”,
"~": “t_linoleum_white”,
“T”: “t_linoleum_white”,
“w”: “t_linoleum_white”
},
“furniture”: {
“W”: “f_washer”,
“6”: “f_arcade_machine”,
“V”: “f_vending_c”,
“c”: “f_chair”,
“D”: “f_dryer”,
“T”: “f_toilet”,
“S”: “f_sink”,
"^": “f_indoor_plant”,
“t”: “f_table”,
“r”: “f_rack”,
"%": “f_trashcan”,
"&": “f_trashcan”,
"#": “f_counter”
},
“toilets”: {
“T”: { }
},
“place_vehicles”: [
{ “vehicle”: “shopping_cart”, “chance”: 10, “x”: 14, “y”: 9 },
{ “vehicle”: “shopping_cart”, “chance”: 10, “x”: 14, “y”: 13 },
{ “vehicle”: “shopping_cart”, “chance”: 10, “x”: 15, “y”: 12 },
{ “vehicle”: “shopping_cart”, “chance”: 10, “x”: 17, “y”: 18 },
{ “vehicle”: “shopping_cart”, “chance”: 10, “x”: 17, “y”: 21 }
],
“place_items”: [
{ “item”: “trash”, “chance”: 80, “x”: 19, “y”: 6},
{ “item”: “behindcounter”, “chance”: 60, “x”: 4, “y”: 8},
{ “item”: “laundry”, “chance”: 60, “x”: [2,13], “y”: 9, “repeat”: [1,2] },
{ “item”: “laundry”, “chance”: 60, “x”: 19, “y”: [7,15], “repeat”: [1,2] },
{ “item”: “laundry”, “chance”: 60, “x”: [2,13], “y”: 11, “repeat”: [1,2] },
{ “item”: “laundry”, “chance”: 60, “x”: [2,13], “y”: 13, “repeat”: [1,2] },
{ “item”: “laundry”, “chance”: 60, “x”: [6,12], “y”: 17, “repeat”: [1,2] },
{ “item”: “magazines”, “chance”: 60, “x”: [12,13], “y”: 8, “repeat”: [1,2] },
{ “item”: “snacks”, “chance”: 60, “x”: [10,11], “y”: 8, “repeat”: [1,2] },
{ “item”: “laundromat_containers”, “chance”: 60, “x”: [9,12], “y”: 15, “repeat”: [1,2] },
{ “item”: “laundromat_bleach”, “chance”: 75, “x”: [6,12], “y”: [19,20], “repeat”: [1,2] },
{ “item”: “vending_drink”, “chance”: 75, “x”: 2, “y”: 20 },
{ “item”: “vending_food”, “chance”: 75, “x”: 2, “y”: 21 }
]
}
}
]
}
][/spoiler]

Open regional_map_settings.json in your data/json folder, delete everything in the file, and then paste the code below into the file. Save, and now when you play the Laundromat actually has a chance of showing up.

[
{
“type”: “region_settings”,
“id”: “default”, “//”: “identifier, when region_map is in it will determine alternatives (‘desert’ etc)”,
“house_basement_chance”: 2, “//”: “one_in(n) houses with basements”,
“default_oter”: “field”, “//”: “default oter_id (anything that isn’t a house/road/etc) some become forests”,
“default_groundcover”: { “//”: “biome settings for generic ‘grass_or_dirt’ (which is reproduced below”,
“primary”: “t_grass”, “//”: “default ter_id on ground”,
“ratio”: 4, “//”: “one_in(n) chance that it becomes…”,
“secondary”: “t_dirt”, “//”: “…this instead”
},
“field_coverage”: { “//”: “biome settings for builtin field mapgen. The values below replicate results of hardcoded ‘field’ mapgen”,
“percent_coverage”: 0.9333, “//”: “% of tiles that have a plant: one_in(120)”,
“default_ter”: “t_shrub”, “//”: “default plant”,
“other”: { “//”: “% of plants that aren’t default_ter”,
“t_shrub_blueberry”: 0.4166,
“t_shrub_strawberry”: 0.4166,
“f_mutpoppy”: 8.3333,
“f_bluebell”: 8.3333,
“f_dahlia”: 8.3333,
“f_datura”: 4.3333,
“f_dandelion”: 8.3333
},
“boost_chance”: 0.833, “//”: “% of fields with boosted plant growth”,
“boosted_percent_coverage”: 2.5, “//”: “for the above: total percent coverage jumps to this amount”,
“boosted_other”: { “//”: “…and the first non-default picked from this list…”,
“t_shrub_blueberry”: 40.0,
“t_shrub_strawberry”: 30.0,
“f_mutpoppy”: 6.6,
“f_bluebell”: 6.6,
“f_dahlia”: 6.6,
“f_datura”: 0.2,
“f_dandelion”: 6.6
},
“boosted_other_percent”: 50.0, “//”: “…accounts for this % of total coverage”
},
“num_forests”: 250, “//”: “# of forest chunks”,
“forest_size_min”: 15, “//”: “size range of forest chunk”,
“forest_size_max”: 40, “//”: “note: 32400 tiles in omap, 250*minmax = 3750-10000 default_oters become forests”,
“swamp_maxsize”: 4, “//”: “SWAMPINESS // Affects the size of a swamp”,
“swamp_river_influence”: 5, “//”: “voodoo magic sauce: more increases swampyness of forests around rivers”,
“swamp_spread_chance”: 8500, “//”: “one_in(n) chance a swampy forest makes a swamp in a non-forest. Apparently.”,
“city”: {
“type”: “town”,
“shop_radius”: 80, “//”: “determine radial frequency of shops / parks / houses for towns. tldr: less means more”,
“park_radius”: 130, “//”: “this is not a cut and dry % but rather an inverse voodoo number; rng(0,99) > VOODOO * distance / citysize;”,
“parks”: { “//”: “weighted list for park overmap terrains”,
“park”: 4,
“pool”: 1
},
“shops”: { “//”: “weighted list of oterrains for commercial zoning”,
“s_gas”: 5,
“s_pharm”: 3,
“s_grocery”: 15,
“s_hardware”: 5,
“s_sports”: 5,
“dojo”: 2,
“gym”: 1,
“gym_fitness”: 2,
“s_liquor”: 5,
“s_gun”: 5,
“s_clothes”: 5,
“s_library”: 4,
“s_restaurant”: 4,
“sub_station”: 5,
“bank”: 3,
“s_pizza_parlor”: 4,
“bar”: 4,
“s_electronics”: 5,
“pawn”: 3,
“mil_surplus”: 2,
“s_garage”: 5,
“station_radio”: 4,
“office_doctor”: 2,
“s_restaurant_fast”: 4,
“s_restaurant_coffee”: 3,
“bowling_alley”: 2,
“church”: 2,
“office_cubical”: 2,
“furniture”: 2,
“abstorefront”: 2,
“police”: 1,
“fire_station”: 2,
“home_improvement”: 2,
“s_lot”: 4,
“s_arcade”: 2,
“s_jewelry”:2,
“s_antique”: 2,
“s_gardening”: 2,
“museum”: 1,
“s_music”: 2,
“s_laundromat”: 2
}
}
}
]

Why do I feel like putting an electric thermal outfit into a washing machine would be a bad idea…?

Haha, whoops :P. Now it’s gone.

Makes me wonder whether we can disassemble washing machines…

You can. I don’t think they give anything especially interesting, though. Just sheet metal and some odd electric piece or two.

Heh, you beat me to it. I was in the middle of making one for my map editor testing.

Hey, if you finish your Laundromat it would be awesome if you could to share it with everybody :)… you can never have enough washing machines.

Hey, if you finish your Laundromat it would be awesome if you could to share it with everybody :)… you can never have enough washing machines.[/quote]
and not every building is this same in real life so 2 versions of laundromats are nothing bad

Now if hygiene ever becomes a thing… o3o

Went ahead and submitted this for you. I’d been meaning to for a few days and finally got around to it.

Oh, wow thanks :). I’m not exactly Git savvy, so this probably would have never gotten added if it weren’t for you :smiley: