Fix biome seed gen (#15352)

Well the command itself didn't set the seed properly so.
This commit is contained in:
metalgearsloth
2023-04-13 00:38:14 +10:00
committed by GitHub
parent 803aad3555
commit 94ea61defa
3 changed files with 20 additions and 5 deletions

View File

@@ -2,6 +2,7 @@ using System.Linq;
using Content.Server.Administration;
using Content.Server.Atmos;
using Content.Server.Atmos.Components;
using Content.Server.Parallax;
using Content.Shared.Administration;
using Content.Shared.Atmos;
using Content.Shared.Gravity;
@@ -62,8 +63,8 @@ public sealed class PlanetCommand : IConsoleCommand
MetaDataComponent? metadata = null;
var biome = _entManager.EnsureComponent<BiomeComponent>(mapUid);
biome.BiomePrototype = args[1];
biome.Seed = _random.Next();
_entManager.System<BiomeSystem>().SetPrototype(biome, args[1]);
_entManager.System<BiomeSystem>().SetSeed(biome, _random.Next());
_entManager.Dirty(biome);
var gravity = _entManager.EnsureComponent<GravityComponent>(mapUid);

View File

@@ -58,8 +58,22 @@ public sealed class BiomeSystem : SharedBiomeSystem
private void OnBiomeMapInit(EntityUid uid, BiomeComponent component, MapInitEvent args)
{
component.Seed = _random.Next();
component.Noise.SetSeed(component.Seed);
SetSeed(component, _random.Next());
}
public void SetPrototype(BiomeComponent component, string proto)
{
if (component.BiomePrototype == proto)
return;
component.BiomePrototype = proto;
Dirty(component);
}
public void SetSeed(BiomeComponent component, int seed)
{
component.Seed = seed;
component.Noise.SetSeed(seed);
Dirty(component);
}

View File

@@ -4,7 +4,7 @@ using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototy
namespace Content.Shared.Parallax.Biomes;
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true)]
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true), Access(typeof(SharedBiomeSystem))]
public sealed partial class BiomeComponent : Component
{
public FastNoiseLite Noise = new();