private void OnTriggerExit2D(Collider2D collision) { BasicElement bs = collision.gameObject.GetComponent <BasicElement>(); if (bs.eventDelegate != null) { bs.eventDelegate -= StopMove; } }
public static CombinableDo PressModifierKeys(BasicElement control, WinModifierKeys modifierKeys) { if (modifierKeys == WinModifierKeys.None) { return(new CombinableDo()); } return(PressKey(control, Convert(modifierKeys))); }
public static CombinableDo SendKeys(BasicElement control, string text, WinModifierKeys modifierKeys) { if (modifierKeys == WinModifierKeys.None) { return(new CombinableDo()); } return(TypeText(control, text, Convert(modifierKeys))); }
public static CombinableDo ReleaseModifierKeys(BasicElement control, WinModifierKeys modifierKeys) { if (modifierKeys == WinModifierKeys.None) { return(new CombinableDo()); } return(ReleaseKey(Convert(modifierKeys))); }
protected virtual void OnCollisionEnter2D(Collision2D collision) { BasicElement basicElement = collision.gameObject.GetComponent <BasicElement>(); if (!basicElement) { return; } Combine(basicElement); }
private static void Read(BasicElement rootElement, BasicElementData data) { foreach (var child in GetChildren(rootElement.AutomationElement)) { var element = new BasicElement(child); var elementData = element.GetDataCopy(); ((List <BasicElementData>)data.Children).Add(elementData); Read(element, elementData); } }
public override int CompareTo(BasicElement other) { var otheraff = other as AffordanceDesire; if (otheraff?._desire != null && _desire != null) { return(_desire.CompareTo(otheraff._desire)); } return(base.CompareTo(other)); }
protected override void Hit(BasicElement element) { base.Hit(element);//火是可以掉下来的,所以有可能火撞到别的东西 switch (element.elementType) { //case ElementType.wood: Disappear(); return; case ElementType.fire: Disappear(); return; default: return; } }
public Cell(BigEndianReader raw, sbyte mapVersion) { cellId = raw.ReadShort(); elementsCount = raw.ReadShort(); elements = new List <BasicElement>(); for (int i = 0; i < elementsCount; i++) { elements.Add(BasicElement.GetElementFromType(raw.ReadByte(), raw, mapVersion)); } }
// Methods internal void Init(IDataReader Reader, int MapVersion) { CellId = Reader.ReadShort(); ElementsCount = Reader.ReadShort(); for (var i = 0; i < ElementsCount; i++) { var be = BasicElement.GetElementFromType(Reader.ReadByte()); be.Init(Reader, MapVersion); Elements.Add(be); } }
/// <summary> /// Gives the BasicElement the focus and presses and holds the given key down. Use <see cref="ReleaseKey(Key)" /> to release the key back again. /// </summary> /// <param name="control">The BasicElement who should get the focus before pressing the key.</param> /// <param name="key">The key to press and hold.</param> /// <returns>A combinable Do to be able to append additional actions.</returns> public static CombinableDo PressKey(BasicElement control, Key key) { return(WrapIt(() => { LogPool.Append("Set control focus for keyboard inputs on '{0}'.", control); control.AutomationElement.SetFocus(); LogPool.Append("Press key '{0}'.", key); WinApi.KeyboardEvent((byte)key, WinApi.KeyboardEventFlags.KEYEVENTF_EXTENDEDKEY); }, string.Format("Cannot press down the key '{0}' with the '{1}' focused.", key, control))); }
public override int CompareTo(BasicElement other) { if (_assignableDevice == null) { return(0); } if (other is AffordanceDevice otheraff) { return(_assignableDevice.CompareTo(otheraff._assignableDevice)); } return(base.CompareTo(other)); }
// Start is called before the first frame update protected override void Hit(BasicElement element) { base.Hit(element); switch (element.elementType) { case ElementType.stone: Disappear(); return; case ElementType.magnet: Disappear(); return; default: HitOtherObj(); return; } }
protected override void BeHit(BasicElement element) { base.BeHit(element); switch (element.elementType) { case ElementType.stone: Disappear(); return; case ElementType.magnet: Disappear(); return; default: return; //草撞火是草消失,火不变,火撞草是火消失,草变火? } }
public override int CompareTo(BasicElement other) { if (!(other is TemplatePersonTrait othr)) { throw new LPGException("Other was null."); } if (_trait != null && othr._trait != null) { return(string.Compare(_trait.Name, othr._trait.Name, StringComparison.Ordinal)); } return(0); }
/// <summary> /// Gives the BasicElement the focus and types the given text with a small delay time between each character. /// </summary> /// <param name="control">The BasicElement who should get the focus before typing the text.</param> /// <param name="text">The text to type.</param> /// <param name="delay">The time to wait after each character in milliseconds.</param> /// <returns>A combinable Do to be able to append additional actions.</returns> public static CombinableDo TypeText(BasicElement control, string text, int delay) { return(WrapIt(() => { LogPool.Append("Set control focus for keyboard inputs on '{0}'.", control); control.AutomationElement.SetFocus(); LogPool.Append("Type text '{0}' with a delay of {1} milliseconds.", text, delay); SendText(text, delay); }, string.Format("Cannot send the text '{0}' with the '{1} focused.'", text, control))); }
/// <summary> /// Gives the BasicElement the focus and types the given modifier keys. /// </summary> /// <param name="control">The BasicElement who should get the focus before typing the key.</param> /// <param name="modifierKeys">The modifier keys to type.</param> /// <returns>A combinable Do to be able to append additional actions.</returns> public static CombinableDo TypeKey(BasicElement control, ModifierKeys modifierKeys) { return(WrapIt(() => { LogPool.Append("Set control focus for keyboard inputs on '{0}'.", control); control.AutomationElement.SetFocus(); LogPool.Append("Type modifier keys '{0}'.", modifierKeys); Type((byte)modifierKeys); }, string.Format("Cannot press down the modifier keys '{0}' with the '{1}' focused.", modifierKeys, control))); }
protected override void BeHit(BasicElement element) { base.BeHit(element); switch (element.elementType) { case ElementType.stone: Disappear(); return; case ElementType.magnet: Disappear(); return; //磁石撞了磁石?? default: return; } }
// Methods internal void Init(BigEndianReader Reader, int MapVersion) { this.CellId = Reader.ReadShort(); this.ElementsCount = Reader.ReadShort(); int elementsCount = this.ElementsCount; for (int i = 0; i < elementsCount; i++) { BasicElement elementFromType = BasicElement.GetElementFromType(Reader.ReadByte()); elementFromType.Init(Reader, MapVersion); this.Elements.Add(elementFromType); } }
private void Read(FastBigEndianReader reader) { List <IElement> allElements = new List <IElement>(); this.CellId = reader.ReadShort(); this.ElementsCount = reader.ReadShort(); for (int i = 0; i < ElementsCount; i++) { IElement be = BasicElement.GetElementFromType(Map, reader, reader.ReadByte()); allElements.Add(be); } Elements = allElements.AsReadOnly(); }
protected override void BeHit(BasicElement element) { base.BeHit(element); switch (element.elementType) { case ElementType.wood: FallDown(); return; case ElementType.stone: BeMagnet(); return; case ElementType.magnet: Disappear(); return; default: return; } }
public void create(BasicElement element, bool isHospital) { newElement = Instantiate <GameObject>(element.mesh, transform); float xPos = element.side > 0 ? 9f : -8.5f; float zPos = GameManager.inst.DistanceToDestroy * 2; if (isHospital) { xPos = 12.5f; } this.transform.position = new Vector3(xPos, -0.5f, zPos); }
/// <summary> /// create an object with the given element /// </summary> /// <param name="basicElement">the BasicElement to build</param> /// <param name="position">the position of the BasicElement</param> /// <param name="currentID">the ID of the BasicElement</param> private static void CreateObject(BasicElement basicElement, int position, int currentID) { basicElement.Build(); // the mesh is updated when triangulating in the build function MyMesh mesh = new MyMesh(basicElement.GetMesh().triangles, basicElement.GetMesh().vertices); // here you get that mesh (OpencascadePart.MyMesh) and you convert it into an Assets.MyMesh // if you need to refresh MyMesh for some reasons, you can update the faces the way you wish and then call basicElement.RecalculateMyMesh() mesh.obj.transform.localScale = new Vector3(1, 1, 1); mesh.obj.AddComponent<BoxCollider>(); mesh.obj.transform.position = new Vector3(1.0f, 1.0f, -1.0f - position); mesh.obj.AddComponent<GetSelected>(); mesh.obj.AddComponent<AdditionnalProperties>(); mesh.obj.GetComponent<AdditionnalProperties>().ID = currentID + 1; }
private void OnTriggerEnter2D(Collider2D collision) { BasicElement bs = collision.gameObject.GetComponent <BasicElement>(); if (!bs) { return; } bs.eventDelegate += StopMove; if (bs is Fire) { ChangeDirection(); } }
private static IEnumerable <TControl> StartSearchChildren <TControl>(BasicElement parent, Predicate <BasicElement> condition) where TControl : BasicElement { var foundItems = new List <TControl>(); foreach (var child in GetChildren(parent.AutomationElement)) { var childBasicElement = new BasicElement(child); if (condition(childBasicElement)) { foundItems.Add((TControl)Activator.CreateInstance(typeof(TControl), child)); } foundItems.AddRange(StartSearchChildren <TControl>(childBasicElement, condition)); } return(foundItems); }
// Methods internal void Init(BigEndianReader Reader, int MapVersion) { CellId = Reader.ReadShort(); ElementsCount = Reader.ReadShort(); int elementsCount = ElementsCount; int i = 1; while ((i <= elementsCount)) { BasicElement elementFromType = BasicElement.GetElementFromType(Reader.ReadByte()); elementFromType.Init(Reader, MapVersion); Elements.Add(elementFromType); i += 1; } }
protected override void BeHit(BasicElement element) { base.BeHit(element); switch (element.elementType) { case ElementType.wood: Burn(); return; case ElementType.stone: return; //草被石头撞? //case ElementType.fire: Burn(); return; case ElementType.magnet: Disappear(); return; default: return; } }
private static TControl StartSearchParent <TControl>(BasicElement child, Predicate <BasicElement> condition) where TControl : BasicElement { var parent = TreeWalker.ControlViewWalker.GetParent(child.AutomationElement); if (parent != null) { var basicElement = new BasicElement(parent); if (!condition(basicElement)) { return(StartSearchParent <TControl>(basicElement, condition)); } return((TControl)Activator.CreateInstance(typeof(TControl), parent)); } return(null); }
public Cell FromRaw(BigEndianReader raw) { Cell cell = new Cell { CellId = raw.ReadShort(), ElementsCount = raw.ReadShort() }; cell.Elements = new BasicElement[cell.ElementsCount]; for (int i = 0; i < cell.ElementsCount; i++) { BasicElement be = new BasicElement(cell); cell.Elements[i] = be.GetElementFromType(cell, raw); } return(cell); }
private static TControl StartSearchChild <TControl>(BasicElement sourceElement, Predicate <BasicElement> condition) where TControl : BasicElement { foreach (var child in GetChildren(sourceElement.AutomationElement)) { var childBasicElement = new BasicElement(child); if (condition(childBasicElement)) { return((TControl)Activator.CreateInstance(typeof(TControl), child)); } var foundItem = StartSearchChild <TControl>(childBasicElement, condition); if (foundItem != null) { return(foundItem); } } return(null); }