Beispiel #1
0
        public static TES5State CreateState(string name, bool auto)
        {
            TES5FunctionScope functionScope = new TES5FunctionScope(name);
            TES5CodeScope     codeScope     = TES5CodeScopeFactory.CreateCodeScopeRoot(functionScope);
            TES5State         state         = new TES5State(name, auto, functionScope, codeScope);

            return(state);
        }
Beispiel #2
0
        private void CreateActivationStates(TES5GlobalScope globalScope, TES5MultipleScriptsScope multipleScriptsScope, out TES5BlockList blocks, out TES5EventCodeBlock onUpdate)
        {
            TES5State activeState;

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

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

            onCellDetach.CodeScope.AddChunk(objectCallFactory.CreateGotoState("InactiveState", globalScope, multipleScriptsScope));
            blocks = new TES5BlockList()
            {
                activeState, inactiveState, onCellAttach, onCellDetach
            };
        }
Beispiel #3
0
        private static TES5State CreateInactiveStateBlock()
        {
            TES5State state = CreateState("InactiveState", true);

            return(state);
        }
Beispiel #4
0
        private void CreateActiveStateBlock(TES5GlobalScope globalScope, TES5MultipleScriptsScope multipleScriptsScope, out TES5State state, out TES5EventCodeBlock onUpdate)
        {
            state = CreateState("ActiveState", false);
            TES5EventCodeBlock onBeginState = CreateEventCodeBlock("OnBeginState");

            onBeginState.CodeScope.CodeChunks.Add(this.objectCallFactory.CreateObjectCall(TES5ReferenceFactory.CreateReferenceToSelf(globalScope), "OnUpdate", multipleScriptsScope));
            state.AddBlock(onBeginState);
            onUpdate = CreateEventCodeBlock("OnUpdate");
            state.AddBlock(onUpdate);
        }