Fix biome seed gen (#15352)
Well the command itself didn't set the seed properly so.
This commit is contained in:
@@ -2,6 +2,7 @@ using System.Linq;
|
|||||||
using Content.Server.Administration;
|
using Content.Server.Administration;
|
||||||
using Content.Server.Atmos;
|
using Content.Server.Atmos;
|
||||||
using Content.Server.Atmos.Components;
|
using Content.Server.Atmos.Components;
|
||||||
|
using Content.Server.Parallax;
|
||||||
using Content.Shared.Administration;
|
using Content.Shared.Administration;
|
||||||
using Content.Shared.Atmos;
|
using Content.Shared.Atmos;
|
||||||
using Content.Shared.Gravity;
|
using Content.Shared.Gravity;
|
||||||
@@ -62,8 +63,8 @@ public sealed class PlanetCommand : IConsoleCommand
|
|||||||
MetaDataComponent? metadata = null;
|
MetaDataComponent? metadata = null;
|
||||||
|
|
||||||
var biome = _entManager.EnsureComponent<BiomeComponent>(mapUid);
|
var biome = _entManager.EnsureComponent<BiomeComponent>(mapUid);
|
||||||
biome.BiomePrototype = args[1];
|
_entManager.System<BiomeSystem>().SetPrototype(biome, args[1]);
|
||||||
biome.Seed = _random.Next();
|
_entManager.System<BiomeSystem>().SetSeed(biome, _random.Next());
|
||||||
_entManager.Dirty(biome);
|
_entManager.Dirty(biome);
|
||||||
|
|
||||||
var gravity = _entManager.EnsureComponent<GravityComponent>(mapUid);
|
var gravity = _entManager.EnsureComponent<GravityComponent>(mapUid);
|
||||||
|
|||||||
@@ -58,8 +58,22 @@ public sealed class BiomeSystem : SharedBiomeSystem
|
|||||||
|
|
||||||
private void OnBiomeMapInit(EntityUid uid, BiomeComponent component, MapInitEvent args)
|
private void OnBiomeMapInit(EntityUid uid, BiomeComponent component, MapInitEvent args)
|
||||||
{
|
{
|
||||||
component.Seed = _random.Next();
|
SetSeed(component, _random.Next());
|
||||||
component.Noise.SetSeed(component.Seed);
|
}
|
||||||
|
|
||||||
|
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);
|
Dirty(component);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototy
|
|||||||
|
|
||||||
namespace Content.Shared.Parallax.Biomes;
|
namespace Content.Shared.Parallax.Biomes;
|
||||||
|
|
||||||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true)]
|
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true), Access(typeof(SharedBiomeSystem))]
|
||||||
public sealed partial class BiomeComponent : Component
|
public sealed partial class BiomeComponent : Component
|
||||||
{
|
{
|
||||||
public FastNoiseLite Noise = new();
|
public FastNoiseLite Noise = new();
|
||||||
|
|||||||
Reference in New Issue
Block a user