Skip to content

Commit 019dccc

Browse files
Squashed initial commit of the modular approach
1 parent 5976a8f commit 019dccc

26 files changed

+867
-607
lines changed

Assets/Editor/UI/AssetEditorWindow.cs

Lines changed: 45 additions & 607 deletions
Large diffs are not rendered by default.

Assets/Editor/UI/AssetHandlers.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using UnityEditor;
2+
using UnityEngine;
3+
4+
namespace ParkitectAssetEditor.UI.AssetHandlers
5+
{
6+
public class BenchAssetHandler : SeatAssetHandler
7+
{
8+
public override void DrawDetailsSection(Asset selectedAsset)
9+
{
10+
if (selectedAsset.GameObject == null)
11+
{
12+
return;
13+
}
14+
15+
// Bench settings
16+
GUILayout.Label("Bench settings", EditorStyles.boldLabel);
17+
selectedAsset.HasBackRest = EditorGUILayout.Toggle("Has back rest: ", selectedAsset.HasBackRest);
18+
19+
GUILayout.Space(15);
20+
21+
base.DrawDetailsSection(selectedAsset);
22+
}
23+
}
24+
}

Assets/Editor/UI/AssetHandlers/BenchAssetHandler.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
using UnityEditor;
2+
using UnityEngine;
3+
4+
namespace ParkitectAssetEditor.UI.AssetHandlers
5+
{
6+
public class DecoAssetHandler : IAssetTypeHandler
7+
{
8+
public virtual void DrawDetailsSection(Asset selectedAsset)
9+
{
10+
// Category settings
11+
GUILayout.Label("Category in the deco window:", EditorStyles.boldLabel);
12+
selectedAsset.Category = EditorGUILayout.TextField("Category:", selectedAsset.Category);
13+
selectedAsset.SubCategory = EditorGUILayout.TextField("Sub category:", selectedAsset.SubCategory);
14+
15+
// Placement settings
16+
GUILayout.Label("Placement settings", EditorStyles.boldLabel);
17+
if (selectedAsset.Type != AssetType.Wall)
18+
{
19+
selectedAsset.BuildOnGrid = EditorGUILayout.Toggle("Force build on grid: ", selectedAsset.BuildOnGrid);
20+
selectedAsset.SnapCenter = EditorGUILayout.Toggle("Snaps to center: ", selectedAsset.SnapCenter);
21+
selectedAsset.GridSubdivision = Mathf.RoundToInt(EditorGUILayout.Slider("Grid subdivision: ", selectedAsset.GridSubdivision, 1, 9));
22+
}
23+
selectedAsset.HeightDelta = Mathf.RoundToInt(EditorGUILayout.Slider("Height delta: ", selectedAsset.HeightDelta, 0.05f, 1) * 200f) / 200f;
24+
25+
GUILayout.Label("Size settings", EditorStyles.boldLabel);
26+
selectedAsset.IsResizable = EditorGUILayout.Toggle("Is resizable: ", selectedAsset.IsResizable);
27+
28+
if (selectedAsset.IsResizable)
29+
{
30+
selectedAsset.MinSize = Mathf.RoundToInt(EditorGUILayout.Slider("Min size: ", selectedAsset.MinSize, 0.1f, selectedAsset.MaxSize) * 10f) / 10f;
31+
selectedAsset.MaxSize = Mathf.RoundToInt(EditorGUILayout.Slider("Max size: ", selectedAsset.MaxSize, selectedAsset.MinSize, 10) * 10f) / 10f;
32+
}
33+
34+
GUILayout.Label("Visibility settings", EditorStyles.boldLabel);
35+
selectedAsset.CanSeeThrough = EditorGUILayout.Toggle("Can see through: ", selectedAsset.CanSeeThrough);
36+
selectedAsset.BlocksRain = EditorGUILayout.Toggle("Blocks rain: ", selectedAsset.BlocksRain);
37+
38+
if (selectedAsset.GameObject != null && selectedAsset.GameObject.GetComponent<Animator>() != null)
39+
{
40+
GUILayout.Label("Animation trigger", EditorStyles.boldLabel);
41+
selectedAsset.EffectsTriggerEnabled =
42+
EditorGUILayout.Toggle("Animation can be triggered: ", selectedAsset.EffectsTriggerEnabled);
43+
if (selectedAsset.EffectsTriggerEnabled)
44+
{
45+
selectedAsset.EffectsTriggerCustomizableDuration =
46+
EditorGUILayout.Toggle("Customizable duration: ", selectedAsset.EffectsTriggerCustomizableDuration);
47+
}
48+
}
49+
}
50+
}
51+
}

Assets/Editor/UI/AssetHandlers/DecoAssetHandler.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
namespace ParkitectAssetEditor.UI.AssetHandlers
2+
{
3+
/// <summary>
4+
/// An asset handler that does basically nothing.
5+
/// </summary>
6+
public class DefaultAssetHandler : IAssetTypeHandler
7+
{
8+
public DefaultAssetHandler(AssetType handledType)
9+
{
10+
}
11+
12+
public void DrawDetailsSection(Asset selectedAsset)
13+
{
14+
}
15+
}
16+
}

Assets/Editor/UI/AssetHandlers/DefaultAssetHandler.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using UnityEditor;
2+
using UnityEngine;
3+
4+
namespace ParkitectAssetEditor.UI.AssetHandlers
5+
{
6+
public class FenceAssetHandler : WallAssetHandler
7+
{
8+
public override void DrawDetailsSection(Asset selectedAsset)
9+
{
10+
// Game object drop box
11+
GUILayout.Label("Category in the deco window:", EditorStyles.boldLabel);
12+
selectedAsset.Category = EditorGUILayout.TextField("Category:", selectedAsset.Category);
13+
selectedAsset.SubCategory = EditorGUILayout.TextField("Sub category:", selectedAsset.SubCategory);
14+
15+
var post = EditorGUILayout.ObjectField("Post:", selectedAsset.FencePost, typeof(GameObject), true) as GameObject;
16+
17+
if (post != selectedAsset.FencePost)
18+
{
19+
post.transform.SetParent(selectedAsset.GameObject.transform);
20+
post.transform.localPosition = new Vector3(0.5f, 0, 0);
21+
22+
if (selectedAsset.FencePost != null)
23+
{
24+
GameObject.DestroyImmediate(selectedAsset.FencePost);
25+
}
26+
27+
selectedAsset.FencePost = post;
28+
post.name = "Post";
29+
}
30+
selectedAsset.HasMidPost = EditorGUILayout.Toggle("Has mid post: ", selectedAsset.HasMidPost);
31+
32+
33+
base.DrawDetailsSection(selectedAsset);
34+
}
35+
}
36+
}

Assets/Editor/UI/AssetHandlers/FenceAssetHandler.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)