In this post I continue my work on parks from the previous blog post. Before I get into bathrooms, let me discuss some of the smaller park additions and improvements I made first. In reality I worked on some of these changes at the same time, alternating between code edits.
I did eventually get hills working in parks. I had to add collision avoidance for AI people, include them in blockers for placing other objects, and adjust the elevation of previously placed trees to move them on top of the hill. (Trees are added first since they're part of the terrain.) I added player collision with hills by interpolating the Z-value of the player position from the nearest heightmap corners. This also allows the player to walk below the water in ponds, which means that I no longer need to block off that area for the player.
My daughter suggested adding fish to the ponds, so that's what I did. I split the class that handles fish in building fish tanks, pools, and flooded basements and created a city version for use with ponds. The only major difference is that fish are constrained to a bowl-shaped area rather than a box shape. They swim around in the pond and occasionally change direction, but otherwise ignore the player. They don't run from the player like fish in the ocean.
Residential parks now have cube map reflections enabled. I previously only had reflections in commercial cities because some of those office building types used reflective exterior materials. This has changed so that reflections are always enabled when the player is in parks in any type of city.
Park Water Fountains
Next, I added water fountains along park paths. I wanted to add those green metal water fountains with the lower dog water part that I see in the parks around my house. I believe this is referred to as the "Fido and Me" fountain. Apparently these cost $4000? Crazy! Anyway, I couldn't find a free 3D model of one of these, so I had to construct them procedurally from cylinders, cones, and a few cubes. They have cube map reflections enabled with a painted metal material. So far I haven't made these fountains interactive for the player.
![]() |
| Park water fountain next to a walking path and some picnic tables. |
Here's another water fountain, this time with a sneak peek of a park restroom in the background. I'll get to restrooms below.
![]() |
| Park water fountain with restroom in the background. More on this below. |
Park Restrooms
I added small restroom buildings to parks containing two rooms, one for men and the other for women. These are placed so that they don't overlap any ponds, creeks, park paths, trees, etc. Yes, trees are placed first. We don't want to be cutting down trees to build restrooms, right? There's a constraint that no two restrooms can be placed within a block of each other, so two parks on adjacent blocks will have one shared restroom. Restrooms come in two flavors: doors in the front, and doors at the sides/ends. I initially couldn't decide which I preferred, so I added a 50/50 chance for each style.
Let's start with the exterior. These buildings use a similar system as gas station convenience stores. They're owned by the city system rather than the buildings system. This means the placer has complete control of all parameters rather than relying on randomness to choose the size, shape, and material. The size is fixed with an aspect ratio of 1.25:1. Technically this is the "house" floorplan type. I used a random selection from the concrete block and brick exterior wall set and a sloped ("peaked") roof style. Each interior room has a single exterior door with a sign next to the door indicating gender. I added wooden privacy fences next to the doors. Restrooms with both doors on the front also have a concrete patio area between the fences and a water fountain mounted on the wall in the middle. Like this:
![]() |
| Closeup of the park restroom from the previous screenshot. This one has both doors on the front and a water fountain between them. Walls are concrete block. |
One downside of having restrooms placed by the city object placer inside parks is that they don't automatically get connected to the power lines. However, I was able to update the power line logic to connect restrooms with power but not cable TV wires relatively easily. Technically they also don't connect to the underground tunnel/sewage system either, though they don't have basements to begin with.
Restrooms with doors at the ends have their gender signs on the adjacent walls, and fences directly across from the doors. Maybe I should add a concrete patio at each end as well? The limitation here is that I'm actually drawing these as driveways, which means I can have only one. I did attempt to add the driveway under the entire building and that seems to work, assuming there's no basement. I haven't updated the screenshot though.
Both styles of restrooms have long, thin, and high windows along the walls that don't have doors. I had to make them high so that they don't overlap with objects placed inside such as urinals and hand dryers. These are glass block windows that let light pass through but the player can't see through.
![]() |
| Second variant of park restroom with the doors at each end. |
Pedestrians will choose these buildings as destinations just like normal houses and office buildings. I did add the logic for women to choose the women's room door while men choose the men's room door. Parks are neutral territory not owned by anyone, which means that people can walk through them at any time, as long as they avoid colliding with buildings that aren't their destinations.
After I added those two screenshots above, I realized that the doors don't look right. House doors don't fit with restrooms. I later changed them to use door textures from office building interiors, which I feel is a better fit. I took one new screenshot, shown below.
![]() |
| Park restroom with office style doors that open outward. This one has brick walls. |
I also changed restroom doors so that they open outward rather than inward. The restrooms in my local park all open outward. While I was at it, I changed some other types of buildings such as restaurants to open outward. I think every building type other than houses should have doors that open outward for fire safety. The only problem with this is that the interior door handles don't have correct lighting or reflections when they rotate outside the bounds of the building. Now that I think about it, I should add exterior door handle 3D models as well.
Restroom Interiors
Park restrooms have the same plaster walls as most other buildings because I don't have a good alternative. I could make the walls smooth and untextured, but that would look boring. Floors and ceilings are bare concrete. Maybe ceilings should be high and reach to the peaked roof? It could be similar to attics with metal rather than wood beams. That sounds like a lot of effort though. I'll probably at least attempt it.
I've made some improvements to restroom interiors. Note that these apply to all multi-person building restrooms (office building, restaurant, park, mall, etc.) Stalls now have metal trim, hinges, and door latches. These look much better now that I have proper (though distorted) interior reflections. There are four paint colors for stalls: light blue, light green, light gray, and dark gray. Here's a new screenshot of light blue bathroom stalls with shiny metal hardware.
![]() |
| New bathroom stalls with shiny metal trim, hinges, and door latch. |
I added three new bathroom objects: paper towel dispensers, soap dispensers, and hand dryers. These are all drawn as 3D models I found online because the shapes were too complex to create with code. Or rather I've done enough of this lately and I wanted to take a break after the water fountains, etc. They're placed on the walls of larger bathrooms that have been divided into stalls. I should probably add some of them to the small bathrooms as well for non-residential buildings. ... There, I've added paper towel and soap dispensers to single use office bathrooms.
The paper towel dispenser is placed first, in the middle between the sink/mirror and the door. It's added to whichever wall has more space. I believe there's always room to place the paper towel dispenser. Or at least I haven't come across a bathroom where it's missing due to placement constraints.
The hand dryer is next added to the door's wall, between the paper towel dispenser and the door, if there's space. In the case of interior rooms with doors that open inward, the dryer is placed to avoid the path of the opening door. I added it closer to the door in the case of a wide bathroom with a long wall.
Finally, soap dispensers are placed between the paper towel dispenser and the sink mirror if they fit. This usually only happens in bathrooms with a gap between the door wall and the sinks. There's no gap for some of the short-but-wide bathrooms that are added to office buildings. Park restrooms are fixed size and large enough, so it should always be possible to place all three objects.
![]() |
| Park front entrance restroom interior showing the new hand dryer, paper towel dispenser, and soap dispenser together by the door. |
Here's another view that shows the entire park restroom interior with (old texture) door, window, stalls, and sink in the back. The hand dryer is visible on the far wall under the window. Oh, I almost forgot. I also added those shiny cylindrical trash cans previously seen in malls to larger bathrooms.
![]() |
| Park side entrance Women's restroom with black (very dark gray) stalls and high block window. |
Park restrooms have lower lighting levels compared to office buildings. Part of this is just due to the lower color temperature, which makes the light more yellow compared to the bright white of commercial spaces. The other reason is because park ceiling lights are smaller. I had to restrict their size to avoid the door clipping through them back when doors opened inward. (Take a look at the door and light position in the screenshot above.) Park restroom doors sometimes open into the short side of the room, while office restrooms usually have their doors at the long end near the sinks and urinals.
Here is what an office building restroom looks like for comparison. Note that these have the same object additions as above. Some wider rooms have sinks, paper towel dispensers, hand dryers, and soap dispensers on both sides of the door.
![]() |
| Office building Men's restroom with brighter and higher color temperature lighting. |
I think I'm mostly done with bathrooms for now. I need to go back and work on door handle models, and maybe make a few other minor changes.








