Skip to content
Snippets Groups Projects
Commit 8a6c62d8 authored by Marco Zimmer's avatar Marco Zimmer
Browse files

+ Added Gadged logging in FactOrganizer; + Refactored Gadgets;

parent 3f5b981f
Branches
No related tags found
No related merge requests found
Showing
with 355 additions and 399 deletions
......@@ -46,11 +46,11 @@ public static void GenerateDemoA()
buttom = new PointFact(Vector3.zero, Vector3.up, StageStatic.stage.solution),
top = new PointFact(Vector3.zero + Vector3.up * minimalSolutionHight, Vector3.up, StageStatic.stage.solution);
StageStatic.stage.solution.Add(buttom, out _);
StageStatic.stage.solution.Add(top, out _, true);
StageStatic.stage.solution.Add(buttom, out _, false, null);
StageStatic.stage.solution.Add(top, out _, true, null);
LineFact target = new LineFact(buttom.Id, top.Id, StageStatic.stage.solution);
var target_Id = StageStatic.stage.solution.Add(target, out _, true);
var target_Id = StageStatic.stage.solution.Add(target, out _, true, null);
// Set Solution
StageStatic.stage.solution.ValidationSet =
......@@ -92,11 +92,11 @@ public static void GenerateDemoB()
buttom = new PointFact(Vector3.zero, Vector3.up, StageStatic.stage.solution),
top = new PointFact(Vector3.zero + Vector3.up * minimalSolutionHight, Vector3.up, StageStatic.stage.solution);
StageStatic.stage.solution.Add(buttom, out _);
StageStatic.stage.solution.Add(top, out _, true);
StageStatic.stage.solution.Add(buttom, out _, false, null);
StageStatic.stage.solution.Add(top, out _, true, null);
LineFact target = new LineFact(buttom.Id, top.Id, StageStatic.stage.solution);
var target_Id = StageStatic.stage.solution.Add(target, out _, true);
var target_Id = StageStatic.stage.solution.Add(target, out _, true, null);
// Set Solution
StageStatic.stage.solution.ValidationSet =
......
......@@ -52,7 +52,7 @@ Camera toCamMain()
IEnumerator CheckForNewMainCamRoutine()
{
yield return new WaitForSeconds(2);
//yield return new WaitForSeconds(2); No!
switch (UIconfig.MainCameraID)
{
......@@ -71,6 +71,7 @@ IEnumerator CheckForNewMainCamRoutine()
break;
}
yield return null;
//StopCoroutine(CheckForNewMainCamRoutine());
//print("Stopped:CheckForNewMainCamRoutine()");
//Cam = Camera.main;
......
......@@ -17,7 +17,7 @@ public static class FactManager
/// \copydetails FactManager
public static Fact AddFactIfNotFound(Fact fact, out bool exists, bool samestep)
{
return StageStatic.stage.factState[StageStatic.stage.factState.Add(fact, out exists, samestep)];
return StageStatic.stage.factState[StageStatic.stage.factState.Add(fact, out exists, samestep, GadgetManager.activeGadget.GetType())];
}
/// \copybrief FactManager <summary></summary>
......
......@@ -171,15 +171,26 @@ protected internal struct meta
/// </summary>
public bool active;
/// <summary>
/// keeps track with wich <see cref="Gadget"/> the <see cref="Fact"/> is created
/// </summary>
public Type gadget {
get => _gadget;
set => _gadget = Gadget.GadgetTypes.Contains(value) ? value : typeof(Gadget.UndefinedGadget);
}
private Type _gadget;
/// <summary>
/// Initiator
/// </summary>
/// <param name="workflow_id">sets <see cref="workflow_id"/></param>
/// <param name="active">sets <see cref="active"/></param>
public meta(int workflow_id, bool active = true)
public meta(int workflow_id, bool active, Type gadget)
{
this.workflow_id = workflow_id;
this.active = active;
_gadget = null; //Compiler Restriction
this.gadget = gadget;
}
}
......@@ -254,7 +265,7 @@ public static T ReInitializeFactOrganizer<T>
old_to_new.Add(sn.Id, add.Id);
}
target.Add(add, out _, sn.samestep);
target.Add(add, out _, sn.samestep, source.MetaInf[sn.Id].gadget);
}
else if (old_to_new.ContainsKey(sn.Id))
// Remove
......@@ -406,7 +417,7 @@ private void PruneWorkflow()
/// <param name="samestep">set <c>true</c> if <see cref="Fact"/> creation happens as a subsequent/ consequent step of multiple <see cref="Fact"/> creations and/or deletions,
/// and you whish that these are affected by a single <see cref="undo"/>/ <see cref="redo"/> step</param>
/// <returns><see cref="Fact.Id"/> of <paramref name="value"/> or <see cref="FindEquivalent(Fact, out string, out bool)">found</see> <see cref="Fact"/> iff <paramref name="exists"/>==<c>true</c></returns>
public string Add(Fact value, out bool exists, bool samestep = false)
public string Add(Fact value, out bool exists, bool samestep, Type gadget)
{
soft_resetted = false;
#pragma warning disable IDE0018 // Inlinevariablendeklaration
......@@ -427,7 +438,7 @@ public string Add(Fact value, out bool exists, bool samestep = false)
zombie.creation = false; // this meta entry will be deleted, but will not trigger deletion
Workflow[MetaInf[key].workflow_id] = zombie;
// set new init location
MetaInf[key] = new meta(marker, true);
MetaInf[key] = new meta(marker, true, gadget);
}
// zombies are undead!
else if (MetaInf[key].active)
......@@ -440,7 +451,7 @@ public string Add(Fact value, out bool exists, bool samestep = false)
{
key = value.Id;
FactDict.Add(key, value);
MetaInf.Add(key, new meta(marker, true));
MetaInf.Add(key, new meta(marker, true, gadget));
}
WorkflowAdd(new stepnote(key, samestep, true, this));
......@@ -457,9 +468,7 @@ public string Add(Fact value, out bool exists, bool samestep = false)
/// and you whish that these are affected by a single <see cref="undo"/>/ <see cref="redo"/> step</param>
/// <returns><c>true</c> iff <paramref name="value"/><see cref="Fact.Id">.Id</see> was found.</returns>
public bool Remove(Fact value, bool samestep = false)
{
return this.Remove(value.Id, samestep);
}
=> this.Remove(value.Id, samestep);
/// \copybrief Remove(Fact, bool)
/// <remarks>this will not <see cref="Fact.delete(bool)">delete</see> a <see cref="Fact"/>, but sets it <see cref="meta.active">inactive</see> for later <see cref="Fact.delete(bool)">deletion</see> when <see cref="PruneWorkflow">pruned</see>.</remarks>
......@@ -763,7 +772,7 @@ public bool DynamiclySolved(
{
MissingElements = new List<List<string>>();
// need to work not on ref/out
List<List<string>> Solution_L = new List<List<string>>();
List<List<string>> Solution_L = new();
int MissingElementsCount = 0;
var activeList = FactDict.Values.Where(f => MetaInf[f.Id].active);
......@@ -812,4 +821,7 @@ public bool DynamiclySolved(
return MissingElementsCount == 0;
}
public IEnumerable<Type> GetUsedGadgets()
=> MetaInf.Values.Where(inf => inf.active).Select(inf => inf.gadget);
}
\ No newline at end of file
......@@ -75,7 +75,7 @@ public string ComparerString
}
}
/// <summary>
/// Collection of <c>string</c> representations of *all* available <see cref="FactComparer"/> to choose from.
/// Collection of <c>Type</c>s of *all* available <see cref="FactComparer"/> to choose from.
/// </summary>
[JsonIgnore]
public static readonly IEnumerable<Type> fact_comparer = Assembly.GetExecutingAssembly().GetTypes().Where(typeof(FactComparer).IsAssignableFrom);
......
......@@ -24,69 +24,68 @@ public class AngleTool : Gadget
private Vector3 angleMiddlePoint;
private float curveRadius;
new void Awake()
public override void _Awake()
{
base.Awake();
UiName = "Angle Mode";
if(MaxRange == 0)
MaxRange = GlobalBehaviour.GadgetLaserDistance;
}
//Initialize Gadget when enabled AND activated
new void OnEnable()
public override void _OnEnable()
{
base.OnEnable();
this.ResetGadget();
ResetGadget();
}
void OnDisable()
public override void _OnDisable()
{
this.ResetGadget();
ResetGadget();
}
public override void OnHit(RaycastHit hit)
public override void _OnHit(RaycastHit hit)
{
if (!GadgetCanBeUsed) return;
if (!this.isActiveAndEnabled) return;
if (!isActiveAndEnabled) return;
if (hit.transform.gameObject.layer == LayerMask.NameToLayer("Point"))
{
PointFact tempFact = (PointFact)StageStatic.stage.factState[hit.transform.GetComponent<FactObject>().URI];
//If two points were already selected and now the third point got selected
if (this.angleModeIsFirstPointSelected && this.angleModeIsSecondPointSelected)
if (angleModeIsFirstPointSelected && angleModeIsSecondPointSelected)
{
//Create AngleFact
//Check if new Point is equal to one of the previous points -> if true -> cancel
if (!(this.angleModeFirstPointSelected.Id == tempFact.Id || this.angleModeSecondPointSelected.Id == tempFact.Id))
if (!(angleModeFirstPointSelected.Id == tempFact.Id || angleModeSecondPointSelected.Id == tempFact.Id))
{
FactManager.AddAngleFact(((PointFact)this.angleModeFirstPointSelected).Id, ((PointFact)this.angleModeSecondPointSelected).Id, ((PointFact)tempFact).Id);
FactManager.AddAngleFact((angleModeFirstPointSelected).Id, (angleModeSecondPointSelected).Id, tempFact.Id);
}
ResetGadget();
}
//If only one point was already selected
else if (this.angleModeIsFirstPointSelected && !this.angleModeIsSecondPointSelected)
else if (angleModeIsFirstPointSelected && !angleModeIsSecondPointSelected)
{
//Check if the 2 selected points are the same: If not
if (this.angleModeFirstPointSelected.Id != tempFact.Id)
if (angleModeFirstPointSelected.Id != tempFact.Id)
{
this.angleModeIsSecondPointSelected = true;
this.angleModeSecondPointSelected = tempFact;
angleModeIsSecondPointSelected = true;
angleModeSecondPointSelected = tempFact;
ActivateCurveDrawing();
}
else
{
this.angleModeFirstPointSelected = null;
this.angleModeIsFirstPointSelected = false;
}
//else
//{
// angleModeFirstPointSelected = null;
// angleModeIsFirstPointSelected = false;
//}
}
//If no point was selected before
else
{
//Save the first point selected
this.angleModeIsFirstPointSelected = true;
this.angleModeFirstPointSelected = tempFact;
angleModeIsFirstPointSelected = true;
angleModeFirstPointSelected = tempFact;
}
}
//No point was hit
......@@ -100,33 +99,33 @@ public override void OnHit(RaycastHit hit)
void Update()
{
if (!this.isActiveAndEnabled) return;
if (this.curveDrawingActivated)
UpdateCurveDrawing(this.Cursor.transform.position);
if (!isActiveAndEnabled) return;
if (curveDrawingActivated)
UpdateCurveDrawing(Cursor.transform.position);
}
private void ResetGadget()
{
this.angleModeIsFirstPointSelected = false;
this.angleModeFirstPointSelected = null;
this.angleModeIsSecondPointSelected = false;
this.angleModeSecondPointSelected = null;
angleModeIsFirstPointSelected = false;
angleModeFirstPointSelected = null;
angleModeIsSecondPointSelected = false;
angleModeSecondPointSelected = null;
DeactivateCurveDrawing();
}
//Expect a LineFact here, where Line.Pid2 will be the Basis-Point of the angle
public void ActivateCurveDrawing()
{
this.lineRenderer.enabled = true;
lineRenderer.enabled = true;
//In AngleMode with 3 Points we want to draw nearly a rectangle so we add a startPoint and an Endpoint to this preview
this.lineRenderer.positionCount = curveDrawingVertexCount + 2;
this.lineRenderer.material = this.anglePreviewMaterial;
lineRenderer.positionCount = curveDrawingVertexCount + 2;
lineRenderer.material = anglePreviewMaterial;
lineRenderer.startWidth = 0.05f;
lineRenderer.endWidth = 0.05f;
//Set CurveDrawing activated
this.curveDrawingActivated = true;
curveDrawingActivated = true;
//curveEndPoint is a point on the Line selected, with some distance from point2
curveEndPoint = angleModeSecondPointSelected.Point + 0.3f * (angleModeFirstPointSelected.Point - angleModeSecondPointSelected.Point).magnitude * (angleModeFirstPointSelected.Point - angleModeSecondPointSelected.Point).normalized;
......@@ -150,7 +149,7 @@ public void UpdateCurveDrawing(Vector3 currentPosition)
angleModeSecondPointSelected.Point
};
for (float ratio = 0; ratio <= 1; ratio += 1.0f / this.curveDrawingVertexCount)
for (float ratio = 0; ratio <= 1; ratio += 1.0f / curveDrawingVertexCount)
{
var tangentLineVertex1 = Vector3.Lerp(startPoint, curveMiddlePoint, ratio);
var tangentLineVertex2 = Vector3.Lerp(curveMiddlePoint, curveEndPoint, ratio);
......@@ -168,10 +167,10 @@ public void UpdateCurveDrawing(Vector3 currentPosition)
public void DeactivateCurveDrawing()
{
this.lineRenderer.positionCount = 0;
this.linePositions = new List<Vector3>();
this.curveDrawingActivated = false;
this.lineRenderer.enabled = false;
lineRenderer.positionCount = 0;
linePositions = new List<Vector3>();
curveDrawingActivated = false;
lineRenderer.enabled = false;
}
}
......@@ -2,21 +2,18 @@
public class ExtraGadget : Gadget
{
new void Awake()
public override void _Awake()
{
base.Awake();
UiName = "Extra Mode";
MaxRange = GlobalBehaviour.GadgetPhysicalDistance;
}
new void OnEnable()
{
base.OnEnable();
}
public override void _OnDisable() { }
public override void OnHit(RaycastHit hit)
{
public override void _OnEnable() { }
public override void _OnHit(RaycastHit hit)
{
throw new System.NotImplementedException();
}
}
using UnityEngine;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using UnityEngine;
/// <summary>
/// Base class for all Gadgets to derive from.
/// A Gadget is a tool for the player (and level editor) to interact with the GameWorld.
/// </summary>
public class Gadget : MonoBehaviour
public abstract class Gadget: MonoBehaviour
{
/// <summary> Position in tool belt. </summary>
/// <remarks>Set in Inspector or <see cref="Awake"/></remarks>
......@@ -19,30 +23,77 @@ public class Gadget : MonoBehaviour
/// <summary>Which sprite to use</summary>
/// <remarks>Set in Inspector</remarks>
public Sprite Sprite;
/// <summary>Layers to ignore for thid gadget by default.</summary>
/// <summary>Layers to ignore for this gadget by default.</summary>
/// <remarks>Set in Inspector</remarks>
public LayerMask ignoreLayerMask;
/// <summary>Which cursor to use</summary>
/// <remarks>When not set in Inspector, will be searching for any <see cref="WorldCursor"/>.</remarks>
public WorldCursor Cursor;
protected void Awake()
/// <summary>
/// Collection of <c>Type</c>s of *all* available <see cref="Gadget"/>s to choose from.
/// </summary>
public static readonly IEnumerable<Type> GadgetTypes = Assembly.GetExecutingAssembly().GetTypes().Where(typeof(Gadget).IsAssignableFrom);
void Awake()
{
if (Cursor == null)
Cursor = GameObject.FindObjectOfType<WorldCursor>();
CommunicationEvents.TriggerEvent.AddListener(OnHit);
CommunicationEvents.TriggerEvent.AddListener(_OnHit);
_Awake();
}
protected void OnEnable()
void OnEnable()
{
this.Cursor.setLayerMask(~this.ignoreLayerMask.value);
Cursor.MaxRange = MaxRange;
_OnEnable();
}
void OnDisable()
{
_OnDisable();
}
public void OnHit (RaycastHit hit)
{
_OnHit(hit);
}
public abstract void _Awake();
public abstract void _OnEnable();
public abstract void _OnDisable();
/// <summary>
/// Called when <see cref="CommunicationEvents.TriggerEvent"/> is invoked, a.k.a. when Player clicks in GameWorld.
/// </summary>
/// <param name="hit">the position where it was clicked</param>
public virtual void OnHit(RaycastHit hit) { }
public abstract void _OnHit(RaycastHit hit);
public class UndefinedGadget : Gadget
{
public override void _Awake()
{
throw new NotImplementedException();
}
public override void _OnDisable()
{
throw new NotImplementedException();
}
public override void _OnEnable()
{
throw new NotImplementedException();
}
public override void _OnHit(RaycastHit hit)
{
throw new NotImplementedException();
}
}
}
......@@ -15,27 +15,25 @@ public class LineTool : Gadget
private List<Vector3> linePositions = new List<Vector3>();
public Material linePreviewMaterial;
new void Awake()
public override void _Awake()
{
base.Awake();
UiName = "Line Mode";
if (MaxRange == 0)
MaxRange = GlobalBehaviour.GadgetLaserDistance;
}
//Initialize Gadget when enabled AND activated
new void OnEnable()
public override void _OnEnable()
{
base.OnEnable();
this.ResetGadget();
}
void OnDisable()
public override void _OnDisable()
{
this.ResetGadget();
}
public override void OnHit(RaycastHit hit)
public override void _OnHit(RaycastHit hit)
{
if (!GadgetCanBeUsed) return;
if (!this.isActiveAndEnabled) return;
......
......@@ -20,31 +20,26 @@ public class LotTool : Gadget
private List<Vector3> linePositions = new List<Vector3>();
public Material linePreviewMaterial;
new void Awake()
public override void _Awake()
{
base.Awake();
this.UiName = "Lot Mode";
if (MaxRange == 0)
MaxRange = GlobalBehaviour.GadgetLaserDistance;
}
//Initialize Gadget when enabled AND activated
new void OnEnable()
public override void _OnEnable()
{
base.OnEnable();
this.ResetGadget();
}
void OnDisable()
public override void _OnDisable()
{
this.ResetGadget();
}
public override void OnHit(RaycastHit hit)
public override void _OnHit(RaycastHit hit)
{
void CreateRayAndAngles(string pidIntersectionPoint, string pidLotPoint, bool samestep)
{
FactManager.AddRayFact(pidIntersectionPoint, pidLotPoint, samestep);
......
......@@ -13,27 +13,25 @@ public class Pendulum : Gadget
private List<Vector3> linePositions = new List<Vector3>();
public Material linePreviewMaterial;
new void Awake()
public override void _Awake()
{
base.Awake();
this.UiName = "Pendulum";
if (MaxRange == 0)
MaxRange = GlobalBehaviour.GadgetLaserDistance;
}
new void OnEnable()
public override void _OnEnable()
{
base.OnEnable();
this.ResetGadget();
ActivateLineDrawing();
}
void OnDisable()
public override void _OnDisable()
{
this.ResetGadget();
}
public override void OnHit(RaycastHit hit)
public override void _OnHit(RaycastHit hit)
{
if (!GadgetCanBeUsed) return;
......@@ -44,8 +42,7 @@ public override void OnHit(RaycastHit hit)
PointFact tempFact = StageStatic.stage.factState[hit.transform.GetComponent<FactObject>().URI] as PointFact;
//Raycast downwoard
RaycastHit ground;
if(Physics.Raycast(tempFact.Point, Vector3.down, out ground, Mathf.Infinity, this.LayerPendulumHits.value))
if(Physics.Raycast(tempFact.Point, Vector3.down, out RaycastHit ground, Mathf.Infinity, this.LayerPendulumHits.value))
{
FactManager.AddPointFact(ground);
}
......@@ -89,8 +86,7 @@ private void UpdateLineDrawing()
this.linePositions[0] = this.Cursor.transform.position;
//Raycast downwoard
RaycastHit ground;
if (Physics.Raycast(this.linePositions[0], Vector3.down, out ground, Mathf.Infinity, this.LayerPendulumHits.value))
if (Physics.Raycast(this.linePositions[0], Vector3.down, out RaycastHit ground, Mathf.Infinity, this.LayerPendulumHits.value))
this.linePositions[1] = ground.point;
else
this.linePositions[1] = this.linePositions[0];
......
......@@ -5,17 +5,15 @@
public class Pointer : Gadget
{
new void Awake()
public override void _Awake()
{
base.Awake();
this.UiName = "Point Mode";
if (MaxRange == 0)
MaxRange = GlobalBehaviour.GadgetLaserDistance;
}
public override void OnHit(RaycastHit hit)
public override void _OnHit(RaycastHit hit)
{
//Debug.Log("pointer1");
if (!GadgetCanBeUsed) return;
if (!this.isActiveAndEnabled) return;
......@@ -28,4 +26,7 @@ public override void OnHit(RaycastHit hit)
}
}
public override void _OnEnable() { }
public override void _OnDisable() { }
}
......@@ -15,9 +15,8 @@ public class PoleTool : Gadget
public float poleHeight = 1f;
public float maxHeight;
new void Awake()
public override void _Awake()
{
base.Awake();
UiName = "PoleTool";
if (MaxRange == 0)
MaxRange = GlobalBehaviour.GadgetPhysicalDistance;
......@@ -25,19 +24,18 @@ public class PoleTool : Gadget
maxHeight = 0.1f;
}
new void OnEnable()
public override void _OnEnable()
{
base.OnEnable();
this.ResetGadget();
ActivateLineDrawing();
}
void OnDisable()
public override void _OnDisable()
{
this.ResetGadget();
}
public override void OnHit(RaycastHit hit)
public override void _OnHit(RaycastHit hit)
{
if (!GadgetCanBeUsed) return;
......
......@@ -5,15 +5,18 @@
public class Remover : Gadget
{
new void Awake()
public override void _Awake()
{
base.Awake();
this.UiName = "Remove Mode";
if (MaxRange == 0)
MaxRange = GlobalBehaviour.GadgetLaserDistance;
}
public override void OnHit(RaycastHit hit)
public override void _OnDisable() { }
public override void _OnEnable() { }
public override void _OnHit(RaycastHit hit)
{
if (!GadgetCanBeUsed) return;
......
......@@ -16,29 +16,25 @@ public class Tape : Gadget
private List<Vector3> linePositions = new List<Vector3>();
public Material linePreviewMaterial;
new void Awake()
public override void _Awake()
{
base.Awake();
this.UiName = "Distance Mode";
if (MaxRange == 0)
MaxRange = GlobalBehaviour.GadgetPhysicalDistance;
//test
//MaxRange = 100;
}
//Initialize Gadget when enabled AND activated
new void OnEnable()
//Initialize Gadget when enabled
public override void _OnEnable()
{
base.OnEnable();
this.ResetGadget();
}
void OnDisable()
public override void _OnDisable()
{
this.ResetGadget();
}
public override void OnHit(RaycastHit hit)
public override void _OnHit(RaycastHit hit)
{
if (!GadgetCanBeUsed) return;
if (!this.isActiveAndEnabled) return;
......@@ -142,4 +138,5 @@ private void DeactivateLineDrawing()
this.linePositions = new List<Vector3>();
this.lineRenderer.enabled = false;
}
}
......@@ -5,17 +5,18 @@
using UnityEngine;
using Newtonsoft.Json;
using static CommunicationEvents;
using System.Reflection;
//using static IJSONsavable<Stage>;
public class Stage: IJSONsavable<Stage>
{
#region metadata
/// <summary> Which category this <see cref="Stage"/> should be displayed in. </summary>
public string category = null;
/// <summary> Where to display this <see cref="Stage"/> within a <see cref="category"/> relative to others. </summary>
public int number = -1;
/// <summary>
/// The name this <see cref="Stage"/> will be displayed with.
/// Also defines names of save files of <see cref="player_record_list">stage progress</see>, <see cref="solution"/>
......@@ -32,15 +33,35 @@ public class Stage: IJSONsavable<Stage>
/// <summary> Wether this <see cref="Stage"/> is located in installation folder or user data (a.k.a. !local).</summary>
public bool use_install_folder = false;
#endregion metadata
/// <summary>
/// Defining when this <see cref="Stage.player_record"/> is considered as solved.
/// <seealso cref="FactOrganizer.DynamiclySolved(SolutionOrganizer, out List{List{string}}, out List{List{string}})"/>
/// </summary>
[JSONsavable.JsonAutoPreProcess, JSONsavable.JsonAutoPostProcess]
public SolutionOrganizer solution = null;
[JsonIgnore, JSONsavable.JsonSeparate]
public SaveGame savegame = null;
#region makros/shortcuts
/// <summary>
/// <see langword="true"/> iff there is at least one element in <see cref="player_record_list"/> where <see cref="PlayerRecord.solved"/> == <see langword="true"/>.
/// </summary>
[JsonIgnore]
//TODO? update color if changed
public bool completed_once { get { return player_record_list != null && player_record_list.Values.Where(s => s.solved == true).Any(); } }
public bool completed_once { get { return player_record_list != null && player_record_list.Values.Any(s => s.solved == true); } }
/// <summary> Current Stage progress.</summary>
[JsonIgnore]
public PlayerRecord player_record {
get => savegame?.player_record;
set => (savegame ??= new())
.player_record = value;
}
/// <summary>
/// A list containing all saved player progress. <br/>
/// - Key: name of file
......@@ -53,13 +74,6 @@ public Dictionary<string, PlayerRecord> player_record_list {
.player_record_list = value;
}
/// <summary>
/// Defining when this <see cref="Stage.player_record"/> is considered as solved.
/// <seealso cref="FactOrganizer.DynamiclySolved(SolutionOrganizer, out List{List{string}}, out List{List{string}})"/>
/// </summary>
[JSONsavable.JsonAutoPreProcess, JSONsavable.JsonAutoPostProcess]
public SolutionOrganizer solution = null;
/// <summary>
/// A wrapper returning (or setting) <see cref="player_record.factState"/>. <br/>
/// When <see cref="player_record"/> == <see langword="null"/>:
......@@ -72,13 +86,9 @@ public FactOrganizer factState {
set => (player_record ??= new(record_name))
.factState = value;
}
/// <summary> Current Stage progress.</summary>
[JsonIgnore]
public PlayerRecord player_record {
get => savegame?.player_record;
set => (savegame ??= new())
.player_record = value;
}
#endregion makros/shortcuts
/// <summary> Returns a name for <see cref="player_record.name"/> which needs to be uniquified once put into <see cref="player_record_list"/> (e.g. by <see cref="push_record(double, bool) adding '_i'"/>).</summary>
private string record_name { get { return name + "_save"; } }
......@@ -470,8 +480,7 @@ public class PlayerRecord: IJSONsavable<PlayerRecord>
public FactOrganizer factState = new();
/// <summary> save game file name </summary>
public string name { get; set; } = null;
public string path { get; set; }
public string path { get; set; } = null;
static PlayerRecord(/*static!*/)
{
......@@ -492,7 +501,6 @@ public PlayerRecord(string name) {
factState = new FactOrganizer();
}
/// <summary>
/// Copies a specified <see cref="PlayerRecord"/>
/// </summary>
......@@ -510,3 +518,12 @@ public PlayerRecord Clone()
return ret;
}
}
public class SolutionApproach: IJSONsavable<SolutionApproach>
{
public string name { get; set; } = null;
public string path { get; set; } = null;
//public PlayerRecord
}
\ No newline at end of file
// This file is used by Code Analysis to maintain SuppressMessage
// attributes that are applied to this project.
// Project-level suppressions either have no target or are given
// a specific target and scoped to a namespace, type, member, etc.
using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage("Style", "IDE0034:Simplify 'default' expression", Justification = "Readabilty", Scope = "member", Target = "~M:IJSONsavable`1.load(System.Collections.Generic.List{CommunicationEvents.Directories},System.String,`0@,System.Boolean,System.Boolean,System.Boolean)~System.Boolean")]
[assembly: SuppressMessage("Style", "IDE0034:Simplify 'default' expression", Justification = "<Pending>", Scope = "member", Target = "~M:JSONsavable.ReadFromJsonFile``1(``0@,System.String)~System.Boolean")]
......@@ -6,14 +6,20 @@ EditorUserSettings:
serializedVersion: 4
m_ConfigSettings:
RecentlyUsedSceneGuid-0:
value: 57505505560608585a56557116730644404e4d7b7c7b7562787e4f66e4b1313e
value: 0502505152005e020c0d0e2446275e44144f19287f707e362c7c4b60b2b9353c
flags: 0
RecentlyUsedSceneGuid-1:
value: 0502505152005e020c0d0e2446275e44144f19287f707e362c7c4b60b2b9353c
value: 5b5200520604510a5b5b587642270744124e4e7a7e7f2764742f1b61b0e6613a
flags: 0
RecentlyUsedSceneGuid-2:
value: 520107035d0c510c080d547215760b4413154d2e7a2c226129281c65e3b63768
flags: 0
RecentlyUsedSceneGuid-3:
value: 0709560454055c0d0c5e5c2444740b4413154a72792d22627c714963e0b6373d
flags: 0
RecentlyUsedSceneGuid-4:
value: 57505505560608585a56557116730644404e4d7b7c7b7562787e4f66e4b1313e
flags: 0
RecentlyUsedScenePath-0:
value: 22424703114646680e0b0227036c721518021d39630928343f162e27e3f22076f7e93ffdfe
flags: 0
......
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &1
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_PixelRect:
serializedVersion: 2
x: 2783
y: 205
width: 640
height: 661
m_ShowMode: 0
m_Title: Build Settings
m_RootView: {fileID: 4}
m_MinSize: {x: 640, y: 601}
m_MaxSize: {x: 4000, y: 4021}
m_Maximized: 0
--- !u!114 &2
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -38,67 +14,17 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_PixelRect:
serializedVersion: 2
x: -1920
x: 0
y: 43
width: 1920
height: 1037
width: 2560
height: 1357
m_ShowMode: 4
m_Title: Hierarchy
m_RootView: {fileID: 9}
m_Title: Project
m_RootView: {fileID: 6}
m_MinSize: {x: 875, y: 300}
m_MaxSize: {x: 10000, y: 10000}
m_Maximized: 1
--- !u!114 &3
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name: BuildPlayerWindow
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 640
height: 661
m_MinSize: {x: 640, y: 580}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 15}
m_Panes:
- {fileID: 15}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &4
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 3}
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 640
height: 661
m_MinSize: {x: 640, y: 601}
m_MaxSize: {x: 4000, y: 4021}
vertical: 0
controlID: 54
--- !u!114 &5
--- !u!114 &2
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -111,19 +37,19 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 12}
- {fileID: 6}
- {fileID: 9}
- {fileID: 3}
m_Position:
serializedVersion: 2
x: 0
y: 30
width: 1920
height: 987
width: 2560
height: 1307
m_MinSize: {x: 300, y: 200}
m_MaxSize: {x: 24288, y: 16192}
vertical: 0
controlID: 220
--- !u!114 &6
controlID: 99
--- !u!114 &3
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -138,18 +64,18 @@ MonoBehaviour:
m_Children: []
m_Position:
serializedVersion: 2
x: 1484
x: 1979
y: 0
width: 436
height: 987
width: 581
height: 1307
m_MinSize: {x: 276, y: 71}
m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 17}
m_ActualView: {fileID: 13}
m_Panes:
- {fileID: 17}
- {fileID: 13}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &7
--- !u!114 &4
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -166,16 +92,16 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 561
height: 588
m_MinSize: {x: 201, y: 221}
m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 18}
width: 748
height: 779
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 14}
m_Panes:
- {fileID: 18}
- {fileID: 14}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &8
--- !u!114 &5
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -185,24 +111,24 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name: ConsoleWindow
m_Name: ProjectBrowser
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 0
y: 588
width: 1484
height: 399
m_MinSize: {x: 101, y: 121}
m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 21}
y: 779
width: 1979
height: 528
m_MinSize: {x: 231, y: 271}
m_MaxSize: {x: 10001, y: 10021}
m_ActualView: {fileID: 12}
m_Panes:
- {fileID: 16}
- {fileID: 21}
m_Selected: 1
m_LastSelected: 0
--- !u!114 &9
- {fileID: 12}
- {fileID: 17}
m_Selected: 0
m_LastSelected: 1
--- !u!114 &6
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -215,22 +141,22 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 10}
- {fileID: 5}
- {fileID: 11}
- {fileID: 7}
- {fileID: 2}
- {fileID: 8}
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 1920
height: 1037
width: 2560
height: 1357
m_MinSize: {x: 875, y: 300}
m_MaxSize: {x: 10000, y: 10000}
m_UseTopView: 1
m_TopViewHeight: 30
m_UseBottomView: 1
m_BottomViewHeight: 20
--- !u!114 &10
--- !u!114 &7
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -247,12 +173,12 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1920
width: 2560
height: 30
m_MinSize: {x: 0, y: 0}
m_MaxSize: {x: 0, y: 0}
m_LastLoadedLayoutName:
--- !u!114 &11
--- !u!114 &8
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -268,12 +194,12 @@ MonoBehaviour:
m_Position:
serializedVersion: 2
x: 0
y: 1017
width: 1920
y: 1337
width: 2560
height: 20
m_MinSize: {x: 0, y: 0}
m_MaxSize: {x: 0, y: 0}
--- !u!114 &12
--- !u!114 &9
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -286,19 +212,19 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 13}
- {fileID: 8}
- {fileID: 10}
- {fileID: 5}
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 1484
height: 987
width: 1979
height: 1307
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 16192, y: 16192}
vertical: 1
controlID: 170
--- !u!114 &13
controlID: 100
--- !u!114 &10
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -311,19 +237,19 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 7}
- {fileID: 14}
- {fileID: 4}
- {fileID: 11}
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 1484
height: 588
width: 1979
height: 779
m_MinSize: {x: 200, y: 100}
m_MaxSize: {x: 16192, y: 8096}
vertical: 0
controlID: 171
--- !u!114 &14
controlID: 77
--- !u!114 &11
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -333,74 +259,24 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name: GameView
m_Name: SceneView
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 561
x: 748
y: 0
width: 923
height: 588
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 20}
width: 1231
height: 779
m_MinSize: {x: 202, y: 221}
m_MaxSize: {x: 4002, y: 4021}
m_ActualView: {fileID: 15}
m_Panes:
- {fileID: 19}
- {fileID: 20}
m_Selected: 1
m_LastSelected: 0
--- !u!114 &15
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 12043, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 640, y: 580}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Build Settings
m_Image: {fileID: 0}
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 2783
y: 205
width: 640
height: 640
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_TreeViewState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs:
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
m_OriginalName:
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: 0
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 0
m_ClientGUIView: {fileID: 0}
m_SearchString:
--- !u!114 &16
- {fileID: 15}
- {fileID: 16}
m_Selected: 0
m_LastSelected: 1
--- !u!114 &12
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -421,10 +297,10 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: -1920
y: 661
width: 1483
height: 378
x: -32000
y: -31191
width: 1978
height: 507
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
......@@ -442,22 +318,22 @@ MonoBehaviour:
m_SkipHidden: 0
m_SearchArea: 1
m_Folders:
- Assets/Scripts/UI/NetwMenue
- Assets/Scripts
m_Globs: []
m_OriginalText:
m_ViewMode: 1
m_StartGridSize: 64
m_LastFolders:
- Assets/Scripts/UI/NetwMenue
- Assets/Scripts
m_LastFoldersGridSize: -1
m_LastProjectPath: C:\Users\o-s-r\Documents\fau\Projekt_KI\OHNELEER\fresh\UFrameIT
m_LastProjectPath: D:\Users\marco\Dokuments\OneDrive\FAU\Informatik\UFrameIT\FrameIT\MaZiFAU
m_LockTracker:
m_IsLocked: 0
m_FolderTreeState:
scrollPos: {x: 0, y: 202}
m_SelectedIDs: d2ee0000
m_LastClickedID: 61138
m_ExpandedIDs: 00000000a67e0000aa7e0000ac7e0000ae7e0000b07e0000b27e0000b47e0000b67e0000b87e0000ba7e0000bc7e0000be7e0000c07e0000c27e0000c47e0000c67e0000c87e0000ca7e0000cc7e0000ce7e0000d07e0000d27e000000ca9a3bffffff7f
scrollPos: {x: 0, y: 0}
m_SelectedIDs: 0e730000
m_LastClickedID: 29454
m_ExpandedIDs: 00000000e872000000ca9a3b
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
......@@ -485,7 +361,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 00000000a67e0000a87e0000aa7e0000ac7e0000ae7e0000b07e0000b27e0000b47e0000b67e0000b87e0000ba7e0000bc7e0000be7e0000c07e0000c27e0000c47e0000c67e0000c87e0000ca7e0000cc7e0000ce7e0000d07e0000d27e0000
m_ExpandedIDs: 00000000e8720000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
......@@ -510,8 +386,8 @@ MonoBehaviour:
m_Icon: {fileID: 0}
m_ResourceFile:
m_ListAreaState:
m_SelectedInstanceIDs: 1c560d00
m_LastClickedInstanceID: 874012
m_SelectedInstanceIDs:
m_LastClickedInstanceID: 0
m_HadKeyboardFocusLastEvent: 1
m_ExpandedInstanceIDs: c6230000
m_RenameOverlay:
......@@ -529,7 +405,7 @@ MonoBehaviour:
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 1
m_ClientGUIView: {fileID: 0}
m_ClientGUIView: {fileID: 5}
m_CreateAssetUtility:
m_EndAction: {fileID: 0}
m_InstanceID: 0
......@@ -541,7 +417,7 @@ MonoBehaviour:
m_GridSize: 64
m_SkipHiddenPackages: 0
m_DirectoriesAreaWidth: 207
--- !u!114 &17
--- !u!114 &13
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -562,10 +438,10 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: -436
x: 1979
y: 73
width: 435
height: 966
width: 580
height: 1286
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
......@@ -583,7 +459,7 @@ MonoBehaviour:
m_LockTracker:
m_IsLocked: 0
m_PreviewWindow: {fileID: 0}
--- !u!114 &18
--- !u!114 &14
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -604,10 +480,10 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: -1920
x: 0
y: 73
width: 560
height: 567
width: 747
height: 758
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
......@@ -615,9 +491,9 @@ MonoBehaviour:
m_SceneHierarchy:
m_TreeViewState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_SelectedIDs: 68160000
m_LastClickedID: 0
m_ExpandedIDs: 9cfcedffdefcedffde27eefffc6deeff066eeeff06a0eefffaadeeffe4bef6ffdc4ef7ff0e4ff7ff5a4ff7ff664ff7ff2e55f7ff3a55f7ff4455f7ff4e55f7ff5655f7ff6055f7ff8c55f7ff9655f7ff1c56f7ff4e56f7ff20dbfbff62dbfbff6006fcffd64bfcffe04bfcffd07dfcffbe8bfcfface0feffcae1feffcee1feffd4e1feff32e3fefffcf3feff0e14ffff6825ffff326bfffff8fafffffafaffff80630000badd0c00
m_ExpandedIDs: 0afbffff
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
......@@ -633,7 +509,7 @@ MonoBehaviour:
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 0
m_ClientGUIView: {fileID: 7}
m_ClientGUIView: {fileID: 4}
m_SearchString:
m_ExpandedScenes: []
m_CurrenRootInstanceID: 0
......@@ -641,7 +517,7 @@ MonoBehaviour:
m_IsLocked: 0
m_CurrentSortingName: TransformSorting
m_WindowGUID: 4c969a2b90040154d917609493e03593
--- !u!114 &19
--- !u!114 &15
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -662,10 +538,10 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: -1326
y: 98
width: 858
height: 441
x: 748
y: 73
width: 1229
height: 758
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
......@@ -889,9 +765,9 @@ MonoBehaviour:
m_PlayAudio: 0
m_AudioPlay: 0
m_Position:
m_Target: {x: 0, y: 0, z: 0}
m_Target: {x: 719.735, y: 501.2356, z: 37.53131}
speed: 2
m_Value: {x: 0, y: 0, z: 0}
m_Value: {x: 719.735, y: 501.2356, z: 37.53131}
m_RenderMode: 0
m_CameraMode:
drawMode: 0
......@@ -938,13 +814,13 @@ MonoBehaviour:
m_GridAxis: 1
m_gridOpacity: 0.5
m_Rotation:
m_Target: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226}
m_Target: {x: 0.0662581, y: -0.0089846505, z: 0.0005970661, w: 0.997763}
speed: 2
m_Value: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226}
m_Value: {x: 0.06625803, y: -0.008984641, z: 0.00059706543, w: 0.9977619}
m_Size:
m_Target: 14.562745
m_Target: 546.43884
speed: 2
m_Value: 14.562745
m_Value: 546.43884
m_Ortho:
m_Target: 0
speed: 2
......@@ -969,7 +845,7 @@ MonoBehaviour:
m_SceneVisActive: 1
m_LastLockedObject: {fileID: 0}
m_ViewIsLockedToObject: 0
--- !u!114 &20
--- !u!114 &16
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -990,10 +866,10 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: -1359
x: 748
y: 73
width: 921
height: 567
width: 1229
height: 758
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
......@@ -1028,7 +904,7 @@ MonoBehaviour:
m_VAllowExceedBaseRangeMin: 1
m_VAllowExceedBaseRangeMax: 1
m_ScaleWithWindow: 0
m_HSlider: 1
m_HSlider: 0
m_VSlider: 0
m_IgnoreScrollWheelUntilClicked: 0
m_EnableMouseInput: 1
......@@ -1040,29 +916,29 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 21
width: 921
height: 546
m_Scale: {x: 0.47968754, y: 0.47968754}
m_Translation: {x: 460.5, y: 273}
width: 1229
height: 737
m_Scale: {x: 0.6401042, y: 0.6401042}
m_Translation: {x: 614.5, y: 368.5}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
m_MarginBottom: 0
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -959.99994
y: -569.1205
width: 1919.9999
height: 1138.241
x: -960
y: -575.68756
width: 1920
height: 1151.3751
m_MinimalGUI: 1
m_defaultScale: 0.4796875
m_LastWindowPixelSize: {x: 921, y: 567}
m_defaultScale: 0.6401042
m_LastWindowPixelSize: {x: 1229, y: 758}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 01000000000000000000
m_XRRenderMode: 0
m_RenderTexture: {fileID: 0}
--- !u!114 &21
--- !u!114 &17
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -1083,10 +959,10 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: -1920
y: 661
width: 1483
height: 378
x: 0
y: 852
width: 1978
height: 507
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment