Initial commit

This commit is contained in:
2026-03-03 00:39:30 +05:00
commit fc01f07d9b
29933 changed files with 5353098 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
using UnityEditor.ShaderGraph;
using ActionType = UnityEditor.ShaderGraph.IGraphDataAction;
using System;
using UnityEngine;
namespace UnityEditor.ShaderGraph
{
class DataStore<T>
{
Action<T, ActionType> m_Reducer;
internal T State { get; private set; }
public Action<T, ActionType> Subscribe;
internal DataStore(Action<T, ActionType> reducer, T initialState)
{
m_Reducer = reducer;
State = initialState;
}
public void Dispatch(ActionType action)
{
m_Reducer(State, action);
// Note: This would only work with reference types, as value types would require creating a new copy, this works given that we use GraphData which is a heap object
// Notifies any listeners about change in state
Subscribe?.Invoke(State, action);
}
}
}