Esempio n. 1
0
        public void FacilityObject_LinkToSelf_NoLinkFormed()
        {
            var obj1 = new FacilityObject();

            obj1.LinkTo(obj1);

            Assert.AreEqual(0, obj1.LinkedObjs.Count);
        }
        public void FacilityPortal_FromFacilityObject_IsCorrect()
        {
            var obj = new FacilityObject {
                Type = "Stairs", Orientation = Orientation.Left
            };
            var portal = FacilityPortal.FromObject(obj);

            Assert.AreEqual(obj, (FacilityObject)portal);
        }
Esempio n. 3
0
        public void FacilitySpace_PutUnknownLayerObject_ThrowsException()
        {
            var space  = new FacilitySpace();
            var street = new FacilityObject {
                Type = "Garbage", ObjectLayer = ObjectLayer.Unknown
            };

            space.Put(street);
        }
Esempio n. 4
0
        public void FacilitySpace_PutObject_ObjectPlacedCorrectly()
        {
            var space  = new FacilitySpace();
            var street = new FacilityObject {
                Type = "Street", ObjectLayer = ObjectLayer.Ground
            };

            space.Put(street);

            Assert.AreEqual(street, space.Ground);
        }
Esempio n. 5
0
        public void FacilitySpace_Index_CorrectObjectReturned()
        {
            var obj = new FacilityObject {
                Type = "Floor", ObjectLayer = ObjectLayer.Ground
            };
            var space = new FacilitySpace {
                Ground = obj
            };

            var result = space[ObjectLayer.Ground];

            Assert.AreEqual(obj, result);
        }
Esempio n. 6
0
        public void FacilityObject_LinkToOtherObj_HasBidirectionalLink()
        {
            var obj1 = new FacilityObject {
                Type = "Obj1"
            };
            var obj2 = new FacilityObject {
                Type = "Obj2"
            };

            obj1.LinkTo(obj2);

            Assert.IsTrue(obj1.LinkedObjs.Contains(obj2));
            Assert.IsTrue(obj2.LinkedObjs.Contains(obj1));
        }
Esempio n. 7
0
        public void LayerBuilder_PutUpperObject_ObjectPutCorrectly()
        {
            var builder  = new LayerBuilder(3, 3);
            var painting = new FacilityObject {
                Type = "Painting", Orientation = Orientation.Right, ObjectLayer = ObjectLayer.UpperObject
            };

            builder.PutFloor(1, 1);
            builder.Put(0, 1, painting);
            var layer = builder.Build();

            Assert.IsTrue(layer[0, 1].Contains(painting));
            Assert.AreEqual(painting, layer[0, 1].UpperObject);
        }
Esempio n. 8
0
        public void LayerBuilder_PutLowerObject_ObjectPutCorrectly()
        {
            var builder = new LayerBuilder(3, 3);
            var cash    = new FacilityObject {
                Type = "Cash", Orientation = Orientation.Up, ObjectLayer = ObjectLayer.LowerObject
            };

            builder.PutFloor(1, 1);
            builder.Put(1, 1, cash);
            var layer = builder.Build();

            Assert.IsTrue(layer[1, 1].Contains(cash));
            Assert.AreEqual(cash, layer[1, 1].LowerObject);
        }
Esempio n. 9
0
        public void FacilitySpace_ObjectPlaced_ObserverNotified()
        {
            var space = new FacilitySpace();
            var obs   = new SimpleObserver <FacilitySpace>();
            var obj   = new FacilityObject {
                Type = "Floor", ObjectLayer = ObjectLayer.Ground
            };

            space.Subscribe(obs);

            space.Put(obj);

            Assert.AreEqual(space, obs.LastUpdate);
        }
Esempio n. 10
0
    public Transform ReturnNearest(Facility facility, Vector3 pos)
    {
        float     minDistance     = float.MaxValue;
        Transform nearestLocation = null;

        GameObject[] objectsArray = null;

        switch (facility)
        {
        case Facility.WaterSource:
            objectsArray = waterSources;
            break;

        case Facility.Chair:
            objectsArray = chairs;
            break;

        case Facility.ExitLoc:
            objectsArray = exitLocations;
            break;

        case Facility.Cashier:
            objectsArray = cashiers;
            break;

        default:
            break;
        }

        for (int i = 0; i < objectsArray.Length; i++)
        {
            //TODO clean for performance
            FacilityObject facilityObject = objectsArray[i].GetComponent <FacilityObject>();

            if (facilityObject.IsInUse())
            {
                continue;
            }

            float sqrDist = Vector3.SqrMagnitude(pos - objectsArray[i].transform.position);
            if (sqrDist < minDistance)
            {
                minDistance     = sqrDist;
                nearestLocation = objectsArray[i].transform;
            }
        }

        return(nearestLocation);
    }
    private static int FacilityIndex(FacilityObject f, List <FacilityObject> l)
    {
        int i = -1;

        foreach (FacilityObject c in l)
        {
            i++;
            if (c == f)
            {
                return(i);
            }
        }
        Debug.LogError("Object not found.");
        return(-1);
    }
Esempio n. 12
0
        public void FacilitySpace_ReplaceObjectInLayer_LaterObjectExistsInSpace()
        {
            var space  = new FacilitySpace();
            var street = new FacilityObject {
                Type = "Street", ObjectLayer = ObjectLayer.Ground
            };
            var floor = new FacilityObject {
                Type = "Floor", ObjectLayer = ObjectLayer.Ground
            };

            space.Put(street);
            space.Put(floor);

            Assert.AreEqual(floor, space.Ground);
        }
        public void FacilityMap_WhenShowingLayerTwoObjects_AllObjectsInWorld()
        {
            var floor = CreateFloor();
            var vase  = new FacilityObject {
                ObjectLayer = ObjectLayer.LowerObject, Type = "Vase"
            };

            _sampleSpace.Put(floor);
            _sampleSpace.Put(vase);
            _sampleLayer.Put(1, 1, _sampleSpace);
            _map.Add(_sampleLayer);

            _map.ShowLayer(0);

            Assert.AreEqual(floor, _world.ObjectAt(new XYZ(1, 1, 0), ObjectLayer.Ground));
            Assert.AreEqual(vase, _world.ObjectAt(new XYZ(1, 1, 0), ObjectLayer.LowerObject));
        }
Esempio n. 14
0
        public void FacilitySpace_NoValuableRemoved_ObserverNotNotified()
        {
            var space = new FacilitySpace();
            var obs   = new SimpleObserver <FacilitySpace>();
            var obj   = new FacilityObject {
                Type = "Floor", ObjectLayer = ObjectLayer.Ground
            };

            space.Put(obj);
            space.Subscribe(obs);

            space.Remove(new FacilityObject {
                Type = "Door"
            });

            Assert.AreEqual(0, obs.UpdateCount);
        }
Esempio n. 15
0
        public void FacilityObject_ThreeObjectLink_LinksCorrect()
        {
            var obj1 = new FacilityObject {
                Type = "Obj1"
            };
            var obj2 = new FacilityObject {
                Type = "Obj2"
            };
            var obj3 = new FacilityObject {
                Type = "Obj3"
            };

            obj1.LinkTo(obj2);
            obj2.LinkTo(obj3);

            Assert.IsTrue(obj1.LinkedObjs.Contains(obj3));
            Assert.IsTrue(obj3.LinkedObjs.Contains(obj1));
        }
 public void Put(int x, int y, FacilityObject obj)
 {
     _layer[x, y].Put(obj);
 }