Newer
Older
Marco Zimmer
committed
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using static CommunicationEvents;
public class GenerateDemoFiles
{
static bool firstcall = true;
Marco Zimmer
committed
public static void GenerateAll()
{
if (!firstcall) return;
firstcall = false;
Marco Zimmer
committed
Debug.LogWarning("Generating and Overwriting Stage Files");
Marco Zimmer
committed
GenerateDemoA();
Marco Zimmer
committed
}
public static void GenerateDemoA()
{
// Params
float minimalSolutionHight = 6;
// Generate Stage
Stage demo = new Stage
{
number = 0,
category = "Demo Category",
name = "TechDemo A",
scene = "RiverWorld",
description = "Tree Stage",
use_install_folder = true,
hierarchie = new List<Directories> { /*Directories.Stages*/ }
};
Marco Zimmer
committed
// needed to generate facts
Marco Zimmer
committed
StageStatic.StageOfficial = new Dictionary<string, Stage>
Marco Zimmer
committed
{
{ demo.name, demo },
};
Marco Zimmer
committed
StageStatic.SetStage(demo.name, false);
Marco Zimmer
committed
// Populate Solution
PointFact
Marco Zimmer
committed
buttom = new PointFact(Vector3.zero, Vector3.up, StageStatic.stage.solution),
top = new PointFact(Vector3.zero + Vector3.up * minimalSolutionHight, Vector3.up, StageStatic.stage.solution);
Marco Zimmer
committed
Marco Zimmer
committed
StageStatic.stage.solution.Add(buttom, out _);
StageStatic.stage.solution.Add(top, out _, true);
Marco Zimmer
committed
Marco Zimmer
committed
LineFact target = new LineFact(buttom.Id, top.Id, StageStatic.stage.solution);
var target_Id = StageStatic.stage.solution.Add(target, out _, true);
Marco Zimmer
committed
// Set Solution
Marco Zimmer
committed
StageStatic.stage.solution.ValidationSet =
Marco Zimmer
committed
{ new SolutionOrganizer.SubSolution(new HashSet<string> { target_Id }, null, null, new LineFactHightDirectionComparer()) };
Marco Zimmer
committed
// Save
Marco Zimmer
committed
StageStatic.stage.store();
Marco Zimmer
committed
}
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
public static void GenerateDemoB()
{
// Params
float minimalSolutionHight = 6;
// Generate Stage
// TODO? use constructor
Stage demo = new Stage
{
number = 0,
category = "Demo Category",
name = "TechDemo B",
scene = "RiverWorld",
description = "River Stage",
use_install_folder = true,
hierarchie = new List<Directories> { /*Directories.Stages*/ }
};
// needed to generate facts
StageStatic.StageOfficial = new Dictionary<string, Stage>
{
{ demo.name, demo },
};
StageStatic.SetStage(demo.name, false);
// Populate Solution
PointFact
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);
LineFact target = new LineFact(buttom.Id, top.Id, StageStatic.stage.solution);
var target_Id = StageStatic.stage.solution.Add(target, out _, true);
// Set Solution
StageStatic.stage.solution.ValidationSet =
new List<SolutionOrganizer.SubSolution> {
new SolutionOrganizer.SubSolution(new HashSet<string> { target_Id }, null, null, new LineFactHightDirectionComparer()),
new SolutionOrganizer.SubSolution(new HashSet<string> { target_Id }, null, null, new LineSpanningOverRiverWorldComparer()),
new SolutionOrganizer.SubSolution(null, new List<int> { 1 }, new List<int> { 0 }, new LineFactHightComparer()),
};
// Save
StageStatic.stage.store();
}