public override ICustomObject recreate(Dictionary <string, string> additionalSaveData, object replacement) { Bench obj = (Bench)Revitalize.ModCore.Serializer.DeserializeGUID <Bench>(additionalSaveData["GUID"]); if (obj == null) { return(null); } Dictionary <Vector2, Guid> guids = new Dictionary <Vector2, Guid>(); foreach (KeyValuePair <Vector2, Guid> pair in obj.childrenGuids) { guids.Add(pair.Key, pair.Value); } foreach (KeyValuePair <Vector2, Guid> pair in guids) { obj.childrenGuids.Remove(pair.Key); //Revitalize.ModCore.log("DESERIALIZE: " + pair.Value.ToString()); ChairTileComponent component = Revitalize.ModCore.Serializer.DeserializeGUID <ChairTileComponent>(pair.Value.ToString()); component.InitNetFields(); obj.addComponent(pair.Key, component); } obj.InitNetFields(); if (!Revitalize.ModCore.ObjectGroups.ContainsKey(additionalSaveData["GUID"])) { Revitalize.ModCore.ObjectGroups.Add(additionalSaveData["GUID"], obj); return(obj); } else { return(Revitalize.ModCore.ObjectGroups[additionalSaveData["GUID"]]); } }
public override void recreate() { Dictionary <Vector2, Guid> guids = new Dictionary <Vector2, Guid>(); foreach (KeyValuePair <Vector2, Guid> pair in this.childrenGuids) { guids.Add(pair.Key, pair.Value); } foreach (KeyValuePair <Vector2, Guid> pair in guids) { this.childrenGuids.Remove(pair.Key); ChairTileComponent component = Revitalize.ModCore.Serializer.DeserializeGUID <ChairTileComponent>(pair.Value.ToString()); component.InitNetFields(); this.removeComponent(pair.Key); this.addComponent(pair.Key, component); } this.InitNetFields(); if (!Revitalize.ModCore.ObjectGroups.ContainsKey(this.guid.ToString())) { Revitalize.ModCore.ObjectGroups.Add(this.guid.ToString(), this); } }