Sign in to follow this  
Xeon

WGenerator - Arpy's Edit

Recommended Posts

WGenerator - Arpy's Edit


based off WGenerator by Budda (obviously)


 


Download JAR | Download Source


 


 


 


Since my editions have deviated so far from Budda's I have decided to create a separate thread to avoid confusion.


 


 


 


For information on how to use WGenerator stock features please refer to the official WGenerator thread by Budda


 


 


 


Whats new?


  • Added height map importing from 16 bit grayscale PNG images
  • Added height map exporting to 16 bit grayscale PNG images
  • Added an "erosion maximum slope value" allowing you to fine tune slope erosion
  • Added a check box for "land sliding" allowing you to enable/disable dirt sliding above the set "max dirt slope"
  • Added an input for "cliff ratio" allowing you to choose how much large slopes protrude through the dirt layer

 


How to use the new features:


 


Import



  1. Before importing ensure that the file you wish to import is compatible; It must be a PNG file that is 16 bit grayscale (refer to tips on how to make these)
  2. Before importing into WGenerator, set the map size and map height settings; map size should be the same size as your height map you wish to import, and height should whatever height the map was designed for
  3. To import click "Import" and navigate to your height map, select it and press okay- if the file is compatible and there are no errors your height map will be loaded


 


Export



  1. Before exporting ensure that you import or generate a height map
  2. To export click "Export" and a 16 bit grayscale PNG image of your height map will be saved to your map folder

 



 


Erosion Min/Max Slope



  • Set a min and max slope height before eroding your height map
  • Erosion will only take effect  between the value of min slope and max slope- you can use this to smooth out cliffs while leaving rough plains, or to smooth out rough plains while keeping jagged cliffs

 



 


Land Sliding



  • Enable this to enable dirt sliding- that is, dirt slides when the current slope is greater than the average of Max Dirt Slope and Max Dirt Slope Diagonal; similar to how dirt dropping works in Wurm
  • Disable to disable dirt sliding- dirt placement will ignore the current slope and will not slide to other tiles

 



 


Cliff Ratio



  • Determines how much a slope protrudes through the dirt layer
  • Lower values give smooth terrain with little cliffs, higher ones give rough terrain with bigger cliffs


 


Tips:


  • To create a 16 bit grayscale PNG file you can use Photoshop, World Machine, or another tool capable of exporting/saving to this file type
  • Although many image editing program can open and edit a 16 bit grayscale PNG, many cannot save in this format
  • All features have been implemented into the save/load action system- however, when loading an action file with an imported height map the image must be inside the map folder
  • For help creating nice islands in World Machine 2 here is a nice tutorial: http://www.planetminecraft.com/blog/how-to-create-awsome-terrains-with-world-machine/

 


 


 


 


Many thanks to Budda for developing WGenerator  :wub:


Edited by Xeon
  • Like 2

Share this post


Link to post
Share on other sites

Is there a reason why each time I import and then drop dirt, the water level seems to be counting from a different starting point? For the life of me I cannot get it to where it was in a previous attempt using the exact same settings and seed (increasing the water height value seemingly does nothing or floods the whole thing).


Share this post


Link to post
Share on other sites

Please give us a way to see in-game coordinates on the map editor so we can modify our spawn location.


Share this post


Link to post
Share on other sites

Instead of having to constantly re-calulate biome seeding heights [because I changed the water level] is a hassle; it would be great if there could be an option for biome seeding where it generates based on + / - from the current water level. 


 


It would be much easier if all biome seeding had a relationship to the water level either plus or minus. eg: Find a water level that looks good, then Load Action List which uses the current water level to adjust it's Min / Max Height values.


 


But, thanks for the import/export -- much needed!


Share this post


Link to post
Share on other sites

Why not simply upload the sources to Github and make a PR for it to be merged into the original Wurm Generator?


Share this post


Link to post
Share on other sites

I do think there would be more gained if everyone worked together on one program having three versions of WGen now is getting confusing. If you all worked together maybe you can even make more improvements too.


  • Like 2

Share this post


Link to post
Share on other sites

L3DT is free and can save height maps in 16 bit greyscale png format


it also can export other maps like bioms


dont suppose youll make a biome importer ? i guess the next step is having a bit more control over biom placement in an easy manner


Share this post


Link to post
Share on other sites

biome import image format already was established by AK_ map uploader.  Use the 24b color PNG files with the 8b rgb color assignments documented in the readme and java.   It extended the dump map color palette to assign colors for flora (trees, bushes and flowers) as well as for the ore maps.


 


https://github.com/aekazakov/WurmMapUploader


 


If you use a biome generator it needs to be able to define the color palette to use and restriction to Wurm biomes.  Many of them might use splat maps which is not the same thing and not needed in wurm, splat maps are for defining game engine blending of terrain/flora types on the same tile which wurm cannot do.   Instead follow the expanded dump map color palette method AK_ established which follows the convention that each tile has a flora on grass, or a terrain other than grass.  


 


The compete set of PNG is a rock height 16b grayscale, a surface height 16b grayscale, a 24b color surface/flora type and a 24b color ore type.  If you leave the ore type map out the game will generate the ores.


Edited by yarnevk

Share this post


Link to post
Share on other sites

Okay, so I'm not sure if its an API issue or a generation issue but all ores that get exposed spawn at "The ore will run out soon" which is less than 100


Share this post


Link to post
Share on other sites

Is there a reason why each time I import and then drop dirt, the water level seems to be counting from a different starting point? For the life of me I cannot get it to where it was in a previous attempt using the exact same settings and seed (increasing the water height value seemingly does nothing or floods the whole thing).

 

Pretty sure that shouldn't be happening, I see no reason why it would either unless the map you are importing is messed up? Are you setting the max height to the same value before you import the map?

 

Why not simply upload the sources to Github and make a PR for it to be merged into the original Wurm Generator?

 

I have no idea how to use Github :x

 

biome import image format already was established by AK_ map uploader.  Use the 24b color PNG files with the 8b rgb color assignments documented in the readme and java.   It extended the dump map color palette to assign colors for flora (trees, bushes and flowers) as well as for the ore maps.

 

https://github.com/aekazakov/WurmMapUploader

 

If you use a biome generator it needs to be able to define the color palette to use and restriction to Wurm biomes.  Many of them might use splat maps which is not the same thing and not needed in wurm, splat maps are for defining game engine blending of terrain/flora types on the same tile which wurm cannot do.   Instead follow the expanded dump map color palette method AK_ established which follows the convention that each tile has a flora on grass, or a terrain other than grass.  

 

The compete set of PNG is a rock height 16b grayscale, a surface height 16b grayscale, a 24b color surface/flora type and a 24b color ore type.  If you leave the ore type map out the game will generate the ores.

 

I'll work on implementing a biome map importing, there are some serioud bugs that need to be sorted out first though.

 

Okay, so I'm not sure if its an API issue or a generation issue but all ores that get exposed spawn at "The ore will run out soon" which is less than 100

 

:wacko:  lets hope it's not the API.

Share this post


Link to post
Share on other sites

I've had it happen on a couple of maps now, fresh, new generation, same thing.


Share this post


Link to post
Share on other sites

I've had it happen on a couple of maps now, fresh, new generation, same thing.

 

Are you generating heightmaps or importing them? Do it like 2 or 3 times where it doesn't match up but you followed the same steps and save the action lists each time. If you can post those here (and any heightmap you're importing) then I'd more than happy to debug it for you. Xeon is absolutely right though, it shouldn't be happening and I can't fathom a way for it to happen nor can I recreate the issue myself.

Edited by Ahiri

Share this post


Link to post
Share on other sites

Are you generating heightmaps or importing them? Do it like 2 or 3 times where it doesn't match up but you followed the same steps and save the action lists each time. If you can post those here (and any heightmap you're importing) then I'd more than happy to debug it for you. Xeon is absolutely right though, it shouldn't be happening and I can't fathom a way for it to happen nor can I recreate the issue myself.

Generating maps only, I don't import maps. I've done it a couple of times now and its the same result every time. I have the map_actions.txt saved up until the ore generation part.

 

I'll give it another try and post the actions file.

Edited by WesncIsMe

Share this post


Link to post
Share on other sites

Heres my map actions file, its still doing the same thing with ores

 

HEIGHTMAP:1445632044106,1,512,10,64,4,4096,falseERODE:1000,40,120,40ERODE:500,20,120,40ERODE:500,10,120,10DROPDIRT:1445632044121,300,105,40,56,3800,1.9,trueSEEDBIOME(TILE_TREE_CEDAR):18,50,200,20,30,100,40,60,330,1000SEEDBIOME(TILE_TREE_OAK):25,20,20,20,30,100,40,60,330,1000SEEDBIOME(TILE_TREE_PINE):27,20,100,20,30,100,40,60,330,1000SEEDBIOME(TILE_TREE_PINE):27,20,100,20,30,100,40,60,330,2000SEEDBIOME(TILE_TREE_OLIVE):26,20,100,20,30,100,40,60,330,3000SEEDBIOME(TILE_BUSH_GRAPE):31,20,100,20,30,100,40,60,330,3000SEEDBIOME(TILE_TREE_WALNUT):28,20,50,20,30,100,40,60,330,3000SEEDBIOME(TILE_TREE_LEMON):22,20,50,20,30,100,40,60,330,3200SEEDBIOME(TILE_TREE_CHESTNUT):20,20,50,20,30,100,40,60,330,3200SEEDBIOME(TILE_TREE_FIR):21,20,50,20,30,100,40,60,330,3200SEEDBIOME(TILE_BUSH_THORN):35,20,50,20,30,100,40,60,330,3200SEEDBIOME(TILE_TREE_OAK):25,20,50,20,30,100,40,60,330,4000SEEDBIOME(TILE_TREE_OAK):25,20,50,20,30,100,40,60,330,4000SEEDBIOME(TILE_TREE_PINE):27,20,50,20,30,100,40,60,330,4000SEEDBIOME(TILE_TREE_PINE):27,20,50,20,30,100,40,60,330,4000SEEDBIOME(TILE_TREE_PINE):27,20,100,200,30,100,40,60,330,4000SEEDBIOME(TILE_TREE_PINE):27,20,100,200,30,100,40,60,330,4000SEEDBIOME(TILE_TREE_APPLE):16,50,100,2000,30,100,40,60,3000,4000SEEDBIOME(TILE_TREE_PINE):27,100,100,2000,30,100,40,60,3000,4000SEEDBIOME(TILE_TREE_PINE):27,100,100,2000,30,100,40,60,3000,9000SEEDBIOME(TILE_TREE_PINE):27,100,100,2000,30,100,40,60,3000,9000SEEDBIOME(TILE_TREE_PINE):27,100,100,2000,30,100,40,60,2000,3800SEEDBIOME(TILE_TREE_PINE):27,100,100,2000,30,100,40,60,2000,3800SEEDBIOME(TILE_TREE_PINE):27,100,100,2000,30,100,40,60,2000,3800SEEDBIOME(TILE_TREE_PINE):27,100,100,2000,30,100,40,60,1000,3800SEEDBIOME(TILE_TREE_PINE):27,100,100,2000,30,100,40,60,1000,3900SEEDBIOME(TILE_TREE_PINE):27,100,100,2000,30,100,40,60,1000,3900SEEDBIOME(TILE_BUSH_CAMELLIA):30,100,100,2000,30,100,40,60,1000,3900SEEDBIOME(TILE_TREE_PINE):27,100,200,2000,30,100,40,60,1000,3900SEEDBIOME(TILE_TREE_PINE):27,100,200,2000,30,100,40,60,1000,3900SEEDBIOME(TILE_TREE_PINE):27,100,200,2000,30,100,40,60,320,3900SEEDBIOME(TILE_TREE_PINE):27,100,200,2000,30,100,40,60,320,3900SEEDBIOME(TILE_TREE_PINE):27,100,200,2000,30,100,40,60,320,3900SEEDBIOME(TILE_TREE_PINE):27,100,200,2000,30,100,40,60,320,3900SEEDBIOME(TILE_TREE_PINE):27,100,200,2000,30,100,40,60,2000,3900SEEDBIOME(TILE_TREE_PINE):27,100,200,2000,30,100,40,60,2000,3900SEEDBIOME(TILE_TREE_PINE):27,100,200,2000,30,100,40,60,2000,3900SEEDBIOME(TILE_TREE_PINE):27,100,200,2000,30,100,40,60,2000,3900SEEDBIOME(TILE_TREE_PINE):27,100,200,2000,30,100,40,60,2000,3900SEEDBIOME(TILE_TREE_PINE):27,100,200,2000,30,100,40,60,2000,3900SEEDBIOME(TILE_TREE_PINE):27,100,300,2000,30,100,40,60,2000,3900SEEDBIOME(TILE_TREE_PINE):27,100,300,2000,30,100,40,60,310,3900SEEDBIOME(TILE_TREE_PINE):27,100,300,2000,30,100,40,60,310,3900SEEDBIOME(TILE_TREE_PINE):27,100,300,2000,30,100,40,60,310,3900SEEDBIOME(TILE_TREE_PINE):27,100,300,2000,30,100,40,60,310,3900SEEDBIOME(TILE_TREE_PINE):27,100,300,2000,30,100,40,60,310,3900SEEDBIOME(TILE_TREE_PINE):27,100,300,2000,30,100,40,60,310,2000SEEDBIOME(TILE_TREE_PINE):27,100,300,2000,30,100,40,60,310,2000SEEDBIOME(TILE_TUNDRA):15,1,300,2000,30,100,40,60,290,2500UNDOBIOME:nullSEEDBIOME(TILE_TUNDRA):15,1,200,2000,30,100,40,60,290,2500SEEDBIOME(TILE_TUNDRA):15,1,200,2000,30,100,40,60,290,2500UNDOBIOME:nullSEEDBIOME(TILE_TUNDRA):15,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_TUNDRA):15,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_TUNDRA):15,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_TUNDRA):15,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_TUNDRA):15,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_TUNDRA):15,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_TUNDRA):15,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_TUNDRA):15,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500UNDOBIOME:nullSEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500UNDOBIOME:nullSEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_STEPPE):13,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_SAND):12,1,100,2000,30,100,40,60,290,2500UNDOBIOME:nullSEEDBIOME(TILE_SAND):12,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_SAND):12,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_SAND):12,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_SAND):12,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_SAND):12,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_SAND):12,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_SAND):12,1,100,2000,30,100,40,60,290,2500SEEDBIOME(TILE_SAND):12,1,100,2000,30,100,40,60,290,2500UNDOBIOME:nullSEEDBIOME(TILE_SAND):12,1,100,2000,30,100,40,60,290,2500UNDOBIOME:nullUNDOBIOME:nullSEEDBIOME(TILE_CLAY):0,2000,2,2000,30,100,40,60,290,320SEEDBIOME(TILE_CLAY):0,2000,2,2000,30,100,40,60,290,320SEEDBIOME(TILE_CLAY):0,2000,2,2000,30,100,40,60,290,320SEEDBIOME(TILE_CLAY):0,2000,3,2000,30,100,40,60,290,320UNDOBIOME:nullSEEDBIOME(TILE_TAR):14,2000,2,2000,30,100,40,60,290,2000UNDOBIOME:nullSEEDBIOME(TILE_TAR):14,500,2,2000,30,100,40,60,290,2000UNDOBIOME:nullSEEDBIOME(TILE_TAR):14,100,2,2000,30,100,40,60,290,2000UNDOBIOME:nullSEEDBIOME(TILE_TAR):14,50,2,2000,30,100,40,60,290,2000SEEDBIOME(TILE_PEAT):10,50,2,2000,30,100,40,60,290,2000SEEDBIOME(TILE_PEAT):10,2,10,2000,30,100,40,60,290,2000SEEDBIOME(TILE_CLAY):0,50,20,2000,30,100,40,60,0,250UNDOBIOME:nullSEEDBIOME(TILE_CLAY):0,50,15,2000,30,100,40,60,0,250UNDOBIOME:nullSEEDBIOME(TILE_CLAY):0,100,15,2000,30,100,40,60,0,250SEEDBIOME(TILE_KELP):5,100,15,2000,30,100,40,60,0,250SEEDBIOME(TILE_REED):11,100,15,2000,30,100,40,60,0,250SEEDBIOME(TILE_TAR):14,50,8,2000,30,100,40,60,0,250SEEDBIOME(TILE_LAVA):6,4,10,2000,30,100,40,60,3000,39000UNDOBIOME:nullSEEDBIOME(TILE_LAVA):6,50,10,2000,30,100,40,60,3000,39000UNDOBIOME:nullSEEDBIOME(TILE_LAVA):6,50,10,2000,30,100,40,60,2900,39000UNDOBIOME:nullSEEDBIOME(TILE_LAVA):6,5000,10,2000,30,100,40,60,2900,3900UNDOBIOME:nullSEEDBIOME(TILE_LAVA):6,100,8,2000,30,100,40,60,2900,3900UNDOBIOME:nullSEEDBIOME(TILE_LAVA):6,100,8,2000,30,100,40,60,2900,3900SEEDBIOME(TILE_LAVA):6,100,8,2000,30,100,40,60,2900,3900SEEDBIOME(TILE_LAVA):6,100,8,2000,30,100,40,60,2900,3900SEEDBIOME(TILE_LAVA):6,100,8,2000,30,100,40,60,2900,3900SEEDBIOME(TILE_LAVA):6,100,8,2000,30,100,40,60,2900,3900SEEDBIOME(TILE_LAVA):6,100,8,2000,30,100,40,60,2900,3900GENORES:94.25,2,0.5,0.05,0.5,0.5,0.5,0.5,0.1,0.1,0.5,0.5

Edited by WesncIsMe

Share this post


Link to post
Share on other sites

What I need is two map_actions.txt files. Since you're using the same seed though your second one will overwrite your first one, do the following:


 


  1. Open WGenerator
  2. Create a map as you would normally do
  3. Save the actions you did
  4. Exit WGenerator
  5. Browse to the folder for that seed
  6. Rename map_actions.txt to map_actions_alpha.txt
  7. Open WGenerator
  8. Follow the exact same steps you did previously - to the T
  9. From what I'm gathering at this point your map water height should be different
  10. Save the actions
  11. Browse to the folder for that seed
  12. Rename map_actions.txt to map_actions_beta.txt
  13. Post both those files here

Share this post


Link to post
Share on other sites

Okay, so I'm not sure if its an API issue or a generation issue but all ores that get exposed spawn at "The ore will run out soon" which is less than 100

Edited by sunsvortex

Share this post


Link to post
Share on other sites

Bug?

Heres the result with a heightmap painted in Photoshop CC 2015

PNG (16bit grayscale no compression)

Saved with "Save As..." Compression = None , Interlace = None

Same PNG in both

http://i.imgur.com/7aUvVPp.jpg

PNG here if you want https://dl.dropboxusercontent.com/u/22781761/Downloads/heightmap.png

Result with WGenerator Ahiri's Mod http://i.imgur.com/hqQqtIV.jpg

 

Hmm, did you flatten the image in photoshop before saving to PNG? That seems to happen to me when I don't flatten my height map before saving.

Share this post


Link to post
Share on other sites

The nightly build of Gimp (Gimp 2.9) can save and edit 16 bit greyscale png


Share this post


Link to post
Share on other sites

Benzo, you are more hero! They support up to 32 bit integer and 64 bit floating!!!!


 


DioSan, I don't know why it's doing that in his but I can look at some troubleshooting later.


Edited by Ahiri

Share this post


Link to post
Share on other sites

The nightly build of Gimp (Gimp 2.9) can save and edit 16 bit greyscale png

Finally! been years waiting for that promised patch.

Share this post


Link to post
Share on other sites

possible you could add a reload water button?


 


currently every time i drop dirt on a 8000k map the memory usage goes up till it hits the limit, not sure if this is true for other maps but after you hit max memory it just crashes when trying to add a biom


 


also cant wait for biom import export :)


Share this post


Link to post
Share on other sites

Would you mind if I added your additions to my interface overhaul of wgenerator? (with credit of course, since you don't know how to use git)


 


I've already added most of these other suggestions, such as the reload water button, as well as an awesome progress bar. And will be adding more to improve the user experience.


 


Once it's in a solid state I'll release it and the source so we can hopefully have one tool to build off of.


Share this post


Link to post
Share on other sites

Would you mind if I added your additions to my interface overhaul of wgenerator? (with credit of course, since you don't know how to use git)

 

I've already added most of these other suggestions, such as the reload water button, as well as an awesome progress bar. And will be adding more to improve the user experience.

 

Once it's in a solid state I'll release it and the source so we can hopefully have one tool to build off of.

 

Sure thing, I think the latest edition should be here: https://github.com/ArpyClarkson/WGenerator

If not the source ZIP is not too much different

Share this post


Link to post
Share on other sites

cant wait for the one tool to rule them all!,


although i have noticed that each of the ones that does heightmap import does it slightly different.


still using Arpys cause its the best so far :P dont u dare stop xeon!!


 


the changes im hoping are pushed the most are


 


import heightmap


cliff ratio


land slide


biom export


biom import


reload water

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this