public void AddFlystickListener(IFlystickListener flistener, ARTFlystick uniqueFlystick) { if (!ListenerToStickTable.ContainsValue(uniqueFlystick)) { flystickListener.Add(flistener); ListenerToStickTable.Add(flistener, uniqueFlystick); StickToListenerTable.Add(uniqueFlystick, flistener); } }
public void RemoveFlystickListener(IFlystickListener flistener) { if (flystickListener.Contains(flistener)) { flystickListener.Remove(flistener); ARTFlystick stick = (ARTFlystick)ListenerToStickTable[flistener]; ListenerToStickTable.Remove(flistener); StickToListenerTable.Remove(stick); } }
public ARTFlystick getARTFlystickById(int id) { for (int i = 0; i < artFlysticks.Count; i++) { if (((ARTFlystick)artFlysticks[i]).getId() == id) { return((ARTFlystick)artFlysticks[i]); } } return(ARTFlystick.Empty()); }
protected void UpdateFlystickListener(IFlystickListener flistener) { ARTFlystick flystick = null; float[] xyFloats = null; BitArray binBStates = null; if (ListenerToStickTable.ContainsKey(flistener)) { flystick = (ARTFlystick)ListenerToStickTable[flistener]; xyFloats = flystick.GetStickXYPos(); binBStates = new BitArray(new int[] { flystick.getButtonStates() }); } if (flystick != null) { if (binBStates[3]) //leftbutton { flistener.onLeftButtonPress(flystick); } if (binBStates[2]) //middlebutton { flistener.onMiddleButtonPress(flystick); } if (binBStates[1]) //rightbutton { flistener.onRightButtonPress(flystick); } if (binBStates[0]) //trigger { flistener.onTriggerPress(flystick); } if (xyFloats[0] > 0.1F) { flistener.onStickRight(flystick); } if (xyFloats[0] < -0.1F) { flistener.onStickLeft(flystick); } if (xyFloats[1] > 0.1F) { flistener.onStickUp(flystick); } if (xyFloats[1] < 0.1F) { flistener.onStickDown(flystick); } } }
//protected void addFlystick(ARTFlystick obj) //{ // for (int i = 0; i < artFlysticks.Count; i++) // { // if (((ARTFlystick)artFlysticks[i]).getId() == obj.getId()) // { // artFlysticks.RemoveAt(i); // } // } // artFlysticks.Add(obj); //} protected void addFlystick(ARTFlystick obj) { bool exists = false; for (int i = 0; i < artFlysticks.Count; i++) { if (((ARTFlystick)artFlysticks[i]).getId() == obj.getId()) { artFlysticks.RemoveAt(i); artFlysticks.Insert(i, obj); exists = true; } } if (!exists) { artFlysticks.Add(obj); } }