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); }
public void FacilitySpace_PutUnknownLayerObject_ThrowsException() { var space = new FacilitySpace(); var street = new FacilityObject { Type = "Garbage", ObjectLayer = ObjectLayer.Unknown }; space.Put(street); }
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); }
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); }
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)); }
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); }
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); }
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); }
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); }
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)); }
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); }
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); }