示例#1
0
        public static byte SetOccupied(byte value, bool occupied, OccupiedType type)
        {
            switch (type)
            {
            case OccupiedType.Vehicle:
                if (occupied)
                {
                    //set bit
                    value = (byte)(value | VEHICLE_OCCUPIED_BIT);
                }
                else
                {
                    //clear bit
                    value = (byte)(value & (~VEHICLE_OCCUPIED_BIT));
                }
                break;

            case OccupiedType.TrafficSignal:
                if (occupied)
                {
                    value = (byte)(value | TRAFFIC_SIGNAL_OCCUPIED_BIT);
                }
                else
                {
                    value = (byte)(value & (~TRAFFIC_SIGNAL_OCCUPIED_BIT));
                }
                break;
            }
            return(value);
        }
示例#2
0
        //return    true if occupied
        //          false otherwise
        public static bool CheckOccupied(byte value, OccupiedType type)
        {
            switch (type)
            {
            case OccupiedType.Vehicle:
                return((value & VEHICLE_OCCUPIED_BIT) != 0);

            case OccupiedType.TrafficSignal:
                return((value & TRAFFIC_SIGNAL_OCCUPIED_BIT) != 0);
            }
            return(true);
        }
示例#3
0
        public void SetData(FieldType field_type, OccupiedType occupied_type = OccupiedType.kNone)
        {
            fieldType    = field_type;
            occupiedType = field_type == FieldType.kOcuppied ? occupied_type : OccupiedType.kNone;
            is_obstacle_ = false;
            switch (fieldType)
            {
            case FieldType.kOcuppied:
                switch (occupiedType)
                {
                case OccupiedType.kGrass:
                    ChangeGraphics(MapManager.Instance.mapSprites.grass);
                    break;

                case OccupiedType.kStone:
                    ChangeGraphics(MapManager.Instance.mapSprites.stone);
                    is_obstacle_ = true;
                    break;

                case OccupiedType.kWood:
                    ChangeGraphics(MapManager.Instance.mapSprites.wood);
                    is_obstacle_ = true;
                    break;

                default:
                    // kNone
                    ChangeGraphics(null);
                    break;
                }
                break;

            case FieldType.kPlowed:
                ChangeGraphics(MapManager.Instance.mapSprites.plowed);
                break;

            case FieldType.kSeed:
                ChangeGraphics(MapManager.Instance.mapSprites.seed);
                break;

            case FieldType.kFlower:
                ChangeGraphics(MapManager.Instance.mapSprites.flower);
                break;

            default:
                // kEmpty
                ChangeGraphics(null);
                break;
            }

            obstacle.gameObject.SetActive(is_obstacle_);
        }