Exemplo n.º 1
0
 public void Clone(WorldState otherState)
 {
     Reset();
     for (WorldStatePropKey i = 0; i < WorldStatePropKey.MAX; i++)
     {
         if (otherState.GetPropBitSet().Get((int)i) == true)
         {
             SetWSProperty(otherState.GetWSProperty(i));
         }
     }
 }
Exemplo n.º 2
0
    public void ResetWSProperty(WorldStatePropKey key)
    {
        //Debug.Log("Reset WS property " + key.ToString());
        int i = (int)key;

        if (_propState[i] != null)
        {
            WorldStatePropFactory.Collect(_propState[i]);
            _propState[i] = null;
            _propBitSet.Set(i, false);
        }
    }
Exemplo n.º 3
0
    public void SetWSProperty(WorldStatePropKey key, OrderType value)
    {
        int index = (int)key;

        if (_propState[index] != null)
        {
            WorldStatePropFactory.Collect(_propState[index]);
        }

        _propState[index] = WorldStatePropFactory.Get(key, value);
        _propBitSet.Set(index, true);
    }
Exemplo n.º 4
0
    public override string ToString()
    {
        string s = "World state : ";

        for (WorldStatePropKey i = WorldStatePropKey.ORDER; i < WorldStatePropKey.MAX; i++)
        {
            if (IsWSPropertySet(i))
            {
                s += " " + GetWSProperty(i).ToString();
            }
        }

        return(s);
    }
Exemplo n.º 5
0
    static public WorldStateProp Get(WorldStatePropKey key, UnityEngine.Vector3 vector)
    {
        WorldStateProp p = null;

        if (m_UnusedProps.Count > 0)
        {
            p           = m_UnusedProps.Dequeue();
            p.PropValue = new ValueVector(vector);
            p.PropType  = WorldStatePropValueType.VECTOR;
        }
        else
        {
            p = new WorldStateProp(vector);
        }

        p.Time    = UnityEngine.Time.timeSinceLevelLoad;
        p.PropKey = key;
        return(p);
    }
Exemplo n.º 6
0
    static public WorldStateProp Get(WorldStatePropKey key, bool state)
    {
        WorldStateProp p = null;

        if (m_UnusedProps.Count > 0)
        {
            p           = m_UnusedProps.Dequeue();
            p.PropValue = new ValueBool(state);
            p.PropType  = WorldStatePropValueType.BOOL;
        }
        else
        {
            p = new WorldStateProp(state);
        }

        p.Time    = UnityEngine.Time.timeSinceLevelLoad;
        p.PropKey = key;
        return(p);
    }
Exemplo n.º 7
0
    static public WorldStateProp Get(WorldStatePropKey key, float state)
    {
        WorldStateProp p;

        if (m_UnusedProps.Count > 0)
        {
            p           = m_UnusedProps.Dequeue();
            p.PropKey   = key;
            p.PropValue = new ValueFloat(state);
        }
        else
        {
            p = new WorldStateProp(state);
        }

        p.Time     = UnityEngine.Time.timeSinceLevelLoad;
        p.PropType = WorldStatePropValueType.FLOAT;
        return(p);
    }
Exemplo n.º 8
0
    static public WorldStateProp Get(WorldStatePropKey key, OrderType orderType)
    {
        WorldStateProp p = null;

        if (m_UnusedProps.Count > 0)
        {
            p           = m_UnusedProps.Dequeue();
            p.PropValue = new ValueOrder(orderType);
            p.PropType  = WorldStatePropValueType.EVENT;
        }
        else
        {
            p = new WorldStateProp(orderType);
        }

        p.Time    = UnityEngine.Time.timeSinceLevelLoad;
        p.PropKey = key;
        return(p);
    }
Exemplo n.º 9
0
    public int GetDiffCount(WorldState otherState)
    {
        int count = 0;

        for (WorldStatePropKey i = 0; i < WorldStatePropKey.MAX; ++i)
        {
            if (otherState.IsWSPropertySet(i) && IsWSPropertySet(i))
            {
                if (GetWSProperty((WorldStatePropKey)i) != otherState.GetWSProperty((WorldStatePropKey)i))
                {
                    ++count;
                }
            }
            else if (otherState.IsWSPropertySet(i) || IsWSPropertySet(i))
            {
                ++count;
            }
        }
        return(count);
    }
Exemplo n.º 10
0
    // 以己方为参照,获得对方不满足己方的属性数量
    public int GetUnsatisfiedCount(WorldState otherState)
    {
        int count = 0;

        for (WorldStatePropKey i = 0; i < WorldStatePropKey.MAX; ++i)
        {
            if (IsWSPropertySet(i) == false)
            {
                continue;
            }

            if (otherState.IsWSPropertySet(i) == false)
            {
                ++count;
            }

            if (GetWSProperty(i) != otherState.GetWSProperty(i))
            {
                ++count;
            }
        }
        return(count);
    }
Exemplo n.º 11
0
 public bool IsWSPropertySet(WorldStatePropKey key)
 {
     return(_propBitSet.Get((int)key));
 }
Exemplo n.º 12
0
 public WorldStateProp GetWSProperty(WorldStatePropKey key)
 {
     return(_propState[(int)key]);
 }