public SavedData(LSystemSteppingHandle source)
            {
                this.totalSteps        = source.totalSteps;
                this.lastUpdateChanged = source.lastUpdateChanged;
                this.useSharedSystem   = source.useSharedSystem;

                this.currentState = source.currentState;
                this.lastState    = source.lastState;
                this.oldHandle    = source.globalResourceHandle;

                this.systemObjectId = source.systemObject.myId;

                this.runtimeParameters = source.runtimeParameters;
                this.compiledGlobalCompiletimeReplacements = source.compiledGlobalCompiletimeReplacements;
            }
            public LSystemSteppingHandle Deserialize()
            {
                var target = new LSystemSteppingHandle();

                target.totalSteps = this.totalSteps;

                target.lastUpdateChanged = this.lastUpdateChanged;
                target.useSharedSystem   = this.useSharedSystem;

                target.currentState         = this.currentState;
                target.lastState            = this.lastState;
                target.globalResourceHandle = this.oldHandle;

                var systemObjectId        = this.systemObjectId;
                var lSystemObjectRegistry = RegistryRegistry.GetObjectRegistry <LSystemObject>();

                target.systemObject = lSystemObjectRegistry.GetUniqueObjectFromID(systemObjectId);


                target.runtimeParameters = this.runtimeParameters;
                target.compiledGlobalCompiletimeReplacements = this.compiledGlobalCompiletimeReplacements;

                return(target);
            }