Jump to content

Smooth transition to radiated biome


Alphado-Jaki

Recommended Posts

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.

 

NV7pvwcm.png

 

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.

Link to comment
Share on other sites

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

 

1. edit cell_cache_size into 9.

<?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.

	<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.

	<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!

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...