Пример #1
0
        public static TES5StateCodeBlock CreateState(string name, bool auto)
        {
            TES5FunctionScope  functionScope = new TES5FunctionScope(name);
            TES5CodeScope      codeScope     = TES5CodeScopeFactory.CreateCodeScopeRoot(functionScope);
            TES5StateCodeBlock state         = new TES5StateCodeBlock(name, auto, functionScope, codeScope);

            return(state);
        }
Пример #2
0
        private void CreateActiveStateBlock(TES5GlobalScope globalScope, out TES5StateCodeBlock state, out TES5EventCodeBlock onUpdate)
        {
            state = CreateState("ActiveState", false);
            TES5EventCodeBlock onBeginState = CreateEventCodeBlock("OnBeginState", globalScope);

            onBeginState.AddChunk(this.objectCallFactory.CreateObjectCall(TES5ReferenceFactory.CreateReferenceToSelf(globalScope), "OnUpdate"));
            state.AddBlock(onBeginState);
            onUpdate = CreateEventCodeBlock("OnUpdate", globalScope);
            state.AddBlock(onUpdate);
        }
Пример #3
0
        private void CreateActivationStates(TES5GlobalScope globalScope, out TES5BlockList blocks, out TES5EventCodeBlock onUpdate)
        {
            TES5StateCodeBlock activeState;

            CreateActiveStateBlock(globalScope, out activeState, out onUpdate);
            TES5StateCodeBlock inactiveState = CreateInactiveStateBlock();
            TES5EventCodeBlock onCellAttach  = CreateEventCodeBlock("OnCellAttach", globalScope);

            onCellAttach.CodeScope.AddChunk(objectCallFactory.CreateGotoState("ActiveState", globalScope));
            TES5EventCodeBlock onCellDetach = CreateEventCodeBlock("OnCellDetach", globalScope);

            onCellDetach.CodeScope.AddChunk(objectCallFactory.CreateGotoState("InactiveState", globalScope));
            blocks = new TES5BlockList()
            {
                activeState, inactiveState, onCellAttach, onCellDetach
            };
        }
Пример #4
0
        private static TES5StateCodeBlock CreateInactiveStateBlock()
        {
            TES5StateCodeBlock state = CreateState("InactiveState", true);

            return(state);
        }