AV7daystodie Posted June 8, 2020 Share Posted June 8, 2020 On 6/5/2020 at 12:38 PM, Damocles said: Added a tool (first iteration) to generate preview maps for existing world files. In case you customedit maps, or want to cheat in MultiPlayer But to cheat in MultiPlayer this tool in current iteration requires dtm.raw and splat3.png, and server sends to clients only processed ones 🙃 Btw, I really appreciate NITROGEN, great job you did there! Link to comment Share on other sites More sharing options...
Damocles Posted June 8, 2020 Author Share Posted June 8, 2020 I could also import the processed splat files, if there where any demand. The processed dtm files are pretty much the same as the original. (you can rename and import them) Link to comment Share on other sites More sharing options...
Fleshus Posted June 9, 2020 Share Posted June 9, 2020 (edited) Hello, I created 2 prefabs this winter and I finally decide to test the generation for a new map. I am quite happy with the result and even beyond my expectations! But I have a question, does Nitrogen take this prefab .xml line into account:<property name = "AllowedBiomes" value = "snow" />It would seem that no ... Can we always make sure that a POI is generated only in a selected biome? And also I ask how the amount of POI generated is managed.If the prefablist contains only 2 prefabs tagged "mountain" this does not affect the TOTAL QUANTITY of prefabs generated of this type? So the only way to decrease the generation amount of a specific POI is to add more POIs tagged "mountain" in the list?it seems a bit archaic ... Edited June 9, 2020 by Fleshus (see edit history) Link to comment Share on other sites More sharing options...
Damocles Posted June 9, 2020 Author Share Posted June 9, 2020 No there are no biome restrictions for POIs. The mountain POIs have a higher chance to be in snow, due to the higher elevation. Link to comment Share on other sites More sharing options...
Fleshus Posted June 9, 2020 Share Posted June 9, 2020 Too bad for the restriction by biome, it's a shame, often it's the biome that inspires me to create certain POIs. I hope that this function will be reinstated. But is it only Nitrogen that does not allow this or also the RWG of the basic game?(Otherwise I should have specified that for the generated world that we see on my screenshots I only put 7 different prefabs in the list ....)Okay, next step is to share my creations on Nexus! Link to comment Share on other sites More sharing options...
Notething Posted June 12, 2020 Share Posted June 12, 2020 On 6/6/2020 at 5:29 PM, Cadamier said: Would changing GameWorld to Mytherys Magic do this?!? LOL Shouldn't it be RWG?!? Whatever the worldname is in the folder, is what you need in the startup script. For example, here's mine: <property name="GameWorld" value="Dragon"/> WorldGenSeed and WorldGenSize aren't relevant, because the RWG isn't called. To try to make it make a little more sense, if you were to use pregen02, you would type pregen02 in the value section of GameWorld. pregen02 is already a folder in your world save folders. So, if the world is already built, you don't want it to call RWG. For RWG to know what file to use, it goes based on whatever the WorldGenSeed is, turning that into a name, and if the world already exists based on what's in there, then it loads that instead of creating a new world. Hopefully that helps! Link to comment Share on other sites More sharing options...
Pra3t0r 0f R0m3 Posted June 13, 2020 Share Posted June 13, 2020 Heya Running into an issue with a prefab I inserted into the prefabs.txt file. Here is the code: Altered_Sample,DOWNTOWN;WILDERNESS,0,-2,44,22,62,alone;unique My issue is that (from my understanding) using alone;unique should give, at the very least one instance of the prefab upon generation. Except that it's not happening, rather one of five gens this morning so far (as I am trying for somewhat center, and in forest) has the intended prefab. I know I could just slap it in there in world editor, but I want the location to be somewhat unknown, as searching for it is half the fun. Link to comment Share on other sites More sharing options...
bigstep70 Posted June 14, 2020 Share Posted June 14, 2020 (edited) using alone;unique should give, at the very least one instance wrong... the game will pick from a list yes, but that does not mean that your prefab will appear in the world ive played 100+ games with my AncientTomb prefab in the rotation and have never come across it in the wildernes ... like ever... even though it is in my list its all just a roll of the dice really... then there is the chance of you actually finding the prefab as you wander the world nitrogen may spawn the prefab but have fun finding it unless you cheat and fly around Edited June 14, 2020 by bigstep70 (see edit history) Link to comment Share on other sites More sharing options...
Cpt Krunch Posted June 14, 2020 Share Posted June 14, 2020 If you have a building on your list and you are sure its entered and tagged correctly, its never a crap shoot. Check the height limitation for the tag you assign and make sure you have the space at those heights for the prefab. Did you test this alone on a flat open map? Link to comment Share on other sites More sharing options...
xaroth8088 Posted June 15, 2020 Share Posted June 15, 2020 @Damocles Fellow programmer here - any chance you'd be willing to share the source code and/or open source the project? I ask because I've got an idea that could build off of what you've got so far, and would be willing to help a little with tidying up code, bugfixing, etc. What do you think? Link to comment Share on other sites More sharing options...
Damocles Posted June 15, 2020 Author Share Posted June 15, 2020 (edited) New version online, (link in first post, experimental build) -new Highway feature: you can generate double or single track highways that cross the map North-South and East-West they can take up a lot of performance, as the highway is visualized using prefab elements -updated included prefablist to CompoPack 43 -batch generation of maps, you can generate more maps at one time limited to 10 maps, in order not to accidentally flood your computer with too much mapdata -tool: ability to generate preview maps from already existing maps ----- @xaroth8088 Thanks for the offer, but I dont plan to open source the project currently Edited June 15, 2020 by Damocles (see edit history) Link to comment Share on other sites More sharing options...
Ti2xGr Posted June 15, 2020 Share Posted June 15, 2020 (edited) Damocles - I assume that A19 will not be an issue for the Nitrogen generator. Do you expect to have to tweak it at launch or do you expect it to work upon the A19 release? Just curious. P.S. Great job of the highways. Can't wait to try them out. Edited June 15, 2020 by Ti2xGr (see edit history) Link to comment Share on other sites More sharing options...
Doggeh Posted June 15, 2020 Share Posted June 15, 2020 Just tried the batch create, however it only generated a preview map for the final (10th) map generated. Link to comment Share on other sites More sharing options...
Damocles Posted June 15, 2020 Author Share Posted June 15, 2020 (edited) 1 hour ago, Ti2xGr said: Damocles - I assume that A19 will not be an issue for the Nitrogen generator. Do you expect to have to tweak it at launch or do you expect it to work upon the A19 release? Just curious. P.S. Great job of the highways. Can't wait to try them out. I have to see if there where any major changes in A19. I suppose it will only change some prefabs, but not the word-file structure. Unless they throw in some akward new file formats... never know. 10 minutes ago, Doggeh said: Just tried the batch create, however it only generated a preview map for the final (10th) map generated. Works on my side. So the preview map folder is empty on the others? Any error messages? You could launch it via the .bat file, and then view any Exception that might pop up. -> also, always delete your configUI files in resources, if you have overwritten the last NitroGen installation, as they might change over the versions. They get recreated when not there. Edited June 15, 2020 by Damocles (see edit history) Link to comment Share on other sites More sharing options...
Doggeh Posted June 15, 2020 Share Posted June 15, 2020 (edited) 7 minutes ago, Damocles said: I have to see if there where any major changes in A19. I suppose it will only change some prefabs, but not the word-file structure. Unless they throw in some akward new file formats... never know. Works on my side. So the preview map folder is empty on the others? Any error messages? You could launch it via the .bat file, and then view any Exception that might pop up. Just running a few more runs to see. Yep the preview folder was there but empty. Will let you know shortly on the bat file/errors. Cleared output, ran a new run of 2 after launching from the bat file: changed landscape running generation thread planned runs: 2 Map name: NitroGenMap1 creating output directory: NitroGenMap1 C:\Users\Dan\Downloads\NitroGen_WorldGenerator\output\NitroGenMap1 output directory created ... running terrain generation ... exporting (1/3) exporting (2/3) exporting (3/3) ... terrain generation ... DONE ... ... running world mapping ... java.lang.ArrayIndexOutOfBoundsException: 1024 at nitrogen.a.c.a(Unknown Source) at nitrogen.a.c.b(Unknown Source) at nitrogen.a.c.c(Unknown Source) at nitrogen.a.c.a(Unknown Source) at nitrogen.gui.NitroGenUI.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 1024 Total time taken: 1 min 57 sec Map name: NitroGenMap2 creating output directory: NitroGenMap2 C:\Users\Dan\Downloads\NitroGen_WorldGenerator\output\NitroGenMap2 output directory created ... running terrain generation ... exporting (1/3) exporting (2/3) exporting (3/3) ... terrain generation ... DONE ... ... running world mapping ... java.lang.ArrayIndexOutOfBoundsException: 1024 at nitrogen.a.c.a(Unknown Source) at nitrogen.a.c.a(Unknown Source) at nitrogen.a.c.c(Unknown Source) at nitrogen.a.c.a(Unknown Source) at nitrogen.gui.NitroGenUI.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 1024 Total time taken: 0 min 57 sec Edited June 15, 2020 by Doggeh (see edit history) Link to comment Share on other sites More sharing options...
Damocles Posted June 15, 2020 Author Share Posted June 15, 2020 19 minutes ago, Doggeh said: Just running a few more runs to see. Yep the preview folder was there but empty. Will let you know shortly on the bat file/errors. Cleared output, ran a new run of 2 after launching from the bat file: changed landscape running generation thread planned runs: 2 Map name: NitroGenMap1 creating output directory: NitroGenMap1 C:\Users\Dan\Downloads\NitroGen_WorldGenerator\output\NitroGenMap1 output directory created ... running terrain generation ... exporting (1/3) exporting (2/3) exporting (3/3) ... terrain generation ... DONE ... ... running world mapping ... java.lang.ArrayIndexOutOfBoundsException: 1024 at nitrogen.a.c.a(Unknown Source) at nitrogen.a.c.b(Unknown Source) at nitrogen.a.c.c(Unknown Source) at nitrogen.a.c.a(Unknown Source) at nitrogen.gui.NitroGenUI.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 1024 Total time taken: 1 min 57 sec Map name: NitroGenMap2 creating output directory: NitroGenMap2 C:\Users\Dan\Downloads\NitroGen_WorldGenerator\output\NitroGenMap2 output directory created ... running terrain generation ... exporting (1/3) exporting (2/3) exporting (3/3) ... terrain generation ... DONE ... ... running world mapping ... java.lang.ArrayIndexOutOfBoundsException: 1024 at nitrogen.a.c.a(Unknown Source) at nitrogen.a.c.a(Unknown Source) at nitrogen.a.c.c(Unknown Source) at nitrogen.a.c.a(Unknown Source) at nitrogen.gui.NitroGenUI.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 1024 Total time taken: 0 min 57 sec What where your settings? You could post your configUI.txt, and chosen map size. Link to comment Share on other sites More sharing options...
Doggeh Posted June 15, 2020 Share Posted June 15, 2020 (edited) 11 minutes ago, Damocles said: What where your settings? You could post your configUI.txt, and chosen map size. //configuration file for version v0.480 //selection state of UI elements traders = 1 border biome = 6 city = 5 check folder = 0 city grid = 1 road condition = 2 road type = 1 big lakes = 3 city size = 4 heightmap = 0 import from = 1 scenario = 0 town size = 1 cracks = 1 highways = 2 smoothing = 0 prefab list = 0 traders location = 2 north/south = 1 rivers = 2 small lakes = 3 flatland style = 2 town = 5 old towns = 3 biomes = 2 maps to gen = 3 custom towns = 1 roads = 2 extra car lots = 4 POIs = 0 mountain huts = 3 player spawns = 2 size = 2 outback POIs = 3 preview map = 0 farms = 4 no POIs in biome = 1 Special Zones = 0 landscape = 1 rednecks = 3 8k. I will run with those settings on another PC and let you know. Its currently generating 10 x 8k's and seems to be doing previews so far (had to run with the '16k' bat else it ran out of memory). Additional: copied that configui.txt to my other PC and the problem reoccurs there in the same manor. Seems its a combination of those settings. Edited June 15, 2020 by Doggeh (see edit history) Link to comment Share on other sites More sharing options...
Damocles Posted June 15, 2020 Author Share Posted June 15, 2020 (edited) 17 minutes ago, Doggeh said: //configuration file for version v0.480 //selection state of UI elements traders = 1 border biome = 6 city = 5 check folder = 0 city grid = 1 road condition = 2 road type = 1 big lakes = 3 city size = 4 heightmap = 0 import from = 1 scenario = 0 town size = 1 cracks = 1 highways = 2 smoothing = 0 prefab list = 0 traders location = 2 north/south = 1 rivers = 2 small lakes = 3 flatland style = 2 town = 5 old towns = 3 biomes = 2 maps to gen = 3 custom towns = 1 roads = 2 extra car lots = 4 POIs = 0 mountain huts = 3 player spawns = 2 size = 2 outback POIs = 3 preview map = 0 farms = 4 no POIs in biome = 1 Special Zones = 0 landscape = 1 rednecks = 3 8k. I will run with those settings on another PC and let you know. Its currently generating 10 x 8k's and seems to be doing previews so far (had to run with the '16k' bat else it ran out of memory). Additional: copied that configui.txt to my other PC and the problem reoccurs there in the same manor. Seems its a combination of those settings. Thanks, also saw an error. Now I can recreate on the main branch. @Doggeh Yes, please change the No POIs in biome to "no placement limits". This feature is kind of buggy, I will take it out in the next update. Thanks for your research. Edited June 15, 2020 by Damocles (see edit history) 1 Link to comment Share on other sites More sharing options...
Doggeh Posted June 15, 2020 Share Posted June 15, 2020 18 minutes ago, Damocles said: Thanks, also saw an error. Now I can recreate on the main branch. @Doggeh Yes, please change the No POIs in biome to "no placement limits". This feature is kind of buggy, I will take it out in the next update. Thanks for your research. Thanks, will do. Keep up the good work. Link to comment Share on other sites More sharing options...
custom_hero Posted June 19, 2020 Share Posted June 19, 2020 It’s sad that all the water in the world is useless. do you have any thoughts, add to the generator, new placement zone types. so that the generator identifies large lakes as a new placement grid, and spawns water prefabs on it. Like vessel by Pille. can you add new type lanscape: water. so that you can adjust the amount of land covered by water through the slider. Link to comment Share on other sites More sharing options...
Jugom Posted June 19, 2020 Share Posted June 19, 2020 (edited) Any chance to make the highways respect the mask or even better have a special highway mask? don't get me wrong, I love the asset and I knew this was a stupid idea since the beginning, but I wanted to do a sort of stress test to see what was the outcome and I couldn't help it but laugh at it x). For example, I could make a mask like this one and then the highways would generate only where I want them to. Edited June 19, 2020 by Jugom (see edit history) Link to comment Share on other sites More sharing options...
Damocles Posted June 20, 2020 Author Share Posted June 20, 2020 Im planning to add more functionality to the mask in general. I can have a look how the highway can be defined there too. 1 Link to comment Share on other sites More sharing options...
Jikdur Posted June 20, 2020 Share Posted June 20, 2020 I keep getting this when I try to generate a map. In Nitrogen: creating output directory: NitroGenMap C:\Program Files (x86)\NitroGenWorldGenerator\output\NitroGenMap output directory created running generation thread ... running terrain generation ... null Total time taken: 0 min 0 sec In Batch: Current working directory: C:\Program Files (x86)\NitroGenWorldGenerator (please check if this is valid) java.io.FileNotFoundException: C:\Program Files (x86)\NitroGenWorldGenerator\resources\configUI.txt (Access is denied) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) at java.io.PrintWriter.<init>(Unknown Source) at nitrogen.gui.b.a(Unknown Source) at nitrogen.gui.NitroGenUI.actionPerformed(Unknown Source) at javax.swing.JComboBox.fireActionEvent(Unknown Source) at javax.swing.JComboBox.setSelectedItem(Unknown Source) at javax.swing.JComboBox.setSelectedIndex(Unknown Source) at nitrogen.gui.b.a(Unknown Source) at nitrogen.gui.NitroGenUI.<init>(Unknown Source) at nitrogen.gui.NitroGenUI.main(Unknown Source) changed landscape java.io.FileNotFoundException: C:\Program Files (x86)\NitroGenWorldGenerator\resources\configUI.txt (Access is denied) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) at java.io.PrintWriter.<init>(Unknown Source) at nitrogen.gui.b.a(Unknown Source) at nitrogen.gui.NitroGenUI.actionPerformed(Unknown Source) at javax.swing.JComboBox.fireActionEvent(Unknown Source) at javax.swing.JComboBox.setSelectedItem(Unknown Source) at javax.swing.JComboBox.setSelectedIndex(Unknown Source) at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(Unknown Source) at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) java.io.FileNotFoundException: C:\Program Files (x86)\NitroGenWorldGenerator\resources\configUI.txt (Access is denied) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) at java.io.PrintWriter.<init>(Unknown Source) at nitrogen.gui.b.a(Unknown Source) at nitrogen.gui.NitroGenUI.actionPerformed(Unknown Source) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) creating output directory: NitroGenMap C:\Program Files (x86)\NitroGenWorldGenerator\output\NitroGenMap output directory created running generation thread ... running terrain generation ... java.io.FileNotFoundException: C:\Program Files (x86)\NitroGenWorldGenerator\output\NitroGenMap\radiation.png (The system cannot find the path specified) at java.io.RandomAccessFile.open0(Native Method) at java.io.RandomAccessFile.open(Unknown Source) at java.io.RandomAccessFile.<init>(Unknown Source) at javax.imageio.stream.FileImageOutputStream.<init>(Unknown Source) at com.sun.imageio.spi.FileImageOutputStreamSpi.createOutputStreamInstance(Unknown Source) at javax.imageio.ImageIO.createImageOutputStream(Unknown Source) at javax.imageio.ImageIO.write(Unknown Source) at nitrogen.terraingen.ToolImageProcessor.b(Unknown Source) at nitrogen.terraingen.ToolImageProcessor.a(Unknown Source) at nitrogen.terraingen.c.b(Unknown Source) at nitrogen.gui.NitroGenUI.run(Unknown Source) at java.lang.Thread.run(Unknown Source) java.lang.NullPointerException at javax.imageio.ImageIO.write(Unknown Source) at nitrogen.terraingen.ToolImageProcessor.b(Unknown Source) at nitrogen.terraingen.ToolImageProcessor.a(Unknown Source) at nitrogen.terraingen.c.b(Unknown Source) at nitrogen.gui.NitroGenUI.run(Unknown Source) at java.lang.Thread.run(Unknown Source) null Total time taken: 0 min 0 sec Link to comment Share on other sites More sharing options...
Damocles Posted June 21, 2020 Author Share Posted June 21, 2020 The program cannot load the resource files. Thats either because they are not there, or there are not permissions to load the files. Try to unpack and run it from a different folder. The desktop or D drive for example. Link to comment Share on other sites More sharing options...
Annihilatorza Posted June 24, 2020 Share Posted June 24, 2020 Hi There Damocles Thanks for the awesome work. With regards to roads and the city grid, do you know when that is going to full completed? Would it be possible to generate roads with sidewalks, street signs, street lamps, speed bumps, traffic circles ect. Thanks for all your hard work. Anni Link to comment Share on other sites More sharing options...
Recommended Posts