Esempio n. 1
0
    public void Execute(ArchetypeChunk chunk, int chunkIndex, int firstEntityIndex)
    {
        var inputAChanged = chunk.DidChange(CInputA_TypeHandle, LastSystemVersion);
        var inputBChanged = chunk.DidChange(CInputB_TypeHandle, LastSystemVersion);

        // If neither component changed, skip the current chunk
        if (!(inputAChanged || inputBChanged))
        {
            return;
        }

        // 为了方便,去掉brust编译
        UnityEngine.Debug.Log("------------Change-------------");

        var InputA_Array = chunk.GetNativeArray(CInputA_TypeHandle);
        var InputB_Array = chunk.GetNativeArray(CInputB_TypeHandle);
        var OutPut_Array = chunk.GetNativeArray(COutput_TypeHandle);


        for (int i = 0; i < chunk.Count; i++)
        {
            OutPut_Array[i] = new COutput
            {
                Value = InputA_Array[i].Value + InputB_Array[i].Value
            };
        }
    }
Esempio n. 2
0
 // Fire COutput event (but don't actually print with Console.WriteLine)
 public static void coutFire(string text, params object[] values)
 {
     if (values.Length == 0)
     {
         G.COutput?.Invoke(new MessageArgs(text));
     }
     else
     {
         COutput?.Invoke(new MessageArgs(string.Format(text, values)));
     }
 }
Esempio n. 3
0
 // Output to Console
 public static void cout(string text, params object[] values)
 {
     if (values.Length == 0)
     {
         Console.WriteLine(text);
         COutput?.Invoke(new MessageArgs(text));
     }
     else
     {
         Console.WriteLine(string.Format(text, values));
         COutput?.Invoke(new MessageArgs(string.Format(text, values)));
     }
 }
Esempio n. 4
0
        public void BusInput(object sender, T input)
        {
            InputState = input;

            switch (SelectState)
            {
            case Trit.Neg: AOutput?.Invoke(this, AOutputState = input); break;

            case Trit.Neu: BOutput?.Invoke(this, BOutputState = input); break;

            case Trit.Pos: COutput?.Invoke(this, COutputState = input); break;
            }
        }
Esempio n. 5
0
    public void Execute(ArchetypeChunk chunk, int chunkIndex, int firstEntityIndex)
    {
        var InputA_Array = chunk.GetNativeArray(CInputA_TypeHandle);
        var InputB_Array = chunk.GetNativeArray(CInputB_TypeHandle);
        var OutPut_Array = chunk.GetNativeArray(COutput_TypeHandle);

        for (int i = 0; i < chunk.Count; i++)
        {
            OutPut_Array[i] = new COutput {
                Value = InputA_Array[i].Value + InputB_Array[i].Value
            };
        }
    }