/// <summary> /// Gets all relationships matching the specified filter - includes inherited relationships. /// </summary> /// <param name="filter">Filter criteria.</param> /// <returns>List of <see cref="Property"/> objects.</returns> public override IEnumerable <Relationship> FindRelationships(Func <Relationship, bool> filter) { var relsFound = new List <Relationship>(); var relNamesVisited = new List <string>(); objType curClass = this; while (curClass != null) { foreach (var curRelationship in curClass.Relationships) { var curRelName = curRelationship.Name; var alreadyVisited = ((from relName in relNamesVisited where (relName.CompareTo(curRelName) == 0) select relName).FirstOrDefault() != null); if (!alreadyVisited) { relNamesVisited.Add(curRelName); if (filter == null || filter(curRelationship)) { relsFound.Add(curRelationship); } } } curClass = curClass.DerivesFrom; } return(relsFound); }
void Start() { if (this.gameObject.GetComponent <Text>()) { thisobjType = objType.TEXT; text = this.gameObject.GetComponent <Text>(); } }
public ProgRecord(string prName, string prPath, string prAlias, int prActive, string prIP, objType prType) { pName = prName; pPath = prPath; pAlias = prAlias; pActive = prActive; pIP = prIP; pType = prType; }
private GameObject CreateSingleObject(objType objToCreate) { GameObject currentObj = Instantiate(GetPrefabType(objToCreate)); SetInactiveObjParent(objToCreate, currentObj); currentObj.name = Enum.GetName(typeof(objType), objToCreate); currentObj.SetActive(false); return(currentObj); }
public void ResetObj(GameObject obj, objType objTypeOfObjToReset) { bool checkIfWasNull = false; Queue <GameObject> currentQueue = GetObjQueue(objTypeOfObjToReset, ref checkIfWasNull); SetInactiveObjParent(objTypeOfObjToReset, obj); obj.SetActive(false); currentQueue.Enqueue(obj); }
public static AbstractFactory GetFactory(objType obj) { if (obj == objType.Shape) { return(new ShapeFactory()); } if (obj == objType.Color) { return(new ColorFactory()); } return(null); }
private void SetInactiveObjParent(objType objToCreate, GameObject currentObj) { //Only bullets are curve independent if (objType.Bullet == objToCreate) { currentObj.transform.parent = bulletElements.transform; } else { currentObj.transform.parent = curveElements.transform; } }
public static List <GameObject> GetObjsOfType(List <GameObject> objects, objType type) { List <GameObject> matches = new List <GameObject>(); foreach (GameObject go in objects) { Properties prop = go.GetComponent <Properties>(); if (prop.type == type) { matches.Add(go); } } return(matches); }
private GameObject GetPrefabType(objType objToCreate) { GameObject prefabToGenerate; switch (objToCreate) { case objType.Asteroid: int randomAsteroid = UnityEngine.Random.Range(0, asteroidPrefabList.Count); prefabToGenerate = asteroidPrefabList[randomAsteroid]; break; case objType.Bullet: prefabToGenerate = this.bulletPrefab; break; case objType.PortalBarrel: prefabToGenerate = this.portalBarrelPrefab; break; case objType.PortalPlanet: prefabToGenerate = this.portalPlanetPrefab; break; case objType.DarkHole: prefabToGenerate = this.darkHolePrefab; break; case objType.PowerUpShield: prefabToGenerate = this.powerUpShieldPrefab; break; case objType.PowerUpSnail: prefabToGenerate = this.powerUpSnailPrefab; break; case objType.PowerUpLaser: prefabToGenerate = this.powerUpLaserPrefab; break; case objType.PowerUpGrenade: prefabToGenerate = this.powerUpGrenadePrefab; break; default: Debug.LogError("<color=red> Dynamic pool received an incorrect object type </color>"); prefabToGenerate = asteroidPrefabList[0]; break; } return(prefabToGenerate); }
public GameObject GetObj(objType objToCreate) { GameObject currentObj; bool checkIfWasNull = false; Queue <GameObject> currentQueue = GetObjQueue(objToCreate, ref checkIfWasNull); if (currentQueue.Count != 0) { currentObj = currentQueue.Dequeue(); currentObj.SetActive(true); } else { currentObj = CreateSingleObject(objToCreate); currentObj.SetActive(true); } return(currentObj); }
void updateLayer() { // Send out a ray left and right to look for type to effect, and the effect to grant RaycastHit2D[] ruleHit = Physics2D.RaycastAll(props.pos, new Vector3(1, 0), squareSize); RaycastHit2D[] objHit = Physics2D.RaycastAll(props.pos, new Vector3(-1, 0), squareSize); List <GameObject> allObjs = GameObject.Find("SceneManager").GetComponent <SceneManager>().gameObjs; // removes all effects from the type we were previously effecting if (lastEffectingType != null) { List <GameObject> effectedObjs = GetObjsOfType(allObjs, lastEffectingType); foreach (GameObject go in effectedObjs) { go.layer = layers.none; } lastEffectingType = objType.None; } // if there is some object to the left and right if (ruleHit.Length > 1 && objHit.Length > 1) { GameObject rule = ruleHit[1].collider.gameObject; // TODO these should check for the first applicable object not the 2nd one. (ie ignore none layer objects) GameObject obj = objHit[1].collider.gameObject; Properties ruleProp = rule.GetComponent <Properties>(); Properties objProp = obj.GetComponent <Properties>(); int layer = 0; // determine the destination layer corresponding to the adjacent rule switch (ruleProp.type) { case objType.StopRule: layer = layers.stop; break; case objType.PushRule: layer = layers.push; break; } // determine the object type corresponding to the adjacent type objType typeToSet = objType.None; switch (objProp.type) { case objType.RockRule: typeToSet = objType.Rock; break; case objType.WallRule: typeToSet = objType.Wall; break; } // set all objects of that type to the destination rule layer List <GameObject> effectedObjs = GetObjsOfType(allObjs, typeToSet); foreach (GameObject go in effectedObjs) { go.layer = layer; } lastEffectingType = typeToSet; } }
GameObject initObj(objType entityType, Vector3 position) { GameObject go = new GameObject(); Properties prop = go.AddComponent <Properties>(); prop.go = go; prop.pos = position; SpriteRenderer sr = go.AddComponent <SpriteRenderer>(); prop.dest = prop.pos; prop.type = entityType; go.layer = 13; switch (entityType) { case objType.Yaga: go.name = "Yaga"; sr.sprite = Resources.Load <Sprite>("Sprites/yaga"); go.layer = layers.player; break; case objType.Wall: go.name = "Wall"; sr.sprite = Resources.Load <Sprite>("Sprites/wallTop"); SpriteManager sp = go.AddComponent <SpriteManager>(); sp.parent = go; break; case objType.Rock: go.name = "Rock"; sr.sprite = Resources.Load <Sprite>("Sprites/rock"); break; case objType.RockRule: go.name = "RockRule"; sr.sprite = Resources.Load <Sprite>("Sprites/rules/rock"); go.layer = layers.rule; break; case objType.WallRule: go.name = "WallRule"; sr.sprite = Resources.Load <Sprite>("Sprites/rules/wall"); go.layer = layers.rule; break; case objType.IsSetter: go.name = "IsSetter"; sr.sprite = Resources.Load <Sprite>("Sprites/rules/is"); StateManager st = go.AddComponent <StateManager>(); st.parent = go; go.layer = layers.rule; break; case objType.PushRule: go.name = "PushRule"; sr.sprite = Resources.Load <Sprite>("Sprites/rules/push"); go.layer = layers.rule; break; case objType.StopRule: go.name = "StopRule"; sr.sprite = Resources.Load <Sprite>("Sprites/rules/stop"); go.layer = layers.rule; break; } go.AddComponent <BoxCollider2D>(); return(go); }
public void Generate(objType objToCreate, GameObject prefab) { bool queueWasNull = false; Queue <GameObject> currentQueue = GetObjQueue(objToCreate, ref queueWasNull); if (queueWasNull) { int numToCreate = 0; switch (objToCreate) { case objType.Bullet: numToCreate = numToCreateBullets; this.bulletPrefab = prefab; break; case objType.Asteroid: numToCreate = numToCreateAsteroids; this.asteroidPrefabList = new List <GameObject>(); this.asteroidPrefabList.Add(prefab); break; case objType.PortalBarrel: numToCreate = numToCreatePortalBarrels; this.portalBarrelPrefab = prefab; break; case objType.PortalPlanet: numToCreate = numToCreatePortalPlanets; this.portalPlanetPrefab = prefab; break; case objType.DarkHole: numToCreate = numToCreateDarkHoles; this.darkHolePrefab = prefab; break; case objType.PowerUpShield: numToCreate = numToCreatePowerUpShield; this.powerUpShieldPrefab = prefab; break; case objType.PowerUpSnail: numToCreate = numToCreatePowerUpSnail; this.powerUpSnailPrefab = prefab; break; case objType.PowerUpLaser: numToCreate = numToCreatePowerUpLaser; this.powerUpLaserPrefab = prefab; break; case objType.PowerUpGrenade: numToCreate = numToCreatePowerUpGrenade; this.powerUpGrenadePrefab = prefab; break; default: Debug.LogError("<color=red> Dynamic pool received an incorrect object type </color>"); break; } for (int i = 0; i < numToCreate; i++) { currentQueue.Enqueue(CreateSingleObject(objToCreate)); } } }
//FIXME:Should move the check and creation to another function private Queue <GameObject> GetObjQueue(objType objToCreate, ref bool queueWasNull) { Queue <GameObject> currentQueue; switch (objToCreate) { case objType.Asteroid: if (asteroidQueue is null) { queueWasNull = true; asteroidQueue = new Queue <GameObject>(); } currentQueue = asteroidQueue; break; case objType.Bullet: if (bulletQueue is null) { queueWasNull = true; bulletQueue = new Queue <GameObject>(); } currentQueue = bulletQueue; break; case objType.PortalBarrel: if (portalBarrelQueue is null) { queueWasNull = true; portalBarrelQueue = new Queue <GameObject>(); } currentQueue = portalBarrelQueue; break; case objType.PortalPlanet: if (portalPlanetQueue is null) { queueWasNull = true; portalPlanetQueue = new Queue <GameObject>(); } currentQueue = portalPlanetQueue; break; case objType.DarkHole: if (darkHoleQueue is null) { queueWasNull = true; darkHoleQueue = new Queue <GameObject>(); } currentQueue = darkHoleQueue; break; case objType.PowerUpShield: if (powerUpShieldQueue is null) { queueWasNull = true; powerUpShieldQueue = new Queue <GameObject>(); } currentQueue = powerUpShieldQueue; break; case objType.PowerUpSnail: if (powerUpSnailQueue is null) { queueWasNull = true; powerUpSnailQueue = new Queue <GameObject>(); } currentQueue = powerUpSnailQueue; break; case objType.PowerUpLaser: if (powerUpLaserQueue is null) { queueWasNull = true; powerUpLaserQueue = new Queue <GameObject>(); } currentQueue = powerUpLaserQueue; break; case objType.PowerUpGrenade: if (powerUpGrenadedQueue is null) { queueWasNull = true; powerUpGrenadedQueue = new Queue <GameObject>(); } currentQueue = powerUpGrenadedQueue; break; default: Debug.LogError("<color=red> Dynamic pool received an incorrect object type </color>"); currentQueue = asteroidQueue; break; } return(currentQueue); }