private void instanceElement <T>(ElementReference context) where T : Element { if (!ConditionChecker.check(context.getConditions())) { return; } if (!contexts.ContainsKey(context)) { ElementReference new_context = new ElementReference(context.getTargetId(), context.getX(), context.getY()); new_context.setScale(context.getScale()); contexts.Add(context, new_context); } context = contexts [context]; GameObject base_prefab; Transform parent; Element element; switch (typeof(T).ToString()) { case "Atrezzo": base_prefab = Atrezzo_Prefab; parent = Atrezzos; element = Game.Instance.GameState.getAtrezzo(context.getTargetId()); break; case "NPC": base_prefab = Character_Prefab; parent = Characters; element = Game.Instance.GameState.getCharacter(context.getTargetId()); break; case "Item": base_prefab = Object_Prefab; parent = Objects; element = Game.Instance.GameState.getObject(context.getTargetId()); break; default: return; } GameObject ret = GameObject.Instantiate(base_prefab); Transform trans = ret.GetComponent <Transform> (); ret.GetComponent <Representable> ().Context = context; ret.GetComponent <Representable> ().Element = element; trans.SetParent(parent); }
private GameObject InstanceElement(ElementReference context) { Element element = Game.Instance.GameState.FindElement <Element>(context.getTargetId()); if (element == null) { Debug.LogError("Unable to find target element: " + context.getTargetId()); return(null); } GameObject basePrefab; Transform parent; if (element.GetType() == typeof(Atrezzo)) { basePrefab = atrezzoPrefab; parent = referencesHolder; } else if (element.GetType() == typeof(NPC)) { basePrefab = characterPrefab; parent = referencesHolder; } else if (element.GetType() == typeof(Item)) { basePrefab = objectPrefab; parent = referencesHolder; } else { return(null); } GameObject ret = Instantiate(basePrefab, parent); var representable = ret.GetComponent <Representable>(); representable.Context = context; representable.Element = element; var scenePositioner = ret.AddComponent <ScenePositioner>(); scenePositioner.Scene = this; scenePositioner.Context = context; scenePositioner.Representable = representable; return(ret); }
private int count(ElementReference er) { int count = 0; foreach (ElementContainer e in allReferencesDataControl) { if (!e.isPlayer()) { if (e.getErdc().getElementId().Equals(er.getTargetId())) { count++; } } } return(count); }
/** * Contructor. * * @param sceneDataControl * Parent scene controller * @param elementReference * Element reference of the data control structure */ public ElementReferenceDataControl(SceneDataControl sceneDataControl, ElementReference elementReference, int type, int referenceNumber) { this.sceneDataControl = sceneDataControl; this.elementReference = elementReference; this.type = type; this.visible = true; if (type == Controller.ITEM_REFERENCE || type == Controller.NPC_REFERENCE) { this.influenceAreaDataControl = new InfluenceAreaDataControl(sceneDataControl, elementReference.getInfluenceArea(), this); } // Create subcontrollers Dictionary <string, ConditionsController.ConditionContextProperty> context1 = new Dictionary <string, ConditionsController.ConditionContextProperty>(); ConditionsController.ConditionOwner parent = new ConditionsController.ConditionOwner(Controller.SCENE, sceneDataControl.getId()); ConditionsController.ConditionOwner owner = new ConditionsController.ConditionOwner(type, elementReference.getTargetId(), parent); context1.Add(ConditionsController.CONDITION_OWNER, owner); conditionsController = new ConditionsController(elementReference.getConditions(), context1); }
/** * Returns the id of the referenced element. * * @return Id of the referenced element */ public string getElementId() { return(elementReference.getTargetId()); }
private int count(ElementReference er) { return(allReferencesDataControl.Count(e => !e.isPlayer() && e.getErdc().getElementId().Equals(er.getTargetId()))); }