From 5a378becfc35f01f7d6182bb05fbcfc0ed994847 Mon Sep 17 00:00:00 2001 From: fireclawthefox Date: Wed, 10 Aug 2016 13:11:24 +0200 Subject: [PATCH] Added button mapping GUI --- samples/gamepad/mappingGUI.py | 342 ++++++++++++++++++++++ samples/gamepad/models/button_map.egg | 117 ++++++++ samples/gamepad/models/click.png | Bin 0 -> 30591 bytes samples/gamepad/models/dec_click.png | Bin 0 -> 847 bytes samples/gamepad/models/dec_disabled.png | Bin 0 -> 852 bytes samples/gamepad/models/dec_hover.png | Bin 0 -> 831 bytes samples/gamepad/models/dec_map.egg | 117 ++++++++ samples/gamepad/models/dec_ready.png | Bin 0 -> 781 bytes samples/gamepad/models/dialog.png | Bin 0 -> 4325 bytes samples/gamepad/models/disabled.png | Bin 0 -> 23853 bytes samples/gamepad/models/hover.png | Bin 0 -> 27590 bytes samples/gamepad/models/inc_click.png | Bin 0 -> 843 bytes samples/gamepad/models/inc_disabled.png | Bin 0 -> 866 bytes samples/gamepad/models/inc_hover.png | Bin 0 -> 835 bytes samples/gamepad/models/inc_map.egg | 117 ++++++++ samples/gamepad/models/inc_ready.png | Bin 0 -> 794 bytes samples/gamepad/models/li_ready_even.png | Bin 0 -> 186 bytes samples/gamepad/models/li_ready_odd.png | Bin 0 -> 186 bytes samples/gamepad/models/list_item_even.egg | 33 +++ samples/gamepad/models/list_item_odd.egg | 33 +++ samples/gamepad/models/ready.png | Bin 0 -> 25376 bytes samples/gamepad/models/thumb_click.png | Bin 0 -> 916 bytes samples/gamepad/models/thumb_disabled.png | Bin 0 -> 912 bytes samples/gamepad/models/thumb_hover.png | Bin 0 -> 892 bytes samples/gamepad/models/thumb_map.egg | 117 ++++++++ samples/gamepad/models/thumb_ready.png | Bin 0 -> 815 bytes 26 files changed, 876 insertions(+) create mode 100644 samples/gamepad/mappingGUI.py create mode 100644 samples/gamepad/models/button_map.egg create mode 100644 samples/gamepad/models/click.png create mode 100644 samples/gamepad/models/dec_click.png create mode 100644 samples/gamepad/models/dec_disabled.png create mode 100644 samples/gamepad/models/dec_hover.png create mode 100644 samples/gamepad/models/dec_map.egg create mode 100644 samples/gamepad/models/dec_ready.png create mode 100644 samples/gamepad/models/dialog.png create mode 100644 samples/gamepad/models/disabled.png create mode 100644 samples/gamepad/models/hover.png create mode 100644 samples/gamepad/models/inc_click.png create mode 100644 samples/gamepad/models/inc_disabled.png create mode 100644 samples/gamepad/models/inc_hover.png create mode 100644 samples/gamepad/models/inc_map.egg create mode 100644 samples/gamepad/models/inc_ready.png create mode 100644 samples/gamepad/models/li_ready_even.png create mode 100644 samples/gamepad/models/li_ready_odd.png create mode 100644 samples/gamepad/models/list_item_even.egg create mode 100644 samples/gamepad/models/list_item_odd.egg create mode 100644 samples/gamepad/models/ready.png create mode 100644 samples/gamepad/models/thumb_click.png create mode 100644 samples/gamepad/models/thumb_disabled.png create mode 100644 samples/gamepad/models/thumb_hover.png create mode 100644 samples/gamepad/models/thumb_map.egg create mode 100644 samples/gamepad/models/thumb_ready.png diff --git a/samples/gamepad/mappingGUI.py b/samples/gamepad/mappingGUI.py new file mode 100644 index 0000000000..ce9234bd1d --- /dev/null +++ b/samples/gamepad/mappingGUI.py @@ -0,0 +1,342 @@ +#!/usr/bin/env python +''' +Demonstrate how a simple button mapping gui can be written +''' + +from direct.showbase.ShowBase import ShowBase +from direct.gui.DirectGui import ( + DGG, + DirectFrame, + DirectButton, + DirectLabel, + OkCancelDialog, + DirectScrolledFrame) +from panda3d.core import ( + VBase4, + TextNode, + Vec2, + InputDevice, + loadPrcFileData) + +# Make sure the textures look crisp on every device that supports +# non-power-2 textures +loadPrcFileData("", "textures-auto-power-2 #t") + +class App(ShowBase): + def __init__(self): + ShowBase.__init__(self) + + self.setBackgroundColor(0, 0, 0) + # make the font look nice at a big scale + DGG.getDefaultFont().setPixelsPerUnit(100) + + # a dict of actions and button/axis events + self.gamepadMapping = { + "Move forward":"Left Stick Y", + "Move backward":"Left Stick Y", + "Move left":"Left Stick X", + "Move right":"Left Stick X", + "Jump":"a", + "Action":"b", + "Sprint":"x", + "Map":"y", + "action-1":"c", + "action-2":"d", + "action-3":"e", + "action-4":"f", + "action-5":"g", + "action-6":"h", + "action-7":"i", + "action-8":"j", + "action-9":"k", + "action-10":"l", + "action-11":"m", + } + # this will store the action that we want to remap + self.actionToMap = "" + # this will store the key/axis that we want to asign to an action + self.newActionKey = "" + # this will store the label that needs to be actualized in the list + self.actualizeLabel = None + + # The geometry for our basic buttons + maps = loader.loadModel("models/button_map") + self.buttonGeom = ( + maps.find("**/ready"), + maps.find("**/click"), + maps.find("**/hover"), + maps.find("**/disabled")) + + # Create the dialog that asks the user for input on a given + # action to map a key to. + DGG.setDefaultDialogGeom("models/dialog.png") + # setup a dialog to ask for device input + self.dlgInput = OkCancelDialog( + dialogName="dlg_device_input", + pos=(0, 0, 0.25), + text="Hit desired key:", + text_fg=VBase4(0.898, 0.839, 0.730, 1.0), + text_shadow=VBase4(0, 0, 0, 0.75), + text_shadowOffset=Vec2(0.05, 0.05), + text_scale=0.05, + text_align=TextNode.ACenter, + fadeScreen=0.65, + frameColor=VBase4(0.3, 0.3, 0.3, 1), + button_geom=self.buttonGeom, + button_scale=0.15, + button_text_scale=0.35, + button_text_align=TextNode.ALeft, + button_text_fg=VBase4(0.898, 0.839, 0.730, 1.0), + button_text_pos=Vec2(-0.9, -0.125), + button_relief=1, + button_pad=Vec2(0.01, 0.01), + button_frameColor=VBase4(0, 0, 0, 0), + button_frameSize=VBase4(-1.0, 1.0, -0.25, 0.25), + button_pressEffect=False, + command=self.closeDialog) + self.dlgInput.setTransparency(True) + self.dlgInput.configureDialog() + scale = self.dlgInput["image_scale"] + self.dlgInput["image_scale"] = (scale[0]/2.0, scale[1], scale[2]/2.0) + self.dlgInput["text_pos"] = (self.dlgInput["text_pos"][0], self.dlgInput["text_pos"][1] + 0.06) + self.dlgInput.hide() + + # create a sample title + self.textscale = 0.1 + self.title = DirectLabel( + scale=self.textscale, + pos=(base.a2dLeft + 0.05, 0.0, base.a2dTop - (self.textscale + 0.05)), + frameColor=VBase4(0, 0, 0, 0), + text="Button Mapping", + text_align=TextNode.ALeft, + text_fg=VBase4(1, 1, 1, 1), + text_shadow=VBase4(0, 0, 0, 0.75), + text_shadowOffset=Vec2(0.05, 0.05)) + self.title.setTransparency(1) + + # Set up the list of actions that we can map keys to + # create a frame that will create the scrollbars for us + # Load the models for the scrollbar elements + thumbMaps = loader.loadModel("models/thumb_map") + thumbGeom = ( + thumbMaps.find("**/thumb_ready"), + thumbMaps.find("**/thumb_click"), + thumbMaps.find("**/thumb_hover"), + thumbMaps.find("**/thumb_disabled")) + incMaps = loader.loadModel("models/inc_map") + incGeom = ( + incMaps.find("**/inc_ready"), + incMaps.find("**/inc_click"), + incMaps.find("**/inc_hover"), + incMaps.find("**/inc_disabled")) + decMaps = loader.loadModel("models/dec_map") + decGeom = ( + decMaps.find("**/dec_ready"), + decMaps.find("**/dec_click"), + decMaps.find("**/dec_hover"), + decMaps.find("**/dec_disabled")) + # create the scrolled frame that will hold our list + self.lstActionMap = DirectScrolledFrame( + # make the frame occupy the whole window + frameSize=VBase4(base.a2dLeft, base.a2dRight, 0.0, 1.55), + # make the canvas as big as the frame + canvasSize=VBase4(base.a2dLeft, base.a2dRight, 0.0, 0.0), + # set the frames color to white + frameColor=VBase4(0, 0, 0.25, 0.75), + pos=(0, 0, -0.8), + + verticalScroll_scrollSize=0.2, + verticalScroll_frameColor=VBase4(0.02, 0.02, 0.02, 1), + + verticalScroll_thumb_relief=1, + verticalScroll_thumb_geom=thumbGeom, + verticalScroll_thumb_pressEffect=False, + verticalScroll_thumb_frameColor=VBase4(0, 0, 0, 0), + + verticalScroll_incButton_relief=1, + verticalScroll_incButton_geom=incGeom, + verticalScroll_incButton_pressEffect=False, + verticalScroll_incButton_frameColor=VBase4(0, 0, 0, 0), + + verticalScroll_decButton_relief=1, + verticalScroll_decButton_geom=decGeom, + verticalScroll_decButton_pressEffect=False, + verticalScroll_decButton_frameColor=VBase4(0, 0, 0, 0),) + + # creat the list items + idx = 0 + self.listBGEven = base.loader.loadModel("models/list_item_even") + self.listBGOdd = base.loader.loadModel("models/list_item_odd") + for key, value in self.gamepadMapping.items(): + item = self.__makeListItem(key, key, value, idx) + item.reparentTo(self.lstActionMap.getCanvas()) + idx += 1 + + # recalculate the canvas size to set scrollbars if necesary + self.lstActionMap["canvasSize"] = ( + base.a2dLeft+0.05, base.a2dRight-0.05, + -(len(self.gamepadMapping.keys())*0.1), 0.09) + self.lstActionMap.setCanvasSize() + + def closeDialog(self, result): + self.dlgInput.hide() + if result == DGG.DIALOG_OK: + # map the event to the given action + self.gamepadMapping[self.actionToMap] = self.newActionKey + # actualize the label in the list that shows the current + # event for the action + self.actualizeLabel["text"] = self.newActionKey + + # cleanup + self.dlgInput["text"] ="Hit desired key:" + self.actionToMap = "" + self.newActionKey = "" + self.actualizeLabel = None + for bt in base.buttonThrowers: + bt.node().setButtonDownEvent("") + for bt in base.deviceButtonThrowers: + bt.node().setButtonDownEvent("") + taskMgr.remove("checkControls") + + def changeMapping(self, action, label): + # set the action that we want to map a new key to + self.actionToMap = action + # set the label that needs to be actualized + self.actualizeLabel = label + # show our dialog + self.dlgInput.show() + + # catch all button events + for bt in base.buttonThrowers: + bt.node().setButtonDownEvent("keyListenEvent") + for bt in base.deviceButtonThrowers: + bt.node().setButtonDownEvent("deviceListenEvent") + self.setKeyCalled = False + self.accept("keyListenEvent", self.setKey) + self.accept("deviceListenEvent", self.setDeviceKey) + + # As there are no events thrown for control changes, we set up + # a task to check if the controls got moved + # This list will help us for checking which controls got moved + self.controlStates = {None:{}} + # fill it with all available controls + for device in base.devices.get_devices(): + for ctrl in device.controls: + if device not in self.controlStates.keys(): + self.controlStates.update({device: {ctrl.axis: ctrl.state}}) + else: + self.controlStates[device].update({ctrl.axis: ctrl.state}) + # start the task + taskMgr.add(self.watchControls, "checkControls") + + def watchControls(self, task): + # move through all devices and all it's controls + for device in base.devices.get_devices(): + for ctrl in device.controls: + # if a control got changed more than the given puffer zone + if self.controlStates[device][ctrl.axis] + 0.2 < ctrl.state or \ + self.controlStates[device][ctrl.axis] - 0.2 > ctrl.state: + # set the current state in the dict + self.controlStates[device][ctrl.axis] = ctrl.state + # check which axis got moved + if ctrl.axis == InputDevice.C_left_x: + self.setKey("Left Stick X") + elif ctrl.axis == InputDevice.C_left_y: + self.setKey("Left Stick Y") + elif ctrl.axis == InputDevice.C_left_trigger: + self.setKey("Left Trigger") + elif ctrl.axis == InputDevice.C_right_x: + self.setKey("Right Stick X") + elif ctrl.axis == InputDevice.C_right_y: + self.setKey("Right Stick Y") + elif ctrl.axis == InputDevice.C_right_trigger: + self.setKey("Right Trigger") + elif ctrl.axis == InputDevice.C_x: + self.setKey("X") + elif ctrl.axis == InputDevice.C_y: + self.setKey("Y") + elif ctrl.axis == InputDevice.C_trigger: + self.setKey("Trigger") + elif ctrl.axis == InputDevice.C_throttle: + self.setKey("Throttle") + elif ctrl.axis == InputDevice.C_rudder: + self.setKey("Rudder") + elif ctrl.axis == InputDevice.C_hat_x: + self.setKey("Hat X") + elif ctrl.axis == InputDevice.C_hat_y: + self.setKey("Hat Y") + elif ctrl.axis == InputDevice.C_wheel: + self.setKey("Wheel") + elif ctrl.axis == InputDevice.C_accelerator: + self.setKey("Acclerator") + elif ctrl.axis == InputDevice.C_brake: + self.setKey("Break") + return task.cont + + def setKey(self, args): + self.setKeyCalled = True + if self.dlgInput.buttonList[0].guiItem.getState() == 1: + # this occurs if the OK button was clicked. To prevent to + # always set the mouse1 event whenever the OK button was + # pressed, we instantly return from this function + return + self.dlgInput["text"] = "New event will be:\n\n" + args + self.newActionKey = args + + def setDeviceKey(self, args): + if not self.setKeyCalled: + self.setKey(args) + self.setKeyCalled = False + + def __makeListItem(self, itemName, action, event, index): + def dummy(): pass + if index % 2 == 0: + bg = self.listBGEven + else: + bg = self.listBGOdd + item = DirectFrame( + text=itemName, + geom=bg, + geom_scale=(base.a2dRight-0.05, 1, 0.1), + frameSize=VBase4(base.a2dLeft+0.05, base.a2dRight-0.05, -0.05, 0.05), + frameColor=VBase4(1,0,0,0), + text_align=TextNode.ALeft, + text_scale=0.05, + text_fg=VBase4(1,1,1,1), + text_pos=(base.a2dLeft + 0.3, -0.015), + text_shadow=VBase4(0, 0, 0, 0.35), + text_shadowOffset=Vec2(-0.05, -0.05), + pos=(0.05, 0, -(0.10 * index))) + item.setTransparency(True) + lbl = DirectLabel( + text=event, + text_fg=VBase4(1, 1, 1, 1), + text_scale=0.05, + text_pos=Vec2(0, -0.015), + frameColor=VBase4(0, 0, 0, 0), + ) + lbl.reparentTo(item) + lbl.setTransparency(True) + buttonScale = 0.15 + btn = DirectButton( + text="Change", + geom=self.buttonGeom, + scale=buttonScale, + text_scale=0.25, + text_align=TextNode.ALeft, + text_fg=VBase4(0.898, 0.839, 0.730, 1.0), + text_pos=Vec2(-0.9, -0.085), + relief=1, + pad=Vec2(0.01, 0.01), + frameColor=VBase4(0, 0, 0, 0), + frameSize=VBase4(-1.0, 1.0, -0.25, 0.25), + pos=(base.a2dRight-(0.898*buttonScale+0.3), 0, 0), + pressEffect=False, + command=self.changeMapping, + extraArgs=[action, lbl]) + btn.setTransparency(True) + btn.reparentTo(item) + return item + +app = App() +app.run() diff --git a/samples/gamepad/models/button_map.egg b/samples/gamepad/models/button_map.egg new file mode 100644 index 0000000000..75a305e0da --- /dev/null +++ b/samples/gamepad/models/button_map.egg @@ -0,0 +1,117 @@ + { + "egg-texture-cards -o button_map.egg -p 768,192 -g -1.0,1.0,-0.25,0.25 -wm clamp ready.png click.png hover.png disabled.png" +} + ready { + ready.png + wrap { clamp } +} + hover { + hover.png + wrap { clamp } +} + disabled { + disabled.png + wrap { clamp } +} + click { + click.png + wrap { clamp } +} + { + { 1 } + fps { 2 } + vpool { + 0 { + -1 0.25 0 + { 0 1 } + } + 1 { + -1 -0.25 0 + { 0 0 } + } + 2 { + 1 -0.25 0 + { 1 0 } + } + 3 { + 1 0.25 0 + { 1 1 } + } + 4 { + -1 0.25 0 + { 0 1 } + } + 5 { + -1 -0.25 0 + { 0 0 } + } + 6 { + 1 -0.25 0 + { 1 0 } + } + 7 { + 1 0.25 0 + { 1 1 } + } + 8 { + -1 0.25 0 + { 0 1 } + } + 9 { + -1 -0.25 0 + { 0 0 } + } + 10 { + 1 -0.25 0 + { 1 0 } + } + 11 { + 1 0.25 0 + { 1 1 } + } + 12 { + -1 0.25 0 + { 0 1 } + } + 13 { + -1 -0.25 0 + { 0 0 } + } + 14 { + 1 -0.25 0 + { 1 0 } + } + 15 { + 1 0.25 0 + { 1 1 } + } + } + ready { + { + { 1 1 1 1 } + { ready } + { 0 1 2 3 { vpool } } + } + } + click { + { + { 1 1 1 1 } + { click } + { 4 5 6 7 { vpool } } + } + } + hover { + { + { 1 1 1 1 } + { hover } + { 8 9 10 11 { vpool } } + } + } + disabled { + { + { 1 1 1 1 } + { disabled } + { 12 13 14 15 { vpool } } + } + } +} diff --git a/samples/gamepad/models/click.png b/samples/gamepad/models/click.png new file mode 100644 index 0000000000000000000000000000000000000000..fbd06a4df3bbc3d8e522a57cbed450ea9b2de610 GIT binary patch literal 30591 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 e?fGj10Dl3^n9EyoPuV>H0000e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00O5;L_t(o!^M|BNE>k!$G`9Q z(_E@Kjpko-F?U7~N}%BAC@7soK_Q2F;*o$R90;L@ zK&R7rKfoAU^u>wx%2Iy66yohq;J6L^?t~}5lq9k=qP?;Qvwz7LTcl#K_ys_m=<5t{ z^;gQuX_ToaYL$UxOv*PW0Ir#T;D}19lm~9qwU_e1^-2r?h_hRl!o9RdZO84q=ZoEU z2CKQEC`?fl77XCN2J2-n&1Umuv)Rn`@{eZ }e3R4Te@nnv&}gaEL+yPHd=)A3X) z6?Ysb+gAY2Ihm%Z`|leY8^++^AoUHvahz-}mmBimGnvebdcB_Q3jkw`*4EbahwGMQ z8H_QC9H3sWX9|VF@Wb_dK0maxvy+JwfQVpOmhqV1w(Y=K2n0~ARx=Y56T^@B^ZER+ zZQJR{0BqaVpNgr~Y6cO753sehl{O4ReJZY4EG9NLH&dYlRI62^+t}^x?a6Ml&=tV? z`ucdOR8qSI&~;rkO>;anfLg6)Jmb1fh61p)V%-;g@46Nz^J6&1Qi^_hwE!8xTSqan5J_aS2$~82k7-s?ki! z52wDC5aQ^+52qXe+U@p_L?ZEvh(?Gg+0FIraXkO*x^4>q{s9I*$&>iDcXj{(002ov JPDHLkV1fZKcS-;N literal 0 HcmV?d00001 diff --git a/samples/gamepad/models/dec_map.egg b/samples/gamepad/models/dec_map.egg new file mode 100644 index 0000000000..71190d251a --- /dev/null +++ b/samples/gamepad/models/dec_map.egg @@ -0,0 +1,117 @@ + { + "egg-texture-cards -o dec_map.egg -p 32,32 -g -0.04,0.04,-0.04,0.04 -wm clamp dec_ready.png dec_click.png dec_hover.png dec_disabled.png" +} + dec_ready { + dec_ready.png + wrap { clamp } +} + dec_hover { + dec_hover.png + wrap { clamp } +} + dec_disabled { + dec_disabled.png + wrap { clamp } +} + dec_click { + dec_click.png + wrap { clamp } +} + { + { 1 } + fps { 2 } + vpool { + 0 { + -0.04 0.04 0 + { 0 1 } + } + 1 { + -0.04 -0.04 0 + { 0 0 } + } + 2 { + 0.04 -0.04 0 + { 1 0 } + } + 3 { + 0.04 0.04 0 + { 1 1 } + } + 4 { + -0.04 0.04 0 + { 0 1 } + } + 5 { + -0.04 -0.04 0 + { 0 0 } + } + 6 { + 0.04 -0.04 0 + { 1 0 } + } + 7 { + 0.04 0.04 0 + { 1 1 } + } + 8 { + -0.04 0.04 0 + { 0 1 } + } + 9 { + -0.04 -0.04 0 + { 0 0 } + } + 10 { + 0.04 -0.04 0 + { 1 0 } + } + 11 { + 0.04 0.04 0 + { 1 1 } + } + 12 { + -0.04 0.04 0 + { 0 1 } + } + 13 { + -0.04 -0.04 0 + { 0 0 } + } + 14 { + 0.04 -0.04 0 + { 1 0 } + } + 15 { + 0.04 0.04 0 + { 1 1 } + } + } + dec_ready { + { + { 1 1 1 1 } + { dec_ready } + { 0 1 2 3 { vpool } } + } + } + dec_click { + { + { 1 1 1 1 } + { dec_click } + { 4 5 6 7 { vpool } } + } + } + dec_hover { + { + { 1 1 1 1 } + { dec_hover } + { 8 9 10 11 { vpool } } + } + } + dec_disabled { + { + { 1 1 1 1 } + { dec_disabled } + { 12 13 14 15 { vpool } } + } + } +} diff --git a/samples/gamepad/models/dec_ready.png b/samples/gamepad/models/dec_ready.png new file mode 100644 index 0000000000000000000000000000000000000000..a097c1e5cb01030cdfa5cfc500539f58dccbcf39 GIT binary patch literal 781 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 literal 0 HcmV?d00001 diff --git a/samples/gamepad/models/disabled.png b/samples/gamepad/models/disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9b9dfe50146434aa74d780fc8573eda730b33fed GIT binary patch literal 23853 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

?7%T#3@p?|Qn*cw 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 z z>w6wIP2MFk>^nRUXJ;W(&6SH``adE?UzRrMKW+NsI9fd$#m$9+s9rydUhrgtF z#Dv~o)NpH$?fm6LJNaQ)H-QS1R7;Wpb!$L51m!gOmAc&!L0zlvzBd-&;s<>E`MgyV zPw-S6D4avEuOJr4M76rOe=_B11yx@fy2?s%dY&3pWODKHQ7q51I_%^#h<^{H1)sB@EWyM(6p^Z>nBNt|5Ya zru|%+6iIcXJoKDTNrK-P;b(Y5eJ&6~ACoymjiQX(pJO@OjZc9VqHfV5QSByGsQrV% zvtq8SQFMcN`NfJSgxx2QhQg$3dVmJqk2ATLA|$83tC0({xkdy`S)ySZgD?u8%KI)u z+s9|)tM%R>ikAaT3g>IHX!sSMqq@B#!-o|ZfY9iA6Pd+=`yV)MqdIMZJvv`oRyhi4T(d)_p!LF5z@F*{ zIcfBBR|#g`mqx5tmb^kP+&ai_Z)Mywokl5)7-jgtryyeYgq#S=BhfgtL;R9^>1#SZ zXUTbFPJ-E9y>Q=b)4DsZwhfp54)SNbh-4%qluQwpNPtX>@X2%s$*`j*MqvFOn>+Tl z|NSB9?rSYZ-w|T0Y5&TPA#;fnqyenBZY#!f!XsX|#Hnd_7|SVXqRF2H82@zgt(z>Z z79uTMDy?6SMl3W9e;c3Bmpnea?t426wc1TLL-_unOf&Dr;`}nvqXLdzIrxVkRQxgpko`906ut0dd z&S*$052OB#@14=GI8({9tr8h5dZ}X=y>E2Uzw(G+Xuc3ti_CUU?ID5nD5+g;mc0%$ zh19fa{C+<@|D-ob;9IuoRCkn?VRqi!yhd!2=MbOYea1@*OX?TPk=CrGh8Epa(|*7G z<|K8tkqnb(``3JhS&(^7%jR6qa6uL02hVZ=UblBHR{=Awt?vvqXZ!EPQu5EVl`t^3 z%miVpKiu6hrhnt@PxlUQQU80hr}n-hBv|{fV1)JmE2|BxYqW;xO7T&FfE>+|tCSG( zQrEKR)t$`HL&smXC%2d8qJO-^ct4ds8$2yuWg74;JCu7Zo!4yrV%FOAO&weMhSTv5 zG9EIOx4Sx%Uxx1c)LoRSn(5Qb?O#*ZPy*pJuil$V2`wY9uMWE;-#5&CrXZf@^kw+K zpajw1a!Ve+_Or6RUs^1LTemc%XowD(Acfgoh7icpYncW%-==%`LOZ*Ucm3rK2Hlrh zhPt96joZ#c9^gGHjo7s3t$UK`b;$$j`WKUVekGzRQ{0+R<9%FWOwrcBkKTqIU8Rfd zoT13OK+&yMKx+2q;PL4N+9Kh}S@V2KgZ z?m0;av~P@!0$$>iRlD@yk|3;qXUbTt9%~o{* ztSfU$uw|(luQE{WCy)ta>L)xD4u#ZI`M&y!n6EB#>K>puMC*y>$ Q^jZMe zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00Of~L_t(o!^M}+PZLoP$G@|? zAw(#0BC-TE#slC*5)(OMxN;yK-ka~|y_wm(A^b2|o){AZX`DzL0H_^48FPKtw(BdJ zrmO=10YG2h<7a}<_5_z`wp|UT)1j9n%M)Xw*gg#aL=!#0h)i^=yY-S)i}}a|-fGN> z4gi)_nUMrR8b1>!njB)@(`|cp7uYshC*C0f!vUgEnP_sz35B8yf;28UF$aJVnR!oV zp83%F)0Zt^+hE={fN20DGN9;0;(&0La74WU=A`C#?3t4qQE$K*QM>SKs!arTO#jnw z$8@wD6V6|i-}bwP)M)wa?2G&T{Wm>T#o^(BF*Wsk_g`y-Mo#ADR`M(l0Koiw?2B7~#l=KZH`f%v`ubWy*E3C5$no)!nMk}Yv<$%Q zErddAP3KM10P%P%pUvuD8?DP^j?Gw1&9xlBiEF&!$rL4#a^uq#fU2swLLpziXg-_O z%h6~w>l*+wv!Yxa-$>+*>wkvec0)M4oXzL+r+7F2G}(qRcUQw^6)y* z(>p}>dVu(6;8U5|dVl4u*_Ah^A^@1?$9J8bcMplsMMT{INqz}C?RoW;rY!{l;5%R@ VR9zbe zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00PQML_t(o!^M}+OB+!T$G=Hd zB89YyRLTaV3W61aZMNP#2zvAu@DJ#%|3i;eP)LXhDUlL_2tpv9daWm+2a}MpwIMNS z;?iAowI*#E&6@0cJ#^ESv^BeHR_FG9&3tCwyxkcae#;DiIRIk-dSRWU0lWe5765G8 zjV(yX}3W zQCCYPzVg$lXPT{D8Nismm2fQE?@A{3B&#nzncS0Dw%?@lEuZvL$luMIolCndwaXg z^ZYl%pSyJWYdjt=UmE}b78VvtMgf+Wmvu!>7eFi)JIiLXx?jlt{(g09YwN6Q0F+Wg zQPAtXZU6w-+}!+<%jLdz+Ly^>sv8>{r(Fl2lwxUVsiS9pzh5wtD|REBqtWPTu~@AA zZ#|#S*CLU~iDdwU5PH@91_FUYN+~P@0D$%N^^;<;c-}r=C=_bpaQMWiKEnWn5E=*s z{))oN%8Eb;p_T&xKsX$hMNzzHjRiqC4~0Uq8C|9T8jS|^`~AP7u)4Y`sH#eD3;+N^ zp^$uZbX1olslK+hc5GG;WA>n;C?psR9s;mkUS8502LOOzFnEk>3e#S_8mWpDMImM? zvd(>rhN#=Hsx)i0U{s~YA07)uWIc}1*8i3;_SxG9le(iM!fTsW+5aJ}$ z(@!1_42;~lxM(&i6}jHc#$;&d(Y=|Oxe2pQn!Y{Iv#vA6G|9nUhpalK=n!07*qoM6N<$f;{GVA^-pY literal 0 HcmV?d00001 diff --git a/samples/gamepad/models/inc_hover.png b/samples/gamepad/models/inc_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..089df4352e97272aaeafc924318056af27553007 GIT binary patch literal 835 zcmV-J1HAl+P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00OH?L_t(o!^M}sPuoxs$G`U+ zwG0GhVlZN00%c-kL;`g}bYtQlsM?*SV|OGZD*=_r2m?wakfab$QcB~5INW6Wo!|H4d-tC22u)K}bxH^^LquZ$`Vf#Yb4E(}(Xy;P z03ZMu8X9^fgqTAQO-h+66bdm?Rdq^Hl(zst^m-6@sS=Gvx-aRt%vl@QwV1Us0JyIE zE+mAQxe+H?h%$dEOZg@Pd^qo(_<#aThKc4?qJ^lp6k1sbF+;<{!=C{35q%y9&Kt~g z-+~N1Q7Q^Vo-x130H}+bgd-XWGaFXWYtL+0L?hwmZJ)RudaeNbcJS%9Z+lvviMxXr zZtwtiHA1c2)9Lj1=;&xiyW;Th@O*lDI`cmt(Q1-dEM|84t$yBZ39z%Xb9Q`ue9^A> z(b3V5?d|QeM*{#rJRbkvF2L&Qs;|iT0!Sv4r@36t_YTQsv-alZ=4saem>DZ8E54(U zNF;pcjqvNZzP?^NIXU^+%Fi@Sdu?s4+I0YC_O-6MuIJjx7155fuItrev3U8=cs`%M zOe7MOzyPF_tn2!NQ7{a{WM%{g007I&%avlWc=h-5LZNUOkH;(R&et}8l#&g@xEF=3 zt*xAtk^={59!%v*rSj|MzEmn*X_{B%^aSAg`kFU3Hq1W`s+{Y(+%o_G&@`=FtJUh& zYPG(!v{dSJo=~SRI*ucg$)pK@8jS|`8~^|o7Z*!-q=oKRul}nd$8lt574koGz;S`e zaPTGBWZ2WX1*m&xeby$LSA&)(npeFB1prVN%zWTo?^;9?gI?V}+vUz^KmleWM5!pz z#2~P1HGgmiPu`k6d2^}&fNk4f`}_OzL^MD|k;iUNAMN>j%d%1c@EbkpOpR*L>&^fG N002ovPDHLkV1kfOcRv6C literal 0 HcmV?d00001 diff --git a/samples/gamepad/models/inc_map.egg b/samples/gamepad/models/inc_map.egg new file mode 100644 index 0000000000..9bd07862da --- /dev/null +++ b/samples/gamepad/models/inc_map.egg @@ -0,0 +1,117 @@ + { + "egg-texture-cards -o inc_map.egg -p 32,32 -g -0.04,0.04,-0.04,0.04 -wm clamp inc_ready.png inc_click.png inc_hover.png inc_disabled.png" +} + inc_ready { + inc_ready.png + wrap { clamp } +} + inc_hover { + inc_hover.png + wrap { clamp } +} + inc_disabled { + inc_disabled.png + wrap { clamp } +} + inc_click { + inc_click.png + wrap { clamp } +} + { + { 1 } + fps { 2 } + vpool { + 0 { + -0.04 0.04 0 + { 0 1 } + } + 1 { + -0.04 -0.04 0 + { 0 0 } + } + 2 { + 0.04 -0.04 0 + { 1 0 } + } + 3 { + 0.04 0.04 0 + { 1 1 } + } + 4 { + -0.04 0.04 0 + { 0 1 } + } + 5 { + -0.04 -0.04 0 + { 0 0 } + } + 6 { + 0.04 -0.04 0 + { 1 0 } + } + 7 { + 0.04 0.04 0 + { 1 1 } + } + 8 { + -0.04 0.04 0 + { 0 1 } + } + 9 { + -0.04 -0.04 0 + { 0 0 } + } + 10 { + 0.04 -0.04 0 + { 1 0 } + } + 11 { + 0.04 0.04 0 + { 1 1 } + } + 12 { + -0.04 0.04 0 + { 0 1 } + } + 13 { + -0.04 -0.04 0 + { 0 0 } + } + 14 { + 0.04 -0.04 0 + { 1 0 } + } + 15 { + 0.04 0.04 0 + { 1 1 } + } + } + inc_ready { + { + { 1 1 1 1 } + { inc_ready } + { 0 1 2 3 { vpool } } + } + } + inc_click { + { + { 1 1 1 1 } + { inc_click } + { 4 5 6 7 { vpool } } + } + } + inc_hover { + { + { 1 1 1 1 } + { inc_hover } + { 8 9 10 11 { vpool } } + } + } + inc_disabled { + { + { 1 1 1 1 } + { inc_disabled } + { 12 13 14 15 { vpool } } + } + } +} diff --git a/samples/gamepad/models/inc_ready.png b/samples/gamepad/models/inc_ready.png new file mode 100644 index 0000000000000000000000000000000000000000..9d4c153e44d153e92a9de9c853bc5c2eb2f01b6d GIT binary patch literal 794 zcmV+#1LgdQP)=0>l6S02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00M$ZL_t(o!^M}uOB+EL#eW-P z)kDOS2XoR>u@@oKv*4|j_SSzvn*T!~fekUxmV}}rf)I#@QthcU*J6-BNHt>ExD=sk z)tYKeY-W0xq)TdRc4M}FFtE(be(!y6W_I6bSTPAq0r!Dk+>0#m7I+V!)jOX9&-lNQ z1YR{N|Dakh4;v>SW#`+)PnA2ExA2(s)@28RgYaS$)(_xm7T%n8uGs!AnDD{$kir0X zc>qjlz&o|(8)I-#g~y-VReo(02JgYcEO6oa_XJ_}?t<}!EEeWiy zuAby_xiiO~yKMGbDwR69H35K`nVFJP0^xAjmU6ZTB$LVGLZM*$gyi%2^2*A}amNTq zDIKX`w|d(I0G5}RzwYepd~Y>xYip~#w6t{8aRO3GLZML0%5+^fo$M8llgW#Vi${iG zod0WlcX#)Eet!PYH3C8idDHqvB9T2QC9V+wNF)-6hGAU%*}x_(so|z?(WtM!x;Db{e1wYX+aRQE2>l~qCJQF*JJpjrmVBuG2v5K7Jae4el@%E%V}drW`NH?KQM6H<7wl1{<=

QL70(Y)*K0-AbW|YuPgfl4h|kwojQL70(Y)*K0-AbW|YuPgfl4h|kQ)~UZ@4g-ZGOI#yLobz*YQ}ap~oQqNuOHxx5 z$}>wc6x=<11Hv2m#DR*GJY5_^IIbrLgom$BPf7rSq=X#@4;(qL;2^`}OVb^;$uJnI WGV8yZX { + "egg-texture-cards -o list_item_even.egg -g -1,1,-0.5,0.5 -p 1,30 li_ready_even.png" +} + li_ready_even { + li_ready_even.png +} + { + vpool { + 0 { + -1 0.5 0 + { 0 1 } + } + 1 { + -1 -0.5 0 + { 0 0 } + } + 2 { + 1 -0.5 0 + { 1 0 } + } + 3 { + 1 0.5 0 + { 1 1 } + } + } + li_ready_even { + { + { 1 1 1 1 } + { li_ready_even } + { 0 1 2 3 { vpool } } + } + } +} diff --git a/samples/gamepad/models/list_item_odd.egg b/samples/gamepad/models/list_item_odd.egg new file mode 100644 index 0000000000..cde6c8642f --- /dev/null +++ b/samples/gamepad/models/list_item_odd.egg @@ -0,0 +1,33 @@ + { + "egg-texture-cards -o list_item_odd.egg -g -1,1,-0.5,0.5 -p 1,30 li_ready_odd.png" +} + li_ready_odd { + li_ready_odd.png +} + { + vpool { + 0 { + -1 0.5 0 + { 0 1 } + } + 1 { + -1 -0.5 0 + { 0 0 } + } + 2 { + 1 -0.5 0 + { 1 0 } + } + 3 { + 1 0.5 0 + { 1 1 } + } + } + li_ready_odd { + { + { 1 1 1 1 } + { li_ready_odd } + { 0 1 2 3 { vpool } } + } + } +} diff --git a/samples/gamepad/models/ready.png b/samples/gamepad/models/ready.png new file mode 100644 index 0000000000000000000000000000000000000000..e9cfed43da5a5c0d5429a376507d03d6daf739aa GIT binary patch literal 25376 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 Gu>S*DK+{M7 literal 0 HcmV?d00001 diff --git a/samples/gamepad/models/thumb_click.png b/samples/gamepad/models/thumb_click.png new file mode 100644 index 0000000000000000000000000000000000000000..2fc059da828e9982bf2d5eff771f13daa6acd4c6 GIT binary patch literal 916 zcmeAS@N?(olHy`uVBq!ia0vp^3JeU4J2=>YEES8Vc|eLS$=lt9;Xep2*t>i(P=vF< zBeIx*fm;}a85w5HkpK#^mw5WRvOnP95Ytz0c-e3QC?r|p8d2h$pPQSSSHj?2l$uzQ znxasiS(2gP?&%v4-pD7;z`*p!)5S5Q;?~=1hThSE630G1xBV`(#PpHM*EG$g%~4#U zRu&dZc35>Z=iQaL^NUgDFT-7#H{vUr&px=c@WF!%3m06-vKDPob6Oz4(RAd=9@(Ji zR<7Q&SGoR|d%xRRS@(R-_dC*;&!5_~bEd$h$jvD}n;4&lynDM>;&$}bsHbyPW~xl} z`g~eZM69G&G&y^5)ZLiPI%5IBHywV|uAERZ-S+*h z+8Dq>o*E6=& zwSTuV+uND?T;krk=MMV3rBmZA~@v-<4;5j)Pk>)*IFaBbc?)k#-! z>i!v6{P-|?X4{#Zh)pKz6TW|o>scGV_10`&&tHrx<)>$UE9fc%1(Bz#pUXO@geCx2 C@=@&o literal 0 HcmV?d00001 diff --git a/samples/gamepad/models/thumb_disabled.png b/samples/gamepad/models/thumb_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8ad2805f10bb507d850686bed6c2afeed866a67f GIT binary patch literal 912 zcmeAS@N?(olHy`uVBq!ia0vp^3JeU4J2=>YEES8Vc|eLS$=lt9;Xep2*t>i(P=vF< zBeIx*fm;}a85w5HkpK#^mw5WRvOnP95YxAw^5RZAP)M@GHKN2hKQ}iuuY|$5C^fMp zHASI3vm`^o-P1Q9ypd0wfr06Vr;B4q#jUq@_h(Bb${hdLU-i)Gpb)1=Ws6c{0}J0u zv*@-4$-6B78}fe2TYalP5wweq>EKEiTUC^ zRo*@OCx5^5^7&Vr@3nsB$-jbCJySg`J-fTs^{MQg`o(Wj(!mGYmaKZW?VHNmh=XTV zPkLe@{nAM>zsFNG_qJEd+#5Ob%B6af&zEM`P5610Yg%mI=85YgaObbRVtA_3~AL_kUFVytXE$5WKxBcOo-4D0z73TlVoWA#3S5nv?g+ys4`Z}HAz+qM$ z9UZkre0%17ls1s)IX3f5mQj|2+U8j@JZ_IyH|$fXyyv<-BE~$B85nPmE5+|V*f4*> zmzYbFPac_DY{rOWW37_`UF^&3hB6YEES8Vc|eLS$=lt9;Xep2*t>i(P=vF< zBeIx*fm;}a85w5HkpK#^mw5WRvOnP95Ysnd2|p+X6p}1)jVN)>&&^HED`9XhN=+EaktaqI2fjo#6LBF8`8->GlH=VoNN=fQ(8CRX=$ zo~8?$N6wzCcd#leczI)~vwPvo7gKyWM7UVl+xcXfSWiB?v`2CB53%SIwzBgUIk8UO zw_J2zy4R-yStcd&Tj(U8Nl|OB<#8lN z_eU5W`&VIOx532Me6mWVx@TJcw54mWATgP zob_-2mL6pt8d*ce)`Vm z->>rAE(imIht6Qd+0V-+PoCVnfA77QC4KU&2L1t>4ZqX==^qFv`>`fD+kfL5nZwUZ zT$PmEE$fAE_~(@7tnG^Y*xZuLL1(u!oR{1%B}Bf` z{IS@B>mj!?LilfFh(wwM{an^LB{Ts5LDxGM literal 0 HcmV?d00001 diff --git a/samples/gamepad/models/thumb_map.egg b/samples/gamepad/models/thumb_map.egg new file mode 100644 index 0000000000..1b49062ef5 --- /dev/null +++ b/samples/gamepad/models/thumb_map.egg @@ -0,0 +1,117 @@ + { + "egg-texture-cards -o thumb_map.egg -p 32,440 -g -0.04,0.04,-0.55,0.55 -wm clamp thumb_ready.png thumb_click.png thumb_hover.png thumb_disabled.png" +} + thumb_ready { + thumb_ready.png + wrap { clamp } +} + thumb_hover { + thumb_hover.png + wrap { clamp } +} + thumb_disabled { + thumb_disabled.png + wrap { clamp } +} + thumb_click { + thumb_click.png + wrap { clamp } +} + { + { 1 } + fps { 2 } + vpool { + 0 { + -0.04 0.55 0 + { 0 1 } + } + 1 { + -0.04 -0.55 0 + { 0 0 } + } + 2 { + 0.04 -0.55 0 + { 1 0 } + } + 3 { + 0.04 0.55 0 + { 1 1 } + } + 4 { + -0.04 0.55 0 + { 0 1 } + } + 5 { + -0.04 -0.55 0 + { 0 0 } + } + 6 { + 0.04 -0.55 0 + { 1 0 } + } + 7 { + 0.04 0.55 0 + { 1 1 } + } + 8 { + -0.04 0.55 0 + { 0 1 } + } + 9 { + -0.04 -0.55 0 + { 0 0 } + } + 10 { + 0.04 -0.55 0 + { 1 0 } + } + 11 { + 0.04 0.55 0 + { 1 1 } + } + 12 { + -0.04 0.55 0 + { 0 1 } + } + 13 { + -0.04 -0.55 0 + { 0 0 } + } + 14 { + 0.04 -0.55 0 + { 1 0 } + } + 15 { + 0.04 0.55 0 + { 1 1 } + } + } + thumb_ready { + { + { 1 1 1 1 } + { thumb_ready } + { 0 1 2 3 { vpool } } + } + } + thumb_click { + { + { 1 1 1 1 } + { thumb_click } + { 4 5 6 7 { vpool } } + } + } + thumb_hover { + { + { 1 1 1 1 } + { thumb_hover } + { 8 9 10 11 { vpool } } + } + } + thumb_disabled { + { + { 1 1 1 1 } + { thumb_disabled } + { 12 13 14 15 { vpool } } + } + } +} diff --git a/samples/gamepad/models/thumb_ready.png b/samples/gamepad/models/thumb_ready.png new file mode 100644 index 0000000000000000000000000000000000000000..36a41ae5995a216062367d7eba0ab5752a9cfb4f GIT binary patch literal 815 zcmeAS@N?(olHy`uVBq!ia0vp^3JeU4J2=>YEES8Vc|eLS$=lt9;Xep2*t>i(P=vF< zBeIx*fm;}a85w5HkpK#^mw5WRvOnP95Yv~s(Rk)2P)M@GHKN2hKQ}iuuY|$5C^fMp zHASI3vm`^o-P1Q9ypd0wfq`kdr;B4q#jUq@_h$DaZ5=<^RfI~v7iRZN$vsDId4 zP=50HSDWv(dN(H}2bCr;uVB(n3D13C`aw>?+-e7J&c++J*vpO?+jA_w*|>vWJ$-`8 z%l;kmM#n0za4$|}pOsp%lP|ye!yDx-Y#-j*?B&d#wjhvGl3{(-0XM!1@pqLq@>TmE zoP3@W{_m{Sl>9@7%?x_fc+1yw>~6n#|JU8a6Ic&;nOGKT%TKd?oyF@Ewj$$K%B=5y zHqAQMvE!MLfP=?uMI-x}OhQy2}-F!MK97d$q%iEVb@ z{_wY^%-logRrWqOE3{_^cmL@Rf4GkvKcL=VRUqKDnYmEj@0^0?CHX@8l%CHkp1bYI zO~^hdogjZhviu4A1MLl5Q)YagKW|+`ZbClG1O5-wFLpJ(cs&!Cju|{%{an^LB{Ts5 Dcsm*= literal 0 HcmV?d00001