Skip to content

Commit

Permalink
mark component as dirty
Browse files Browse the repository at this point in the history
  • Loading branch information
amylizzle committed Feb 19, 2025
1 parent a08e3b1 commit 608cfc3
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 4 deletions.
1 change: 1 addition & 0 deletions OpenDreamRuntime/Objects/DreamObject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public class DreamObject {
protected PvsOverrideSystem? PvsOverrideSystem => ObjectDefinition.PvsOverrideSystem;
protected MetaDataSystem? MetaDataSystem => ObjectDefinition.MetaDataSystem;
protected ServerVerbSystem? VerbSystem => ObjectDefinition.VerbSystem;
protected ServerDreamParticlesSystem? ParticlesSystem => ObjectDefinition.ParticlesSystem;

protected Dictionary<string, DreamValue>? Variables;
//handle to the list of vars on this object so that it's only created once and refs to object.vars are consistent
Expand Down
5 changes: 4 additions & 1 deletion OpenDreamRuntime/Objects/DreamObjectDefinition.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ public sealed class DreamObjectDefinition {
public readonly PvsOverrideSystem? PvsOverrideSystem;
public readonly MetaDataSystem? MetaDataSystem;
public readonly ServerVerbSystem? VerbSystem;
public readonly ServerDreamParticlesSystem? ParticlesSystem;

public readonly TreeEntry TreeEntry;
public string Type => TreeEntry.Path;
Expand Down Expand Up @@ -74,6 +75,7 @@ public DreamObjectDefinition(DreamObjectDefinition copyFrom) {
PvsOverrideSystem = copyFrom.PvsOverrideSystem;
MetaDataSystem = copyFrom.MetaDataSystem;
VerbSystem = copyFrom.VerbSystem;
ParticlesSystem = copyFrom.ParticlesSystem;

TreeEntry = copyFrom.TreeEntry;
InitializationProc = copyFrom.InitializationProc;
Expand All @@ -88,7 +90,7 @@ public DreamObjectDefinition(DreamObjectDefinition copyFrom) {
Verbs = new List<int>(copyFrom.Verbs);
}

public DreamObjectDefinition(DreamManager dreamManager, DreamObjectTree objectTree, AtomManager atomManager, IDreamMapManager dreamMapManager, IMapManager mapManager, DreamResourceManager dreamResourceManager, WalkManager walkManager, IEntityManager entityManager, IPlayerManager playerManager, ISerializationManager serializationManager, ServerAppearanceSystem? appearanceSystem, TransformSystem? transformSystem, PvsOverrideSystem? pvsOverrideSystem, MetaDataSystem? metaDataSystem, ServerVerbSystem? verbSystem, TreeEntry? treeEntry) {
public DreamObjectDefinition(DreamManager dreamManager, DreamObjectTree objectTree, AtomManager atomManager, IDreamMapManager dreamMapManager, IMapManager mapManager, DreamResourceManager dreamResourceManager, WalkManager walkManager, IEntityManager entityManager, IPlayerManager playerManager, ISerializationManager serializationManager, ServerAppearanceSystem? appearanceSystem, TransformSystem? transformSystem, PvsOverrideSystem? pvsOverrideSystem, MetaDataSystem? metaDataSystem, ServerVerbSystem? verbSystem, ServerDreamParticlesSystem? particlesSystem, TreeEntry? treeEntry) {
DreamManager = dreamManager;
ObjectTree = objectTree;
AtomManager = atomManager;
Expand All @@ -104,6 +106,7 @@ public DreamObjectDefinition(DreamManager dreamManager, DreamObjectTree objectTr
PvsOverrideSystem = pvsOverrideSystem;
MetaDataSystem = metaDataSystem;
VerbSystem = verbSystem;
ParticlesSystem = particlesSystem;

TreeEntry = treeEntry;

Expand Down
4 changes: 3 additions & 1 deletion OpenDreamRuntime/Objects/DreamObjectTree.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ public sealed class DreamObjectTree {
private PvsOverrideSystem? _pvsOverrideSystem;
private MetaDataSystem? _metaDataSystem;
private ServerVerbSystem? _verbSystem;
private ServerDreamParticlesSystem? _particlesSystem;

public void LoadJson(DreamCompiledJson json) {
var types = json.Types ?? Array.Empty<DreamTypeJson>();
Expand All @@ -84,6 +85,7 @@ public void LoadJson(DreamCompiledJson json) {
_entitySystemManager.TryGetEntitySystem(out _pvsOverrideSystem);
_entitySystemManager.TryGetEntitySystem(out _metaDataSystem);
_entitySystemManager.TryGetEntitySystem(out _verbSystem);
_entitySystemManager.TryGetEntitySystem(out _particlesSystem);

Strings = json.Strings ?? new();

Expand Down Expand Up @@ -335,7 +337,7 @@ private void LoadTypesFromJson(DreamTypeJson[] types, ProcDefinitionJson[]? proc
foreach (TreeEntry type in GetAllDescendants(Root)) {
int typeId = type.Id;
DreamTypeJson jsonType = types[typeId];
var definition = new DreamObjectDefinition(_dreamManager, this, _atomManager, _dreamMapManager, _mapManager, _dreamResourceManager, _walkManager, _entityManager, _playerManager, _serializationManager, _appearanceSystem, _transformSystem, _pvsOverrideSystem, _metaDataSystem, _verbSystem, type);
var definition = new DreamObjectDefinition(_dreamManager, this, _atomManager, _dreamMapManager, _mapManager, _dreamResourceManager, _walkManager, _entityManager, _playerManager, _serializationManager, _appearanceSystem, _transformSystem, _pvsOverrideSystem, _metaDataSystem, _verbSystem, _particlesSystem, type);

type.ObjectDefinition = definition;
type.TreeIndex = treeIndex++;
Expand Down
2 changes: 1 addition & 1 deletion OpenDreamRuntime/Objects/Types/DreamObjectParticles.cs
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ protected override void SetVar(string varName, DreamValue value) {
}
break;
}

ParticlesSystem!.MarkDirty((Entity, ParticlesComponent));
base.SetVar(varName, value); //all calls should set the internal vars, so GetVar() can just be default also
}
}
6 changes: 5 additions & 1 deletion OpenDreamRuntime/Rendering/ServerDreamParticleSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,8 @@

namespace OpenDreamRuntime.Rendering;

public sealed class ServerDreamParticlesSystem : SharedDreamParticlesSystem {}
public sealed class ServerDreamParticlesSystem : SharedDreamParticlesSystem {
public void MarkDirty(Entity<DreamParticlesComponent> ent){
Dirty(ent, ent.Comp);
}
}

0 comments on commit 608cfc3

Please sign in to comment.