|
FrameIT
|
Organizes (insertion/ deletion / etc. operations) and sepperates Fact spaces. Keeps track of insertion/ deletion actions for undo and redo. More...
Classes | |
| class | GlobalFactDictionary |
| struct | meta |
| Each Fact entry in MyFactSpace has a corresponding meta entry in MetaInf. The meta struct is a collection of meta-variables. <seealsocref="PruneWorkflow"/> More... | |
| struct | stepnote |
| Keeps track of insertion/ deletion/ etc. operations for undo and redo More... | |
Public Member Functions | |
| FactRecorder () | |
| Only used by JsonConverter to initiate empty instance. More... | |
| void | Dispose () |
| FactRecorder (bool invoke=false) | |
| Standard Constructor for empty, ready to use FactRecorder More... | |
| bool | TryGetFact (string URI, out Fact found) |
| Exposes Dictionary<TKey, TValue>.TryGetValue(TKey, out TValue) of MyFactSpace More... | |
| meta | GetFactMeta (string id) |
Exposes contens of MetaInf
| |
| stepnote | GetWorkflow (int index) |
| Exposes contens of Workflow More... | |
| bool | ContainsKey (string id) |
wrappes MyFactSpace.ContainsKey(id ) More... | |
| bool | ContainsLabel (string label) |
| Looks up if there is a label Fact.GetLabel in MyFactSpace.Values More... | |
| string | Add (Fact value, out bool exists, bool samestep, Gadget gadget, string scroll_label, bool isImmutable=false, bool force=false) |
| Call this to Add a Fact to this instance. More... | |
| bool | Remove (Fact value, bool samestep, Gadget gadget, bool deleteSolutionFact=false) |
Call this to Remove a Fact from this instance. If other Facts depend on value Remove(/, true)will be called recursively/ cascadingly. More... | |
| bool | Remove (string key, bool samestep, Gadget gadget, bool deleteImmutables=false) |
| bool | safe_dependencies (string key, out List< string > dependencies) |
| searches recursively for Facts where Fact.getDependentFactIds includes key / found dependencies More... | |
| void | undo () |
| Undoes an entire step or last softreset . No Fact will be actually added, removed or deleted; only its visablity and meta.active changes.
More... | |
| void | redo () |
| Redoes an entire step . No Fact will be actually added, removed or deleted; only its visablity and meta.active changes.
More... | |
| void | Clear () |
| Resets to "factory conditions". Neither deletes Facts nor invokes CommunicationEvents.RemoveFactEvent More... | |
| void | hardreset (bool invoke_event=true) |
| Resets to "factory conditions". deletes Facts and invokes CommunicationEvents.RemoveFactEvent iff invoke_event && invoke. More... | |
| void | softreset () |
Undoes all worksteps (since marker) and sets soft_resetted to true. More... | |
| void | fastforward () |
Redoes all worksteps (from marker onwards) and sets soft_resetted to false. More... | |
| void | Draw (bool draw_all=false) |
Call this after assigning a stored instance in an empty world, that was not drawn. Redoes/ draws everything from marker = 0 to draw_all ? worksteps : backlog More... | |
| void | Undraw (bool force_invoke=false) |
| Undraws everything by invoking CommunicationEvents.RemoveFactEvent, that is meta.active, but does not change that satus. More... | |
| bool | DynamiclySolved (SolutionRecorder MinimalSolution, out List< List< string > > MissingElements, out List< List< string > > Solutions) |
| Used to check wether this satisfies the constrains of an Solution. Only meta.active are accounted for. More... | |
| IEnumerable< Gadget > | GetUsedGadgets () |
| int | GetNumberOfGadgets () |
| IEnumerable< string > | GetUsedScrolls () |
| int | GetNumberOfScrolls () |
| int | GetNumberOfFacts () |
Public Member Functions inherited from IJSONsavable< FactRecorder > | |
| virtual string | _IJGetName (string name) |
| virtual List< Directories > | _IJGetHierarchie (List< Directories > hierarchie_base) |
| virtual bool | _IJGetRawObject (out T payload, string path) |
| virtual T | _IJPreProcess (T payload) |
| virtual T | _IJPostProcess (T payload) |
| bool | store (List< Directories > hierarchie, string name, bool use_install_folder=false, bool overwrite=true, bool deep_store=true) |
| bool | store_children (List< Directories > hierarchie, string name, bool use_install_folder=false, bool overwrite=true, bool deep_store=true) |
Static Public Member Functions | |
| static T | ReInitializeFactOrganizer< T > (T source, bool invoke, out Dictionary< string, string > old_to_new) |
| Used to parse read-in FactRecorder by JsonReader and make Fact.Id conform. Also poppulates OldToNewURI More... | |
| static bool | FindEquivalent (IReadOnlyDictionary< string, Fact > FactSpace, Fact search, out string found_key, out Fact found_value, out bool exact, bool allow_exact=true) |
Static Public Member Functions inherited from IJSONsavable< FactRecorder > | |
| static bool | store (List< Directories > hierarchie, string name, T payload, bool use_install_folder=false, bool overwrite=true, bool deep_store=true) |
| static bool | store_children (List< Directories > hierarchie, string name, T payload, bool use_install_folder=false, bool overwrite=true, bool deep_store=true) |
| static bool | load_children (List< Directories > hierarchie, string name, ref T raw_payload, bool use_install_folder=false, bool deep_load=true, bool post_process=true) |
| static bool | load (List< Directories > hierarchie, string name, out T payload, bool use_install_folder=false, bool deep_load=true, bool post_process=true) |
| static T | postprocess (T payload) |
| static T | preprocess (T payload) |
| static void | delete_children (List< Directories > hierarchie, string name, bool use_install_folder=false, int skip_last_children=0) |
| static bool | delete (List< Directories > hierarchie, string name, bool use_install_folder=false) |
Public Attributes | |
| bool | invoke |
If set to true, Remove(string, bool) and Add(Fact, out bool, bool) will invoke CommunicationEvents.RemoveFactEvent and CommunicationEvents.AddFactEvent respectively. More... | |
Protected Attributes | |
| List< string > | ImmutableFacts = new() |
| Contains Immutable Fact.Ids; e.g: From a SolutionRecorder which are being exposed to the Player. More... | |
| Dictionary< Gadget,(int first_occurrence, int last_occurrence)> | GadgetWorkflowDict = new() |
| Dictionary< int, Gadget > | WorkflowGadgetDict = new() { { -1, null } } |
| Dictionary< string, meta > | MetaInf = new() |
| List< stepnote > | Workflow = new() |
| Keeps track of insertion/ deletion/ etc. operations for undo and redo More... | |
| int | marker = 0 |
| Notes position in Workflow for undo and redo; the pointed to element is non-acitve More... | |
| int | worksteps = 0 |
Backlock logic redundant - for convinience. Keeps track of number of steps in Workflow. One step can consist of multiple operations.
| |
| int | backlog = 0 |
Backlock logic redundant - for convinience. Keeps track of number of steps in Workflow, which are not set active. One step can consist of multiple operations.
| |
| bool | soft_resetted = false |
Set to true if recently been resetted. More... | |
Package Attributes | |
| int | MaxLabelId = 0 |
| Keeps track of maximum Fact.LabelId for Fact.generateLabel. More... | |
| SortedSet< int > | UnusedLabelIds = new() |
| Stores unused Fact.LabelId for Fact.generateLabel, wich were freed in Fact.freeAutoLabel for later reuse to keep naming space compact. More... | |
Properties | |
| IReadOnlyDictionary< string, Fact > | MyFactSpace [get] |
| static IReadOnlyDictionary< string, Fact > | AllFacts [get] |
| Fact | this[string id] [get] |
wrappes MyFactSpace[id ]
| |
| string | name = null [getset] |
| For store(string, List<Directories>, bool, bool) and load(ref FactRecorder, bool, string, List<Directories>, bool, out Dictionary<string, string>) More... | |
| string | path = null [getset] |
| For store(string, List<Directories>, bool, bool) and load(ref FactRecorder, bool, string, List<Directories>, bool, out Dictionary<string, string>) More... | |
Properties inherited from IJSONsavable< FactRecorder > | |
| string | name [getset] |
| string | path [getset] |
Private Member Functions | |
| void | WorkflowAdd (stepnote note) |
| prunes & adds note to Workflow; Invokes Events More... | |
| void | PruneWorkflow (stepnote not_me) |
| set current (displayed) state in stone, a.k.a. delete non meta.active Facts for good; resets un-redo parameters More... | |
| void | yeetusdeletus (List< string > deletereverse, bool samestep, Gadget gadget) |
| Turns every Fact in deletereverse (in reverse order) inactive, as it would be removed, but without checking for (recursive) dependencies. More... | |
| void | reversestep (int pos, bool samestep=false) |
| reverses any entire step; adds process to Workflow! More... | |
| FactRecorder IJSONsavable< FactRecorder >. | _IJPostProcess (FactRecorder raw_payload) |
| FactRecorder IJSONsavable< FactRecorder >. | _IJPreProcess (FactRecorder payload) |
| void | InvokeFactEvent (bool creation, string Id) |
| Updates MetaInf, Fact.GetLabel and invokes CommunicationEvents (latter iff invoke is set) More... | |
Static Private Member Functions | |
| static | FactRecorder () |
Private Attributes | |
| IReadOnlyDictionary< string, Fact > | JsonFactSpace = null |
Additional Inherited Members | |
Static Public Attributes inherited from IJSONsavable< FactRecorder > | |
| static readonly IJSONsavable< T > | Instance |
| static readonly FieldInfo[] | JsonSaveableFields |
| static readonly FieldInfo[] | JsonAutoPreProcessFields |
| static readonly FieldInfo[] | JsonAutoPostProcessFields |
| static readonly FieldInfo[] | JsonSeperateFields |
Static Protected Attributes inherited from IJSONsavable< FactRecorder > | |
| static List< Directories > | hierarchie |
Organizes (insertion/ deletion / etc. operations) and sepperates Fact spaces. Keeps track of insertion/ deletion actions for undo and redo.
|
staticprivate |
| FactRecorder.FactRecorder | ( | ) |
Only used by JsonConverter to initiate empty instance.
| FactRecorder.FactRecorder | ( | bool | invoke = false | ) |
Standard Constructor for empty, ready to use FactRecorder
| invoke | sets invoke. |
|
private |
|
private |
| string FactRecorder.Add | ( | Fact | value, |
| out bool | exists, | ||
| bool | samestep, | ||
| Gadget | gadget, | ||
| string | scroll_label, | ||
| bool | isImmutable = false, |
||
| bool | force = false |
||
| ) |
Call this to Add a Fact to this instance.
Warning: If return_value != value .Id, value will be deleted for good to reduce ressource usage!
| value | to be added |
| exists | true iff value already exists (may be inactive before opreation) |
| samestep | set true if Fact creation happens as a subsequent/ consequent step of multiple Fact creations and/or deletions, and you whish that these are affected by a single undo/ redo step |
| gadget | the Gadgetused to create this Fact or null |
| scroll_label | the Scrollused to create this Fact or null |
| isImmutable | will eneable delete protection, will BE recorded in ImmutableFacts, will NOT be recorded in Workflow |
| void FactRecorder.Clear | ( | ) |
Resets to "factory conditions". Neither deletes Facts nor invokes CommunicationEvents.RemoveFactEvent
| bool FactRecorder.ContainsKey | ( | string | id | ) |
| bool FactRecorder.ContainsLabel | ( | string | label | ) |
Looks up if there is a label Fact.GetLabel in MyFactSpace.Values
| label | supposed Fact.GetLabel to be checked |
true iff MyFactSpace conatains a Value Fact, where Fact.GetLabel == label .| void FactRecorder.Dispose | ( | ) |
| void FactRecorder.Draw | ( | bool | draw_all = false | ) |
Call this after assigning a stored instance in an empty world, that was not drawn. Redoes/ draws everything from marker = 0 to draw_all ? worksteps : backlog
Does not invoke softreset or undo in any way and thus may trigger Exceptions or undefined behaviour if any Fact in MyFactSpace is already drawn.
| bool FactRecorder.DynamiclySolved | ( | SolutionRecorder | MinimalSolution, |
| out List< List< string > > | MissingElements, | ||
| out List< List< string > > | Solutions | ||
| ) |
Used to check wether this satisfies the constrains of an Solution. Only meta.active are accounted for.
| MinimalSolution | describes constrains |
| MissingElements | elements which were not found in SolutionRecorder.ValidationSet in a format reflecting that of SolutionRecorder.ValidationSet |
| Solutions | elements which were found in SolutionRecorder.ValidationSet in a format reflecting that of SolutionRecorder.ValidationSet |
true iff all constrains set by MinimalSolution are met| void FactRecorder.fastforward | ( | ) |
Redoes all worksteps (from marker onwards) and sets soft_resetted to false.
|
static |
| meta FactRecorder.GetFactMeta | ( | string | id | ) |
| int FactRecorder.GetNumberOfFacts | ( | ) |
| int FactRecorder.GetNumberOfGadgets | ( | ) |
| int FactRecorder.GetNumberOfScrolls | ( | ) |
| IEnumerable< Gadget > FactRecorder.GetUsedGadgets | ( | ) |
| IEnumerable< string > FactRecorder.GetUsedScrolls | ( | ) |
| stepnote FactRecorder.GetWorkflow | ( | int | index | ) |
| void FactRecorder.hardreset | ( | bool | invoke_event = true | ) |
Resets to "factory conditions". deletes Facts and invokes CommunicationEvents.RemoveFactEvent iff invoke_event && invoke.
| invoke_event | if set to true and invoke set to true will invoke CommunicationEvents.RemoveFactEvent |
|
private |
Updates MetaInf, Fact.GetLabel and invokes CommunicationEvents (latter iff invoke is set)
|
private |
set current (displayed) state in stone, a.k.a. delete non meta.active Facts for good; resets un-redo parameters
| void FactRecorder.redo | ( | ) |
|
static |
Used to parse read-in FactRecorder by JsonReader and make Fact.Id conform. Also poppulates OldToNewURI
| target | to be parsed into, will be overwritten. If invoke = true, target should be StageStatic.stage.factState, outherwise InvokeFactEvent(bool, string) will cause Exceptions when it invokes Events of CommunicationEvents |
| source | instance to be parsed |
| invoke | see invoke |
| old_to_new | Generated to map Key outdated Fact.Ids to corresponding Value updatated Fact.Ids. |
| T | : | FactRecorder | |
| T | : | new() |
| bool FactRecorder.Remove | ( | Fact | value, |
| bool | samestep, | ||
| Gadget | gadget, | ||
| bool | deleteSolutionFact = false |
||
| ) |
Call this to Remove a Fact from this instance. If other Facts depend on value Remove(/, true)will be called recursively/ cascadingly.
this will not delete a Fact, but sets it inactive for later deletion when pruned.
| value | to be removed |
| samestep | set true if Fact deletion happens as a subsequent/ consequent step of multiple Fact creations and/or deletions, and you whish that these are affected by a single undo/ redo step |
| gadget | the Gadgetused to delete value or null |
| deleteSolutionFact | can overwrite protection from Facts imported from a SolutionRecorder |
true iff value .Id was found.| bool FactRecorder.Remove | ( | string | key, |
| bool | samestep, | ||
| Gadget | gadget, | ||
| bool | deleteImmutables = false |
||
| ) |
this will not delete a Fact, but sets it inactive for later deletion when pruned.
| key | to be removed |
| samestep | set true if Fact deletion happens as a subsequent/ consequent step of multiple Fact creations and/or deletions, and you whish that these are affected by a single undo/ redo step |
| gadget | the Gadgetused to delete value or null |
| deleteImmutables | can overwrite protection from Facts in ImmutableFacts |
true iff value was found.
|
private |
reverses any entire step; adds process to Workflow!
Warning: unused therefore untested and unmaintained.
| pos | position after steptail-end of the step to be reversed |
| samestep | see yeetusdeletus(List<string>, bool).samestep |
| bool FactRecorder.safe_dependencies | ( | string | key, |
| out List< string > | dependencies | ||
| ) |
| void FactRecorder.softreset | ( | ) |
Undoes all worksteps (since marker) and sets soft_resetted to true.
| bool FactRecorder.TryGetFact | ( | string | URI, |
| out Fact | found | ||
| ) |
Exposes Dictionary<TKey, TValue>.TryGetValue(TKey, out TValue) of MyFactSpace
| void FactRecorder.undo | ( | ) |
| void FactRecorder.Undraw | ( | bool | force_invoke = false | ) |
Undraws everything by invoking CommunicationEvents.RemoveFactEvent, that is meta.active, but does not change that satus.
| force_invoke | if set true, invokes CommunicationEvents.RemoveFactEvent for every Fact regardles of meta.active status or invoke |
|
private |
prunes & adds note to Workflow; Invokes Events
| note | to be added |
|
private |
Turns every Fact in deletereverse (in reverse order) inactive, as it would be removed, but without checking for (recursive) dependencies.
| deletereverse | to be removed, but without checking for (recursive) dependencies |
| samestep | see Remove(string, bool).samestep. Only applies to last (first iteration) element of deletereverse ; for everything else samestep will be set to true. |
|
protected |
|
protected |
|
protected |
Contains Immutable Fact.Ids; e.g: From a SolutionRecorder which are being exposed to the Player.
Will NOT be recorded in Workflow!
| bool FactRecorder.invoke |
If set to true, Remove(string, bool) and Add(Fact, out bool, bool) will invoke CommunicationEvents.RemoveFactEvent and CommunicationEvents.AddFactEvent respectively.
|
private |
|
protected |
|
package |
Keeps track of maximum Fact.LabelId for Fact.generateLabel.
|
protected |
Set to true if recently been resetted.
|
package |
Stores unused Fact.LabelId for Fact.generateLabel, wich were freed in Fact.freeAutoLabel for later reuse to keep naming space compact.
|
protected |
|
protected |
|
protected |
|
getset |
For store(string, List<Directories>, bool, bool) and load(ref FactRecorder, bool, string, List<Directories>, bool, out Dictionary<string, string>)
|
getset |
For store(string, List<Directories>, bool, bool) and load(ref FactRecorder, bool, string, List<Directories>, bool, out Dictionary<string, string>)
|
get |
wrappes MyFactSpace[id ]
| id | a Fact.Id in MyFactSpace |
MyFactSpace[id ]