Skip to content

Commit

Permalink
setup for overlay systems
Browse files Browse the repository at this point in the history
  • Loading branch information
levimhuillet committed Nov 28, 2023
1 parent 0b5b010 commit 09d8e71
Show file tree
Hide file tree
Showing 7 changed files with 162 additions and 26 deletions.
48 changes: 48 additions & 0 deletions Assets/Code/Economy/BlueprintResetSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
using FieldDay;
using FieldDay.Systems;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace Zavala.Economy
{
// Process after BlueprintOverlaySystem and BlueprintSystem
[SysUpdate(GameLoopPhase.LateUpdate, 500)]
public class BlueprintResetSystem : SharedStateSystemBehaviour<BlueprintState>
{
public override void ProcessWork(float deltaTime)
{
// Reset any triggers that were fired

// Blueprint mode opened
if (m_State.StartBlueprintMode) { m_State.StartBlueprintMode = false; }

// Exited blueprint mode
if (m_State.ExitedBlueprintMode) { m_State.ExitedBlueprintMode = false; }

// Build clicked
if (m_State.NewBuildConfirmed) { m_State.NewBuildConfirmed = false; }

// Changed number of commits to process
if (m_State.NumBuildCommitsChanged) { m_State.NumBuildCommitsChanged = false; }

// Changed number of commits to process
if (m_State.NumDestroyActionsChanged) { m_State.NumDestroyActionsChanged = false; }

// Clicked the Undo button (in Build mode)
if (m_State.UndoClickedBuild) { m_State.UndoClickedBuild = false; }

// Clicked the Undo button (in Build mode)
if (m_State.UndoClickedDestroy) { m_State.UndoClickedDestroy = false; }

// Clicked the Destroy Mode button (from Build mode)
if (m_State.DestroyModeClicked) { m_State.DestroyModeClicked = false; }

// Destroy clicked
if (m_State.NewDestroyConfirmed) { m_State.NewDestroyConfirmed = false; }

// Clicked the Exit button (from Destroy mode)
if (m_State.CanceledDestroyMode) { m_State.CanceledDestroyMode = false; }
}
}
}
11 changes: 11 additions & 0 deletions Assets/Code/Economy/BlueprintResetSystem.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 7 additions & 4 deletions Assets/Code/Economy/BlueprintState.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using FieldDay;
using FieldDay.Scenes;
using FieldDay.SharedState;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
Expand Down Expand Up @@ -58,16 +59,18 @@ public struct CommitChain

public class BlueprintState : SharedStateComponent, IScenePreload
{
public bool IsActive; // Whether blueprint mode is engaged
public RingBuffer<CommitChain> Commits;
public CommitChain DestroyChain; // The chain that gets built during Destroy Mode
public ActionType CommandState; // Build mode or Destroy mode
[NonSerialized] public bool IsActive; // Whether blueprint mode is engaged
[NonSerialized] public RingBuffer<CommitChain> Commits;
[NonSerialized] public CommitChain DestroyChain; // The chain that gets built during Destroy Mode
[NonSerialized] public ActionType CommandState; // Build mode or Destroy mode

#region Inspector

// TODO: Consolidate this with UserBuildingSystem material of the same name
public Material m_ValidHoloMaterial; // material applied to buildings being staged

public Mesh OverlayMesh;

#endregion // Inspector

#region Triggers
Expand Down
25 changes: 3 additions & 22 deletions Assets/Code/Economy/BlueprintSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

namespace Zavala.Economy
{
[SysUpdate(GameLoopPhase.Update, 400)]
public class BlueprintSystem : SharedStateSystemBehaviour<BlueprintState, ShopState, SimGridState, BuildToolState>
{
public override void ProcessWork(float deltaTime)
Expand All @@ -17,8 +18,6 @@ public override void ProcessWork(float deltaTime)
// Blueprint mode opened
if (m_StateA.StartBlueprintMode)
{
m_StateA.StartBlueprintMode = false;

m_StateA.IsActive = true;
SimTimeUtility.Pause(SimPauseFlags.Blueprints, ZavalaGame.SimTime);
BlueprintUtility.OnStartBlueprintMode(m_StateA);
Expand All @@ -27,76 +26,58 @@ public override void ProcessWork(float deltaTime)
// Exited blueprint mode
if (m_StateA.ExitedBlueprintMode)
{
m_StateA.ExitedBlueprintMode = false;

m_StateA.IsActive = true;
m_StateA.IsActive = false;
SimTimeUtility.Resume(SimPauseFlags.Blueprints, ZavalaGame.SimTime);
BlueprintUtility.OnExitedBlueprintMode(m_StateA, m_StateB, m_StateC);
}

// Build clicked
if (m_StateA.NewBuildConfirmed)
{
m_StateA.NewBuildConfirmed = false;

BlueprintUtility.ConfirmBuild(m_StateA, m_StateB, m_StateC.CurrRegionIndex);
}

// Changed number of commits to process
if (m_StateA.NumBuildCommitsChanged)
{
m_StateA.NumBuildCommitsChanged = false;

// Update Undo button
BlueprintUtility.OnNumBuildCommitsChanged(m_StateA);
}

// Changed number of commits to process
if (m_StateA.NumDestroyActionsChanged)
{
m_StateA.NumDestroyActionsChanged = false;

// Update Undo button
BlueprintUtility.OnNumDestroyActionsChanged(m_StateA);
}

// Clicked the Undo button (in Build mode)
if (m_StateA.UndoClickedBuild)
{
m_StateA.UndoClickedBuild = false;

BlueprintUtility.OnUndoClickedBuild(m_StateA, m_StateB, m_StateC);
}

// Clicked the Undo button (in Build mode)
if (m_StateA.UndoClickedDestroy)
{
m_StateA.UndoClickedDestroy = false;

BlueprintUtility.OnUndoClickedDestroy(m_StateA, m_StateB, m_StateC);
}

// Clicked the Destroy Mode button (from Build mode)
if (m_StateA.DestroyModeClicked)
{
m_StateA.DestroyModeClicked = false;

BlueprintUtility.OnDestroyModeClicked(m_StateA, m_StateB, m_StateC, m_StateD);
}

// Build clicked
// Destroy clicked
if (m_StateA.NewDestroyConfirmed)
{
m_StateA.NewDestroyConfirmed = false;

BlueprintUtility.ConfirmDestroy(m_StateA, m_StateB, m_StateC, m_StateC.CurrRegionIndex);
}

// Clicked the Exit button (from Destroy mode)
if (m_StateA.CanceledDestroyMode)
{
m_StateA.CanceledDestroyMode = false;

BlueprintUtility.OnCanceledDestroyMode(m_StateA, m_StateB, m_StateC, m_StateD);
}
}
Expand Down
56 changes: 56 additions & 0 deletions Assets/Code/Rendering/BlueprintOverlaySystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
using FieldDay;
using FieldDay.Systems;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Zavala.Building;
using Zavala.Economy;
using Zavala.Input;
using Zavala.Sim;
using Zavala.World;

namespace Zavala.Rendering
{
/// <summary>
/// Controls an object that snaps to the tile under the mouse cursor
/// </summary>
[SysUpdate(GameLoopPhase.Update, 400)]
public class BlueprintOverlaySystem : SharedStateSystemBehaviour<BlueprintState>
{
public override void ProcessWork(float deltaTime)
{
// Changed number of commits to process
if (m_State.NumBuildCommitsChanged)
{
RegenerateOverlayMesh();
return;
}

// Render destroy bulldozer when in destroy mode
if (m_State.IsActive && m_State.CommandState == ActionType.Build)
{
if (m_State.OverlayMesh == null)
{
// Generate new mesh
RegenerateOverlayMesh();
return;
}
}
else if (m_State.OverlayMesh != null)
{
// Remove the old mesh
DestroyOverlayMesh();
}
}

private void RegenerateOverlayMesh()
{
m_State.OverlayMesh = new Mesh();
}

private void DestroyOverlayMesh()
{
m_State.OverlayMesh = null;
}
}
}
11 changes: 11 additions & 0 deletions Assets/Code/Rendering/BlueprintOverlaySystem.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 26 additions & 0 deletions Assets/Prefabs/_System/SimSystems.prefab
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,8 @@ GameObject:
- component: {fileID: 2985793653569914194}
- component: {fileID: 6621157044642865671}
- component: {fileID: 1434593775944673571}
- component: {fileID: 6905844203387006350}
- component: {fileID: 9007805578374138229}
m_Layer: 0
m_Name: World
m_TagString: Untagged
Expand Down Expand Up @@ -311,6 +313,30 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 3c24beb515ddd2a40a2373c4c13cfec7, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &6905844203387006350
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5301571126426986859}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e1473102e9234924da2348cef48bd21f, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &9007805578374138229
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5301571126426986859}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6a57d4b48f302014a98620637bb978a6, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &5301571126591434331
GameObject:
m_ObjectHideFlags: 0
Expand Down

0 comments on commit 09d8e71

Please sign in to comment.