public void SetFact(
            Facts fact,
            byte value,
            bool invokeChangedEvent = true,
            bool setAsDirty         = true,
            bool checkValueDiff     = true)
        {
            int index = (int)fact;

            if (checkValueDiff && (int)this._worldState[index] == (int)value)
            {
                return;
            }
            if (setAsDirty)
            {
                this.IsWorldStateDirty = true;
            }
            this._previousWorldState[index] = this._worldState[index];
            this._worldState[index]         = value;
            if (!invokeChangedEvent)
            {
                return;
            }
            NPCTurretContext.WorldStateChangedEvent stateChangedEvent = this.OnWorldStateChangedEvent;
            if (stateChangedEvent == null)
            {
                return;
            }
            stateChangedEvent(this, fact, this._previousWorldState[index], value);
        }
        public void SetFact(Facts fact, byte value, bool invokeChangedEvent = true, bool setAsDirty = true, bool checkValueDiff = true)
        {
            int num = (int)fact;

            if (checkValueDiff && this._worldState[num] == value)
            {
                return;
            }
            if (setAsDirty)
            {
                this.IsWorldStateDirty = true;
            }
            this._previousWorldState[num] = this._worldState[num];
            this._worldState[num]         = value;
            if (invokeChangedEvent)
            {
                NPCTurretContext.WorldStateChangedEvent onWorldStateChangedEvent = this.OnWorldStateChangedEvent;
                if (onWorldStateChangedEvent == null)
                {
                    return;
                }
                onWorldStateChangedEvent(this, fact, this._previousWorldState[num], value);
            }
        }