• If you have a mod, tool or prefab, please use the Resources section. Click Mods at the top of the forums.

Smooth transition to radiated biome

Alphado-Jaki

New member
I've come up with this idea while updating my terrain mod and guide. Personally, I won't use this for my mod, but looks useful for other modder, so I post here.




To whom haven't use RWG Previewer, Red is Radiated biome, Yellow is Wasteland biome.

This tweak removes radiated & wasteland from center of the world. Those biome are appears as player goes to far from center.

 
You can use this mod by 3 steps in rwgmixer.xml.

1. edit cell_cache_size into 9.

Code:
<?xml version="1.0" encoding="utf-8"?>
<rwgmixer>
<world ruleset="vanilla" />

<rulesets>
	<ruleset name="vanilla" cell_cache_size="[color="#0000CD"]9[/color]" cell_size="1800" cell_offset="0" generation_distance="10000" terrain_generator="vanilla" biome_generator="vanilla">
2. Edit biome_generators as below, or define new biome_generator.

Code:
	<biome_generators>
	<biome_generator name="vanilla">
		<module name="voronoi" type="Voronoi">
			<property name="frequency" value="0.0008"/>
			<property name="displacement" value="1"/>
		</module>
		<module name="voronoiOutput" type="BiasOutput">
			<property name="sourceModule" value="voronoi"/>
			<property name="bias" value="1"/>
		</module>

		<module name="const0" type="Constant"/>
		<module name="const11" type="Constant">
			<property name="constant" value="-0.1"/>
		</module>
		<module name="const12" type="Constant">
			<property name="constant" value="-0.2"/>
		</module>
		<module name="const21" type="Constant">
			<property name="constant" value="0.1"/>
		</module>
		<module name="const22" type="Constant">
			<property name="constant" value="0.2"/>
		</module>
		<!--  0.2,0.4  0.6,0.8  1.0,1.2  1.3,1.4  1.5,1.6  1.8,2.0  -->
		<module name="except11" type="Select">
			<property name="controlModule" value="voronoiOutput"/>
			<property name="sourceModule1" value="const0"/>
			<property name="sourceModule2" value="const12"/>
			<property name="bounds" value="0.2,0.4"/>
		</module>
		<module name="except12" type="Select">
			<property name="controlModule" value="voronoiOutput"/>
			<property name="sourceModule1" value="except11"/>
			<property name="sourceModule2" value="const12"/>
			<property name="bounds" value="0.6,0.8"/>
		</module>
		<module name="except13" type="Select">
			<property name="controlModule" value="voronoiOutput"/>
			<property name="sourceModule1" value="except12"/>
			<property name="sourceModule2" value="const12"/>
			<property name="bounds" value="1.0,1.2"/>
		</module>
		<module name="except14" type="Select">
			<property name="controlModule" value="voronoiOutput"/>
			<property name="sourceModule1" value="except13"/>
			<property name="sourceModule2" value="const11"/>
			<property name="bounds" value="1.3,1.4"/>
		</module>
		<module name="except15" type="Select">
			<property name="controlModule" value="voronoiOutput"/>
			<property name="sourceModule1" value="except14"/>
			<property name="sourceModule2" value="const11"/>
			<property name="bounds" value="1.5,1.6"/>
		</module>
		<module name="except1Last" type="Select">
			<property name="controlModule" value="voronoiOutput"/>
			<property name="sourceModule1" value="except15"/>
			<property name="sourceModule2" value="const12"/>
			<property name="bounds" value="1.8,2.0"/>
		</module>
		<!--  0.0,0.2  0.4,0.6  0.8,1.0  1.2,1.3  1.4,1.5  1.6,1.8  -->
		<module name="except21" type="Select">
			<property name="controlModule" value="voronoiOutput"/>
			<property name="sourceModule1" value="const0"/>
			<property name="sourceModule2" value="const22"/>
			<property name="bounds" value="0.0,0.2"/>
		</module>
		<module name="except22" type="Select">
			<property name="controlModule" value="voronoiOutput"/>
			<property name="sourceModule1" value="except21"/>
			<property name="sourceModule2" value="const22"/>
			<property name="bounds" value="0.4,0.6"/>
		</module>
		<module name="except23" type="Select">
			<property name="controlModule" value="voronoiOutput"/>
			<property name="sourceModule1" value="except22"/>
			<property name="sourceModule2" value="const22"/>
			<property name="bounds" value="0.8,1.0"/>
		</module>
		<module name="except24" type="Select">
			<property name="controlModule" value="voronoiOutput"/>
			<property name="sourceModule1" value="except23"/>
			<property name="sourceModule2" value="const21"/>
			<property name="bounds" value="1.2,1.3"/>
		</module>
		<module name="except25" type="Select">
			<property name="controlModule" value="voronoiOutput"/>
			<property name="sourceModule1" value="except24"/>
			<property name="sourceModule2" value="const21"/>
			<property name="bounds" value="1.4,1.5"/>
		</module>
		<module name="except26" type="Select">
			<property name="controlModule" value="voronoiOutput"/>
			<property name="sourceModule1" value="except25"/>
			<property name="sourceModule2" value="const22"/>
			<property name="bounds" value="1.6,1.8"/>
		</module>
		<module name="except27" type="Select">
			<property name="controlModule" value="voronoiOutput"/>
			<property name="sourceModule1" value="except26"/>
			<property name="sourceModule2" value="const21"/>
			<property name="bounds" value="0.2,0.3"/>
		</module>
		<module name="except28" type="Select">
			<property name="controlModule" value="voronoiOutput"/>
			<property name="sourceModule1" value="except27"/>
			<property name="sourceModule2" value="const21"/>
			<property name="bounds" value="0.6,0.7"/>
		</module>
		<module name="except2Last" type="Select">
			<property name="controlModule" value="voronoiOutput"/>
			<property name="sourceModule1" value="except28"/>
			<property name="sourceModule2" value="const21"/>
			<property name="bounds" value="1.8,1.9"/>
		</module>

		<module name="slopeBase" type="Cylinders">
			<property name="frequency" value="0.00005"/>
		</module>	<!--Edit frequency if you edit generation_distance. 
						e.g.) 0.00005 for 10000  0.000025 for 20000 -->
		<module name="slope1Scaled" type="ScaleBiasOutput">
			<property name="sourceModule" value="slopeBase"/>
			<property name="scale" value="1.5"/>
			<property name="bias" value="0.5"/>
		</module><!-- 2@0 1@3,333 0@6,666 -1@10,000 -->
		<module name="slope1Output" type="ClampOutput">
			<property name="sourceModule" value="slope1Scaled"/>
			<property name="bounds" value="0,1"/>
		</module>
		<module name="slope2Scaled" type="ScaleBiasOutput">
			<property name="sourceModule" value="slopeBase"/>
			<property name="scale" value="-1.5"/>
			<property name="bias" value="-0.5"/>
		</module><!-- -2@0 -1@3,333 0@6,666 1@10,000 -->
		<module name="slope2Output" type="ClampOutput">
			<property name="sourceModule" value="slope2Scaled"/>
			<property name="bounds" value="0,1"/>
		</module>

		<module name="except1Out" type="Multiply">
			<property name="sourceModule1" value="except1Last"/>
			<property name="sourceModule2" value="slope1Output"/>
		</module>
		<module name="except2Out" type="Multiply">
			<property name="sourceModule1" value="except2Last"/>
			<property name="sourceModule2" value="slope2Output"/>
		</module>

		<module name="biome1" type="Add">
			<property name="sourceModule1" value="voronoiOutput"/>
			<property name="sourceModule2" value="except1Out"/>
		</module>
		<module name="biome2" type="Add">
			<property name="sourceModule1" value="biome1"/>
			<property name="sourceModule2" value="except2Out"/>
		</module>

		<module name="biomeDither" type="FastTurbulence">
			<property name="sourceModule" value="biome2"/>
			<property name="frequency" value="0.25"/>
			<property name="power" value="8"/>
			<property name="roughness" value="5"/>
		</module>

		<module name="biomeJiggle" type="FastTurbulence">
			<property name="sourceModule" value="biomeDither"/>
			<property name="frequency" value="0.0016"/>
			<property name="power" value="400"/>
			<property name="roughness" value="1"/>
		</module>

		<module name="clampOutput" type="ClampOutput">
			<property name="sourceModule" value="biomeJiggle"/>
			<property name="bounds" value="0,2"/>
		</module>

		<output module="clampOutput"/>
	</biome_generator>
</biome_generators>
3. Edit biome_spawn_rules as below.

Code:
	<biome_spawn_rules>
	<biome_spawn_rule name="desert">
		<biome_generator range="0,0.2"/>
	</biome_spawn_rule>

	<biome_spawn_rule name="forest">
		<biome_generator range="0.4,0.6"/>
	</biome_spawn_rule>

	<biome_spawn_rule name="plains">
		<biome_generator range="0.8,1.0"/>
	</biome_spawn_rule>

	<biome_spawn_rule name="burnt_forest">
		<biome_generator range="1.2,1.3"/>
	</biome_spawn_rule>

	<biome_spawn_rule name="pine_forest">
		<biome_generator range="1.4,1.5"/>
		<terrain_generator range="150,175"/>
	</biome_spawn_rule>

	<biome_spawn_rule name="snow">
		<biome_generator range="1.6,1.8"/>
		<terrain_generator range="176,255"/>
	</biome_spawn_rule>

	<biome_spawn_rule name="wasteland">
		<biome_generator range="0.2,0.4"/>
		<biome_generator range="0.6,0.8"/>
		<biome_generator range="1.0,1.2"/>
		<biome_generator range="1.3,1.4"/>
		<biome_generator range="1.5,1.6"/>
		<biome_generator range="1.8,2.0"/>
	</biome_spawn_rule>

	<biome_spawn_rule name="radiated">
		<biome_generator range="0.3,0.4"/>
		<biome_generator range="0.7,0.8"/>
		<biome_generator range="1.35,1.4"/>
		<biome_generator range="1.55,1.6"/>
		<biome_generator range="1.1,1.2"/>
		<biome_generator range="1.9,2.0"/>
	</biome_spawn_rule>

	<biome_spawn_rule name="radiated">
		<distance_from_center range="10000,20000"/>
	</biome_spawn_rule>

	<biome_spawn_rule name="water">
		<terrain_generator range="-31,-1"/>
	</biome_spawn_rule>

</biome_spawn_rules>
That's all!

 
Interesting idea. Seedname influence not destroying it?

You figured out what affects the parameter "cell_cache_size="?

 
Interesting idea. Seedname influence not destroying it?
Yeah, of course. :)

You figured out what affects the parameter "cell_cache_size="?
Several alpha ago, I tested lower than 8 (vanilla) because of curiousity. This resulted as some biomes are replaced with the unseen blank biome which generates only dirt and clay. So, I assume this option as how many biome can be generated per cell.

1mvyv34.png


This is the SS of the blank biome. Highway road also vanishes.

 
Tested with some seedname. Looks nice to me. :)

[table=width: 500, class: grid, align: center]

[tr]

[td]rad[/td]

[td]radiation[/td]

[td]alfort[/td]

[td]amarelo[/td]

[/tr]

[tr]

[td][/td]

[td][/td]

[td][/td]

[td][/td]

[/tr]

[/table]

 
Several alpha ago, I tested lower than 8 (vanilla) because of curiousity. This resulted as some biomes are replaced with the unseen blank biome which generates only dirt and clay. So, I assume this option as how many biome can be generated per cell.

1mvyv34.png


This is the SS of the blank biome. Highway road also vanishes.
!!!hmmm....Thanks for the info! now I can investigate it!

 
cell cache size is how many cells can be held in memory
Yes... this is understandable, because it is written in the name of the function.

But what does that mean? it's about memory when creating the world? or when you draw during the game or like that ?

what does it practically affect?

how can we use this?

 
Yeah... I also want to know about that. Other options such as level can be find "how works" or "what is valid use", while some of them are broken for now.

But this, cell_cache_size, which appears at the first several line, is really unclear. What most modders (including me) can do is only guessing from behavior during trial and error (this causes misunderstand), or from meaning of the attribute name.

- - - Updated - - -

I hope devs make it clear sooner or later. :p

 
Back
Top