def addTab(self, itemGroup, item): newTab = self.tabBar.addTab(itemGroup, command=self.setPage, extraArgs=[itemGroup]) repId = WeaponGlobals.getRepId(item) if repId: iconName = ReputationGlobals.RepIcons.get(repId) if repId == InventoryType.FishingRep: icon = StoreGUI.FishingIcons.find('**/%s' % iconName) else: icon = StoreGUI.WeaponIcons.find('**/%s' % iconName) elif InventoryType.begin_Consumables <= item < InventoryType.end_Consumables or ItemGlobals.getClass( item) == InventoryType.ItemTypeConsumable: iconName = EconomyGlobals.getItemIcons(item) icon = StoreGUI.SkillIcons.find('**/%s' % iconName) elif InventoryType.begin_WeaponCannonAmmo <= item < InventoryType.end_WeaponCannonAmmo: iconName = EconomyGlobals.getItemIcons(InventoryType.CannonL1) icon = StoreGUI.WeaponIcons.find('**/%s' % iconName) elif InventoryType.begin_WeaponGrenadeAmmo <= item < InventoryType.end_WeaponGrenadeAmmo: itemId = InventoryType.GrenadeWeaponL1 iconName = EconomyGlobals.getItemIcons(itemId) icon = StoreGUI.WeaponIcons.find('**/%s' % iconName) elif InventoryType.begin_FishingLures <= item < InventoryType.end_FishingLures: icon = StoreGUI.FishingIcons.find('**/pir_t_gui_gen_fish_lure') else: icon = None newTab.nameTag = DirectLabel(parent=newTab, relief=None, state=DGG.DISABLED, image=icon, image_scale=0.4, image_pos=(0, 0, 0.04), pos=(0.06, 0, -0.035)) self.pageNames.append(itemGroup) return
def addTab(self, itemGroup, item): newTab = self.tabBar.addTab(itemGroup, command = self.setPage, extraArgs = [ itemGroup]) repId = WeaponGlobals.getRepId(item) if repId: iconName = ReputationGlobals.RepIcons.get(repId) if repId == InventoryType.FishingRep: icon = StoreGUI.FishingIcons.find('**/%s' % iconName) else: icon = StoreGUI.WeaponIcons.find('**/%s' % iconName) elif InventoryType.begin_Consumables <= item: pass elif repId or ItemGlobals.getClass(item) == InventoryType.ItemTypeConsumable: iconName = EconomyGlobals.getItemIcons(item) icon = StoreGUI.SkillIcons.find('**/%s' % iconName) elif InventoryType.begin_WeaponCannonAmmo <= item: pass elif ItemGlobals.getClass(item) == InventoryType.ItemTypeConsumable: iconName = EconomyGlobals.getItemIcons(InventoryType.CannonL1) icon = StoreGUI.WeaponIcons.find('**/%s' % iconName) elif InventoryType.begin_WeaponGrenadeAmmo <= item: pass elif ItemGlobals.getClass(item) == InventoryType.ItemTypeConsumable: itemId = InventoryType.GrenadeWeaponL1 iconName = EconomyGlobals.getItemIcons(itemId) icon = StoreGUI.WeaponIcons.find('**/%s' % iconName) elif InventoryType.begin_FishingLures <= item: pass elif ItemGlobals.getClass(item) == InventoryType.ItemTypeConsumable: icon = StoreGUI.FishingIcons.find('**/pir_t_gui_gen_fish_lure') else: icon = None newTab.nameTag = DirectLabel(parent = newTab, relief = None, state = DGG.DISABLED, image = icon, image_scale = 0.40000000000000002, image_pos = (0, 0, 0.040000000000000001), pos = (0.059999999999999998, 0, -0.035000000000000003)) self.pageNames.append(itemGroup)
def createGui(self): itemId = self.data[0] self.itemCount += 1 self.itemQuantity = self.quantity self.itemCost = self.price self.picture = DirectFrame(parent=self, relief=None, state=DGG.DISABLED, pos=(0.035, 0, 0.025)) self.quantityLabel = DirectLabel(parent=self, relief=None, state=DGG.DISABLED, text=str(self.quantity), text_fg=PiratesGuiGlobals.TextFG2, text_scale=PiratesGuiGlobals.TextScaleSmall * PLocalizer.getHeadingScale(2), text_align=TextNode.ARight, text_wordwrap=11, pos=(0.1225, 0, 0.015)) if len(self.name) >= 39: textScale = PiratesGuiGlobals.TextScaleMicro * PLocalizer.getHeadingScale(2) else: if len(self.name) >= 35: textScale = PiratesGuiGlobals.TextScaleTiny * PLocalizer.getHeadingScale(2) else: textScale = PiratesGuiGlobals.TextScaleSmall * PLocalizer.getHeadingScale(2) self.nameTag = DirectLabel(parent=self, relief=None, state=DGG.DISABLED, text=self.name, text_fg=PiratesGuiGlobals.TextFG2, text_scale=textScale, text_align=TextNode.ALeft, pos=(0.13, 0, 0.015)) self.costText = DirectLabel(parent=self, relief=None, state=DGG.DISABLED, image=InventoryListItem.coinImage, image_scale=0.12, image_pos=Vec3(-0.005, 0, 0.0125), text=str(self.price), text_fg=PiratesGuiGlobals.TextFG2, text_scale=PiratesGuiGlobals.TextScaleSmall, text_align=TextNode.ARight, text_wordwrap=11, text_pos=(-0.03, 0, 0), pos=(self.width - 0.035, 0, 0.015), text_font=PiratesGlobals.getInterfaceFont()) itemClass = EconomyGlobals.getItemCategory(itemId) itemType = EconomyGlobals.getItemType(itemId) if itemType == ItemType.FISHING_ROD or itemType == ItemType.FISHING_LURE: asset = EconomyGlobals.getItemIcons(itemId) if asset: self.picture['geom'] = PurchaseListItem.fishingIcons.find('**/%s*' % asset) self.picture['geom_scale'] = 0.04 self.picture['geom_pos'] = (0, 0, 0) elif itemClass == ItemType.WEAPON or itemClass == ItemType.POUCH: asset = EconomyGlobals.getItemIcons(itemId) if asset: self.picture['geom'] = InventoryListItem.weaponIcons.find('**/%s*' % asset) self.picture['geom_scale'] = 0.04 self.picture['geom_pos'] = (0, 0, 0) elif itemClass == ItemType.CONSUMABLE: asset = EconomyGlobals.getItemIcons(itemId) if asset: self.picture['geom'] = InventoryListItem.skillIcons.find('**/%s*' % asset) self.picture['geom_scale'] = 0.04 self.picture['geom_pos'] = (0, 0, 0) if InventoryType.begin_WeaponCannonAmmo <= itemId and itemId <= InventoryType.end_WeaponCannonAmmo or InventoryType.begin_WeaponPistolAmmo <= itemId and itemId <= InventoryType.end_WeaponGrenadeAmmo or InventoryType.begin_WeaponDaggerAmmo <= itemId and itemId <= InventoryType.end_WeaponDaggerAmmo: skillId = WeaponGlobals.getSkillIdForAmmoSkillId(itemId) if skillId: asset = WeaponGlobals.getSkillIcon(skillId) if asset: self.picture['geom'] = InventoryListItem.skillIcons.find('**/%s' % asset) self.picture['geom_scale'] = 0.06 self.picture['geom_pos'] = (0, 0, 0) if InventoryType.SmallBottle <= itemId and itemId <= InventoryType.LargeBottle: self.picture['geom'] = self.topGui.find('**/main_gui_ship_bottle') self.picture['geom_scale'] = 0.1 self.picture['geom_pos'] = (0, 0, 0) self.flattenStrong() return
def createGui(self): itemId = self.data[0] self.itemCount += 1 self.itemQuantity = self.quantity self.itemCost = self.price self.picture = DirectFrame(parent = self, relief = None, state = DGG.DISABLED, pos = (0.035000000000000003, 0, 0.025000000000000001)) self.quantityLabel = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = str(self.quantity), text_fg = PiratesGuiGlobals.TextFG2, text_scale = PiratesGuiGlobals.TextScaleSmall * PLocalizer.getHeadingScale(2), text_align = TextNode.ARight, text_wordwrap = 11, pos = (0.1225, 0, 0.014999999999999999)) if len(self.name) >= 39: textScale = PiratesGuiGlobals.TextScaleMicro * PLocalizer.getHeadingScale(2) elif len(self.name) >= 35: textScale = PiratesGuiGlobals.TextScaleTiny * PLocalizer.getHeadingScale(2) else: textScale = PiratesGuiGlobals.TextScaleSmall * PLocalizer.getHeadingScale(2) self.nameTag = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = self.name, text_fg = PiratesGuiGlobals.TextFG2, text_scale = textScale, text_align = TextNode.ALeft, pos = (0.13, 0, 0.014999999999999999)) self.costText = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, image = InventoryListItem.coinImage, image_scale = 0.12, image_pos = Vec3(-0.0050000000000000001, 0, 0.012500000000000001), text = str(self.price), text_fg = PiratesGuiGlobals.TextFG2, text_scale = PiratesGuiGlobals.TextScaleSmall, text_align = TextNode.ARight, text_wordwrap = 11, text_pos = (-0.029999999999999999, 0, 0), pos = (self.width - 0.035000000000000003, 0, 0.014999999999999999), text_font = PiratesGlobals.getInterfaceFont()) itemClass = EconomyGlobals.getItemCategory(itemId) itemType = EconomyGlobals.getItemType(itemId) if itemType == ItemType.FISHING_ROD or itemType == ItemType.FISHING_LURE: asset = EconomyGlobals.getItemIcons(itemId) if asset: self.picture['geom'] = PurchaseListItem.fishingIcons.find('**/%s*' % asset) self.picture['geom_scale'] = 0.040000000000000001 self.picture['geom_pos'] = (0, 0, 0) elif itemClass == ItemType.WEAPON or itemClass == ItemType.POUCH: asset = EconomyGlobals.getItemIcons(itemId) if asset: self.picture['geom'] = InventoryListItem.weaponIcons.find('**/%s*' % asset) self.picture['geom_scale'] = 0.040000000000000001 self.picture['geom_pos'] = (0, 0, 0) elif itemClass == ItemType.CONSUMABLE: asset = EconomyGlobals.getItemIcons(itemId) if asset: self.picture['geom'] = InventoryListItem.skillIcons.find('**/%s*' % asset) self.picture['geom_scale'] = 0.040000000000000001 self.picture['geom_pos'] = (0, 0, 0) if not InventoryType.begin_WeaponCannonAmmo <= itemId or itemId <= InventoryType.end_WeaponCannonAmmo: if (InventoryType.begin_WeaponPistolAmmo <= itemId or itemId <= InventoryType.end_WeaponGrenadeAmmo or InventoryType.begin_WeaponDaggerAmmo <= itemId) and itemId <= InventoryType.end_WeaponDaggerAmmo: skillId = WeaponGlobals.getSkillIdForAmmoSkillId(itemId) if skillId: asset = WeaponGlobals.getSkillIcon(skillId) if asset: self.picture['geom'] = InventoryListItem.skillIcons.find('**/%s' % asset) self.picture['geom_scale'] = 0.059999999999999998 self.picture['geom_pos'] = (0, 0, 0) elif InventoryType.SmallBottle <= itemId and itemId <= InventoryType.LargeBottle: self.picture['geom'] = self.topGui.find('**/main_gui_ship_bottle') self.picture['geom_scale'] = 0.10000000000000001 self.picture['geom_pos'] = (0, 0, 0) self.flattenStrong()
def getGeomParams(itemId): geomParams = { } itemType = EconomyGlobals.getItemType(itemId) if itemType <= ItemType.WAND or itemType == ItemType.POTION: if itemType == ItemType.POTION: geomParams['geom'] = InventoryItemGui.skillIcons.find('**/%s' % ItemGlobals.getIcon(itemId)) else: itemType = ItemGlobals.getType(itemId) if ItemGlobals.getIcon(itemId): geomParams['geom'] = InventoryItemGui.weaponIcons.find('**/%s' % ItemGlobals.getIcon(itemId)) geomParams['geom_scale'] = 0.11 geomParams['geom_pos'] = (0.080000000000000002, 0, 0.068000000000000005) else: itemClass = EconomyGlobals.getItemCategory(itemId) itemType = EconomyGlobals.getItemType(itemId) if itemType == ItemType.FISHING_ROD or itemType == ItemType.FISHING_LURE: asset = EconomyGlobals.getItemIcons(itemId) if asset: geomParams['geom'] = InventoryItemGui.fishingIcons.find('**/%s*' % asset) geomParams['geom_scale'] = 0.11 geomParams['geom_pos'] = (0.080000000000000002, 0, 0.068000000000000005) elif itemClass == ItemType.WEAPON and itemClass == ItemType.POUCH or itemClass == ItemType.AMMO: asset = EconomyGlobals.getItemIcons(itemId) if asset: geomParams['geom'] = InventoryItemGui.weaponIcons.find('**/%s*' % asset) geomParams['geom_scale'] = 0.11 geomParams['geom_pos'] = (0.080000000000000002, 0, 0.068000000000000005) elif itemClass == ItemType.CONSUMABLE: asset = EconomyGlobals.getItemIcons(itemId) if asset: geomParams['geom'] = InventoryItemGui.skillIcons.find('**/%s*' % asset) geomParams['geom_scale'] = 0.11 geomParams['geom_pos'] = (0.080000000000000002, 0, 0.068000000000000005) if not InventoryType.begin_WeaponCannonAmmo <= itemId or itemId <= InventoryType.end_WeaponCannonAmmo: if (InventoryType.begin_WeaponPistolAmmo <= itemId or itemId <= InventoryType.end_WeaponGrenadeAmmo or InventoryType.begin_WeaponDaggerAmmo <= itemId) and itemId <= InventoryType.end_WeaponDaggerAmmo: skillId = WeaponGlobals.getSkillIdForAmmoSkillId(itemId) if skillId: asset = WeaponGlobals.getSkillIcon(skillId) if asset: geomParams['geom'] = InventoryListItem.skillIcons.find('**/%s' % asset) geomParams['geom_scale'] = 0.14999999999999999 geomParams['geom_pos'] = (0.069000000000000006, 0, 0.069000000000000006) elif InventoryType.SmallBottle <= itemId and itemId <= InventoryType.LargeBottle: geomParams['geom'] = InventoryListItem.topGui.find('**/main_gui_ship_bottle') geomParams['geom_scale'] = 0.10000000000000001 geomParams['geom_pos'] = (0.069000000000000006, 0, 0.069000000000000006) return geomParams
def __init__(self, manager, itemTuple, imageScaleFactor=1.0): InventoryUIStackItem.InventoryUIStackItem.__init__(self, manager, itemTuple, imageScaleFactor=imageScaleFactor) self.initialiseoptions(InventoryUIPouchItem) Icons = loader.loadModel("models/gui/gui_icons_weapon") self["image"] = Icons.find("**/%s" % EconomyGlobals.getItemIcons(self.getId())) self.helpFrame = None self.cm = CardMaker("itemCard") self.cm.setFrame(-0.29999999999999999, 0.29999999999999999, -0.089999999999999997, 0.089999999999999997) self.buffer = None self.lens = PerspectiveLens() self.lens.setNear(0.10000000000000001) self.lens.setAspectRatio(0.59999999999999998 / 0.17999999999999999) self.realItem = None self.iconLabel = None self.itemCard = None self.portraitSceneGraph = NodePath("PortraitSceneGraph") detailGui = loader.loadModel("models/gui/gui_card_detail") self.bg = detailGui.find("**/color") self.bg.setScale(4) self.bg.setPos(0, 17, -6.2999999999999998) self.glow = detailGui.find("**/glow") self.glow.setScale(3) self.glow.setPos(0, 17, -6.2999999999999998) self.glow.setColor(1, 1, 1, 0.80000000000000004) self.setBin("gui-fixed", 1) self.accept("open_main_window", self.createBuffer) self.accept("aspectRatioChanged", self.createBuffer) self.accept("close_main_window", self.destroyBuffer) self["image_scale"] = 0.10000000000000001 * imageScaleFactor
def __init__(self, manager, itemId, itemTuple, imageScaleFactor = 1.0, showMax = 1, update = False): self.itemId = itemId InventoryUIStackItem.InventoryUIStackItem.__init__(self, manager, itemTuple, imageScaleFactor = imageScaleFactor, showMax = showMax, update = update) self.initialiseoptions(InventoryUIMaterialItem) SkillIcons = loader.loadModel('models/textureCards/skillIcons') MaterialIcons = loader.loadModel('models/textureCards/shipMaterialIcons') self['image'] = MaterialIcons.find('**/%s' % EconomyGlobals.getItemIcons(itemId)) self.helpFrame = None self.cm = CardMaker('itemCard') self.cm.setFrame(-0.29999999999999999, 0.29999999999999999, -0.089999999999999997, 0.089999999999999997) self.buffer = None self.lens = PerspectiveLens() self.lens.setNear(0.10000000000000001) self.lens.setAspectRatio(0.59999999999999998 / 0.17999999999999999) self.realItem = None self.iconLabel = None self.itemCard = None self.portraitSceneGraph = NodePath('PortraitSceneGraph') detailGui = loader.loadModel('models/gui/gui_card_detail') self.bg = detailGui.find('**/color') self.bg.setScale(4) self.bg.setPos(0, 17, -6.2999999999999998) self.glow = detailGui.find('**/glow') self.glow.setScale(3) self.glow.setPos(0, 17, -6.2999999999999998) self.glow.setColor(1, 1, 1, 0.80000000000000004) self.setBin('gui-fixed', 1) self.accept('open_main_window', self.createBuffer) self.accept('aspectRatioChanged', self.createBuffer) self.accept('close_main_window', self.destroyBuffer) self['image_scale'] = 0.10000000000000001 * imageScaleFactor
def __init__(self, manager, itemId, itemTuple, imageScaleFactor=1.0, showMax=1, update=False): self.itemId = itemId InventoryUIStackItem.InventoryUIStackItem.__init__(self, manager, itemTuple, imageScaleFactor=imageScaleFactor, showMax=showMax, update=update) self.initialiseoptions(InventoryUIMaterialItem) SkillIcons = loader.loadModel('models/textureCards/skillIcons') MaterialIcons = loader.loadModel('models/textureCards/shipMaterialIcons') self['image'] = MaterialIcons.find('**/%s' % EconomyGlobals.getItemIcons(itemId)) self.helpFrame = None self.cm = CardMaker('itemCard') self.cm.setFrame(-0.3, 0.3, -0.09, 0.09) self.buffer = None self.lens = PerspectiveLens() self.lens.setNear(0.1) self.lens.setAspectRatio(0.6 / 0.18) self.realItem = None self.iconLabel = None self.itemCard = None self.portraitSceneGraph = NodePath('PortraitSceneGraph') detailGui = loader.loadModel('models/gui/gui_card_detail') self.bg = detailGui.find('**/color') self.bg.setScale(4) self.bg.setPos(0, 17, -6.3) self.glow = detailGui.find('**/glow') self.glow.setScale(3) self.glow.setPos(0, 17, -6.3) self.glow.setColor(1, 1, 1, 0.8) self.setBin('gui-fixed', 1) self.accept('open_main_window', self.createBuffer) self.accept('aspectRatioChanged', self.createBuffer) self.accept('close_main_window', self.destroyBuffer) self['image_scale'] = 0.1 * imageScaleFactor return
def __init__(self, uid): SimpleEconomyItem.__init__(self, uid) self.icon = self.Icons.find('**/%s' % EconomyGlobals.getItemIcons(uid)) if uid in range(InventoryType.begin_PistolPouches, InventoryType.end_PistolPouches): self.shortDesc = PLocalizer.makeHeadingString( PLocalizer.InventoryItemClassNames.get(ItemType.PISTOL), 1) else: if uid in range(InventoryType.begin_DaggerPouches, InventoryType.end_DaggerPouches): self.shortDesc = PLocalizer.makeHeadingString( PLocalizer.InventoryItemClassNames.get(ItemType.DAGGER), 1) else: if uid in range(InventoryType.begin_GrenadePouches, InventoryType.end_GrenadePouches): self.shortDesc = PLocalizer.makeHeadingString( PLocalizer.GrenadeShort, 1) else: if uid in range(InventoryType.begin_CannonPouches, InventoryType.end_CannonPouches): self.shortDesc = PLocalizer.makeHeadingString( PLocalizer.ShipCannonShort, 1) else: self.shortDesc = PLocalizer.makeHeadingString( self.itemType, 1) self.itemName = self.shortDesc self.longDesc = self.shortDesc
def __init__(self, manager, itemTuple, imageScaleFactor=1.0): InventoryUIStackItem.InventoryUIStackItem.__init__( self, manager, itemTuple, imageScaleFactor=imageScaleFactor) self.initialiseoptions(InventoryUIPouchItem) Icons = loader.loadModel('models/gui/gui_icons_weapon') self['image'] = Icons.find('**/%s' % EconomyGlobals.getItemIcons(self.getId())) self.helpFrame = None self.cm = CardMaker('itemCard') self.cm.setFrame(-0.29999999999999999, 0.29999999999999999, -0.089999999999999997, 0.089999999999999997) self.buffer = None self.lens = PerspectiveLens() self.lens.setNear(0.10000000000000001) self.lens.setAspectRatio(0.59999999999999998 / 0.17999999999999999) self.realItem = None self.iconLabel = None self.itemCard = None self.portraitSceneGraph = NodePath('PortraitSceneGraph') detailGui = loader.loadModel('models/gui/gui_card_detail') self.bg = detailGui.find('**/color') self.bg.setScale(4) self.bg.setPos(0, 17, -6.2999999999999998) self.glow = detailGui.find('**/glow') self.glow.setScale(3) self.glow.setPos(0, 17, -6.2999999999999998) self.glow.setColor(1, 1, 1, 0.80000000000000004) self.setBin('gui-fixed', 1) self.accept('open_main_window', self.createBuffer) self.accept('aspectRatioChanged', self.createBuffer) self.accept('close_main_window', self.destroyBuffer) self['image_scale'] = 0.10000000000000001 * imageScaleFactor
def __init__(self, manager, materialType, itemTuple, imageScaleFactor=1.0): InventoryUIItem.InventoryUIItem.__init__( self, manager, itemTuple, imageScaleFactor=imageScaleFactor) self.initialiseoptions(InventoryUIMaterialBagItem) materialIcons = loader.loadModel('models/gui/gui_icons_weapon') self['image'] = materialIcons.find( '**/%s' % EconomyGlobals.getItemIcons(materialType)) self.materialType = materialType
def __init__(self, manager, skillId, itemTuple, imageScaleFactor = 1.0): InventoryUIItem.InventoryUIItem.__init__(self, manager, itemTuple, imageScaleFactor = imageScaleFactor) self.initialiseoptions(InventoryUIAmmoBagItem) weaponIcons = loader.loadModel('models/gui/gui_icons_weapon') fishingIcons = loader.loadModel('models/textureCards/fishing_icons') if self.itemTuple[1]: self['image'] = weaponIcons.find('**/%s' % EconomyGlobals.getItemIcons(self.itemTuple[1])) elif skillId == EconomyGlobals.ItemType.FISHING_POUCH: self['image'] = fishingIcons.find('**/%s' % EconomyGlobals.getItemTypeIcon(skillId)) else: self['image'] = weaponIcons.find('**/%s' % EconomyGlobals.getItemTypeIcon(skillId)) self.skillId = skillId
def __init__(self, uid): SimpleEconomyItem.__init__(self, uid) self.icon = self.Icons.find('**/%s' % EconomyGlobals.getItemIcons(uid)) if uid in range(InventoryType.begin_PistolPouches, InventoryType.end_PistolPouches): self.shortDesc = PLocalizer.makeHeadingString(PLocalizer.InventoryItemClassNames.get(ItemType.PISTOL), 1) elif uid in range(InventoryType.begin_DaggerPouches, InventoryType.end_DaggerPouches): self.shortDesc = PLocalizer.makeHeadingString(PLocalizer.InventoryItemClassNames.get(ItemType.DAGGER), 1) elif uid in range(InventoryType.begin_GrenadePouches, InventoryType.end_GrenadePouches): self.shortDesc = PLocalizer.makeHeadingString(PLocalizer.GrenadeShort, 1) elif uid in range(InventoryType.begin_CannonPouches, InventoryType.end_CannonPouches): self.shortDesc = PLocalizer.makeHeadingString(PLocalizer.ShipCannonShort, 1) else: self.shortDesc = PLocalizer.makeHeadingString(self.itemType, 1) self.itemName = self.shortDesc self.longDesc = self.shortDesc
def showDetails(self, cell, detailsPos, detailsHeight, event = None): self.notify.debug('Item showDetails') if self.manager.heldItem and self.manager.locked and cell.isEmpty() and self.isEmpty() or not (self.itemTuple): self.notify.debug(' early exit') return None self.helpFrame = DirectFrame(parent = self.manager, relief = None, state = DGG.DISABLED, sortOrder = 1) self.helpFrame.setBin('gui-popup', -5) detailGui = loader.loadModel('models/gui/gui_card_detail') topGui = loader.loadModel('models/gui/toplevel_gui') coinImage = topGui.find('**/treasure_w_coin*') SkillIcons = loader.loadModel('models/textureCards/skillIcons') border = SkillIcons.find('**/base') halfWidth = 0.29999999999999999 halfHeight = 0.20000000000000001 basePosX = cell.getX(aspect2d) basePosZ = cell.getZ(aspect2d) cellSizeX = 0.0 cellSizeZ = 0.0 if cell: cellSizeX = cell.cellSizeX cellSizeZ = cell.cellSizeZ textScale = PiratesGuiGlobals.TextScaleMed titleScale = PiratesGuiGlobals.TextScaleTitleSmall if len(self.getName()) >= 30: titleNameScale = PiratesGuiGlobals.TextScaleLarge else: titleNameScale = PiratesGuiGlobals.TextScaleExtraLarge subtitleScale = PiratesGuiGlobals.TextScaleMed iconScalar = 1.5 borderScaler = 0.25 splitHeight = 0.01 vMargin = 0.029999999999999999 runningVertPosition = 0.29999999999999999 runningSize = 0.0 labels = [] titleColor = PiratesGuiGlobals.TextFG24 titleLabel = DirectLabel(parent = self, relief = None, text = self.getName(), text_scale = titleNameScale, text_fg = titleColor, text_shadow = PiratesGuiGlobals.TextShadow, text_align = TextNode.ACenter, pos = (0.0, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) self.bg.setColor(titleColor) tHeight = 0.070000000000000007 titleLabel.setZ(runningVertPosition) runningVertPosition -= tHeight runningSize += tHeight labels.append(titleLabel) subtitleLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.InventoryItemClassNames.get(EconomyGlobals.getItemType(self.getId()), ''), text_scale = subtitleScale, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, text_align = TextNode.ACenter, pos = (0.0, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) subtHeight = 0.050000000000000003 subtitleLabel.setZ(subtHeight * 0.5 + runningVertPosition) runningVertPosition -= subtHeight runningSize += subtHeight labels.append(subtitleLabel) MaterialIcons = loader.loadModel('models/textureCards/shipMaterialIcons') self.iconLabel = DirectLabel(parent = self.portraitSceneGraph, relief = None, image = MaterialIcons.find('**/%s' % EconomyGlobals.getItemIcons(self.getItemId())), pos = (0.0, 2.5, 0.0)) iHeight = 0.17999999999999999 self.createBuffer() self.itemCard.setZ(runningVertPosition - 0.059999999999999998) runningVertPosition -= iHeight runningSize += iHeight labels.append(self.itemCard) description = PLocalizer.WeaponDescriptions.get(self.getId()) if not description: description = PLocalizer.WeaponDescriptions.get(self.getItemId()) if description: descriptionLabel = DirectLabel(parent = self, relief = None, text = description, text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.94999999999999996 / textScale), text_align = TextNode.ALeft, pos = (-halfWidth + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) dHeight = descriptionLabel.getHeight() + 0.02 runningVertPosition -= dHeight runningSize += dHeight labels.append(descriptionLabel) runningVertPosition -= 0.02 runningSize += 0.02 panels = self.helpFrame.attachNewNode('panels') topPanel = panels.attachNewNode('middlePanel') detailGui.find('**/top_panel').copyTo(topPanel) topPanel.setScale(0.080000000000000002) topPanel.reparentTo(self.helpFrame) middlePanel = panels.attachNewNode('middlePanel') detailGui.find('**/middle_panel').copyTo(middlePanel) middlePanel.setScale(0.080000000000000002) middlePanel.reparentTo(self.helpFrame) placement = 0 i = 0 heightMax = -0.080000000000000002 currentHeight = runningVertPosition if detailsHeight: currentHeight = -detailsHeight while currentHeight < heightMax: middlePanel = panels.attachNewNode('middlePanel%s' % 1) detailGui.find('**/middle_panel').copyTo(middlePanel) middlePanel.setScale(0.080000000000000002) middlePanel.reparentTo(self.helpFrame) if currentHeight + 0.20000000000000001 >= heightMax: difference = heightMax - currentHeight placement += (0.16800000000000001 / 0.20000000000000001) * difference currentHeight += difference else: placement += 0.16800000000000001 currentHeight += 0.20000000000000001 middlePanel.setZ(-placement) i += 1 bottomPanel = panels.attachNewNode('bottomPanel') detailGui.find('**/bottom_panel').copyTo(bottomPanel) bottomPanel.setScale(0.080000000000000002) bottomPanel.setZ(-placement) bottomPanel.reparentTo(self.helpFrame) colorPanel = panels.attachNewNode('colorPanel') detailGui.find('**/color').copyTo(colorPanel) colorPanel.setScale(0.080000000000000002) colorPanel.setColor(titleColor) colorPanel.reparentTo(self.helpFrame) lineBreakTopPanel = panels.attachNewNode('lineBreakTopPanel') detailGui.find('**/line_break_top').copyTo(lineBreakTopPanel) lineBreakTopPanel.setScale(0.080000000000000002, 0.080000000000000002, 0.070000000000000007) lineBreakTopPanel.setZ(0.0080000000000000002) lineBreakTopPanel.reparentTo(self.helpFrame) panels.flattenStrong() self.helpFrame['frameSize'] = (-halfWidth, halfWidth, -(runningSize + vMargin), vMargin) totalHeight = self.helpFrame.getHeight() - 0.10000000000000001 for label in labels: label.reparentTo(self.helpFrame) if basePosX > 0.0: newPosX = basePosX - halfWidth + cellSizeX * 0.45000000000000001 else: newPosX = basePosX + halfWidth + cellSizeX * 0.45000000000000001 if basePosZ > 0.0: newPosZ = basePosZ + cellSizeZ * 0.45000000000000001 else: newPosZ = basePosZ + totalHeight - cellSizeZ * 0.75 if detailsPos: (newPosX, newPosZ) = detailsPos self.helpFrame.setPos(newPosX, 0, newPosZ)
def createGui(self): itemId = self.data[0] self.picture = DirectFrame(parent = self, relief = None, state = DGG.DISABLED, pos = (0.01, 0, 0.01)) self.nameTag = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = self.name, text_scale = PiratesGuiGlobals.TextScaleSmall * PLocalizer.getHeadingScale(2), text_align = TextNode.ALeft, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, pos = (0.050000000000000003, 0, 0.105), text_font = PiratesGlobals.getInterfaceFont()) itemTypeFormatted = '' self.itemTypeName = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = itemTypeFormatted, text_scale = PiratesGuiGlobals.TextScaleSmall, text_align = TextNode.ALeft, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, text_font = PiratesGlobals.getInterfaceFont(), pos = (0.050000000000000003, 0, 0.065000000000000002)) self.miscText = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = '', text_scale = PiratesGuiGlobals.TextScaleSmall, text_align = TextNode.ALeft, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, text_wordwrap = 11, pos = (0.050000000000000003, 0, 0.025000000000000001)) if self.minLvl > 0: repId = WeaponGlobals.getRepId(itemId) if repId: self.checkLevel(repId, self.minLvl) trainingReq = EconomyGlobals.getItemTrainingReq(itemId) if trainingReq: self.checkTrainingReq(trainingReq) if EconomyGlobals.getItemCategory(itemId) == ItemType.AMMO: skillId = WeaponGlobals.getSkillIdForAmmoSkillId(itemId) self.checkSkillReq(skillId) if self.buy: self.checkPlayerInventory(itemId) self.costText = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, image = SongListItem.coinImage, image_scale = 0.12, image_pos = Vec3(-0.01, 0, 0.01), text = str(self.price), text_scale = PiratesGuiGlobals.TextScaleSmall, text_align = TextNode.ARight, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, text_wordwrap = 11, text_pos = (-0.029999999999999999, 0, 0), pos = (self.width - 0.035000000000000003, 0, 0.105), text_font = PiratesGlobals.getInterfaceFont()) if self.quantity and self.quantity > 1: self.quantityLabel = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = str(self.quantity), frameColor = (0, 0, 0, 1), frameSize = (-0.01, 0.02, -0.01, 0.025000000000000001), text_scale = 0.0275, text_align = TextNode.ACenter, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, text_wordwrap = 11, pos = (0.02, 0, 0.025000000000000001), text_font = PiratesGlobals.getPirateBoldOutlineFont()) itemClass = EconomyGlobals.getItemCategory(itemId) if itemClass == ItemType.WEAPON or itemClass == ItemType.POUCH: asset = EconomyGlobals.getItemIcons(itemId) if asset: self.picture['geom'] = SongItemGui.weaponIcons.find('**/%s*' % asset) self.picture['geom_scale'] = 0.11 self.picture['geom_pos'] = (0.080000000000000002, 0, 0.068000000000000005) elif itemClass == ItemType.CONSUMABLE: asset = EconomyGlobals.getItemIcons(itemId) if asset: self.picture['geom'] = SongItemGui.skillIcons.find('**/%s*' % asset) self.picture['geom_scale'] = 0.11 self.picture['geom_pos'] = (0.080000000000000002, 0, 0.068000000000000005) if not InventoryType.begin_WeaponCannonAmmo <= itemId or itemId <= InventoryType.end_WeaponCannonAmmo: if (InventoryType.begin_WeaponPistolAmmo <= itemId or itemId <= InventoryType.end_WeaponGrenadeAmmo or InventoryType.begin_WeaponDaggerAmmo <= itemId) and itemId <= InventoryType.end_WeaponDaggerAmmo: skillId = WeaponGlobals.getSkillIdForAmmoSkillId(itemId) if skillId: asset = WeaponGlobals.getSkillIcon(skillId) if asset: self.picture['geom'] = SongListItem.skillIcons.find('**/%s' % asset) self.picture['geom_scale'] = 0.14999999999999999 self.picture['geom_pos'] = (0.069000000000000006, 0, 0.069000000000000006) elif InventoryType.SmallBottle <= itemId and itemId <= InventoryType.LargeBottle: self.picture['geom'] = SongListItem.topGui.find('**/main_gui_ship_bottle') self.picture['geom_scale'] = 0.10000000000000001 self.picture['geom_pos'] = (0.069000000000000006, 0, 0.069000000000000006) self.flattenStrong()
def __init__(self, manager, materialType, itemTuple, imageScaleFactor = 1.0): InventoryUIItem.InventoryUIItem.__init__(self, manager, itemTuple, imageScaleFactor = imageScaleFactor) self.initialiseoptions(InventoryUIMaterialBagItem) materialIcons = loader.loadModel('models/gui/gui_icons_weapon') self['image'] = materialIcons.find('**/%s' % EconomyGlobals.getItemIcons(materialType)) self.materialType = materialType
def _createIface(self): self.descText = DirectLabel(parent = self, relief = None, text = self.item.get('Text'), text_align = TextNode.ALeft, text_scale = 0.050000000000000003, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, textMayChange = 1, pos = (0.02, 0, self.height / 2), text_font = PiratesGlobals.getInterfaceOutlineFont()) self.valueText = DirectLabel(parent = self, relief = None, text = str(self.item.get('Value1')), text_align = TextNode.ALeft, text_scale = 0.050000000000000003, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, textMayChange = 1, pos = (self.width * 0.65000000000000002, 0, self.height / 2), text_font = PiratesGlobals.getInterfaceOutlineFont()) if self.item.get('Type') == 'Title': self.descText['text_scale'] = 0.055 self.descText['text_fg'] = PiratesGuiGlobals.TextFG1 self.descText['text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.valueText['text_scale'] = 0.044999999999999998 self.valueText['text_font'] = PiratesGlobals.getInterfaceOutlineFont() if self.item.has_key('Value2'): self.valueText2 = DirectLabel(parent = self, relief = None, text = str(self.item.get('Value2')), text_align = TextNode.ALeft, text_scale = 0.050000000000000003, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, textMayChange = 1, pos = (self.width * 0.80000000000000004, 0, self.height / 2), text_font = PiratesGlobals.getInterfaceOutlineFont()) if self.valueText2: self.valueText2['text_scale'] = 0.044999999999999998 self.valueText2['text_font'] = PiratesGlobals.getInterfaceOutlineFont() elif self.item.get('Type') == 'Entry': self.descText['text_pos'] = (self.width * 0.059999999999999998, 0, 0) if self.item.has_key('Value2'): self.valueText2 = DirectLabel(parent = self, relief = None, text = str(self.item.get('Value2')), text_align = TextNode.ALeft, text_scale = 0.050000000000000003, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, textMayChange = 1, pos = (self.width * 0.80000000000000004, 0, self.height / 2), text_font = PiratesGlobals.getInterfaceOutlineFont()) elif self.item.get('Type') == 'Space': self.descText['text_scale'] = 0.02 self.descText['text'] = ' ' self.valueText['text_scale'] = 0.02 self.valueText['text'] = ' ' elif self.item.get('Type') == 'Button': self.descText['text_pos'] = (self.width * 0.059999999999999998, 0, 0) self.valueText['text'] = ' ' self.button = DirectButton(parent = self, relief = DGG.RIDGE, text = self.item.get('Text'), text_align = TextNode.ALeft, text_scale = PiratesGuiGlobals.TextScaleLarge, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, frameColor = PiratesGuiGlobals.ButtonColor1, command = self.item.get('Value2'), pos = (self.width * 0.65000000000000002, 0, self.height / 2), borderWidth = (0.01, 0.01), pad = (0.0050000000000000001, 0.0050000000000000001), textMayChange = 1) if self.item.get('State') == 'off': self.button['state'] = DGG.DISABLED self.button['text_fg'] = PiratesGuiGlobals.TextFG3 elif self.item.get('State') == 'oneShot': self.button.bind(DGG.B1RELEASE, self.disableButton) elif self.item.get('Type') == 'Cargo': itemId = self.item.get('Value1') iconId = EconomyGlobals.getCargoCategory(itemId) if not iconId: self.notify.error('Invalid Item in Cargo! item: %s' % (self.item,)) icon = self.icons.get(iconId) self.descText['geom'] = self.getCargoIcon(icon[0]) self.descText['geom_scale'] = 0.089999999999999997 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = icon[1] self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText['text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText['text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = PLocalizer.UnknownGoldValue self.valueText['text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.valueText['text_scale'] = 0.050000000000000003 * self.height * 10 icon = self.icons.get(ItemId.CARGO_CRATE) self.descText2 = DirectLabel(parent = self, relief = None, text = '?', text_align = TextNode.ACenter, text_scale = 0.050000000000000003 * self.height * 10, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, textMayChange = 1, pos = (0.080000000000000002, 0, self.height / 2), geom = self.getCargoIcon(icon[0]), geom_scale = 0.089999999999999997 * self.height * 10, geom_pos = (0.10000000000000001, 0, 0.01), text_pos = (0.10000000000000001, 0, 0), geom_color = Vec4(0, 0, 0, 1), text_font = PiratesGlobals.getInterfaceOutlineFont()) elif self.item.get('Type') == 'Gold': amount = self.item.get('Value2') itemName = PLocalizer.LootGold % amount self.descText['geom'] = self.getGoldIcon() self.descText['geom_scale'] = 0.14999999999999999 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText['text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText['text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = ' ' elif self.item.get('Type') == 'Weapon': itemId = self.item.get('Value1') itemName = PLocalizer.InventoryTypeNames.get(itemId) iconName = EconomyGlobals.getItemIcons(itemId) self.descText['geom'] = self.getWeaponIcon(iconName) self.descText['geom_scale'] = 0.089999999999999997 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText['text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText['text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = ' ' elif self.item.get('Type') == 'Ammo': itemId = self.item.get('Value1') amount = self.item.get('Value2') itemName = '%s %s' % (amount, PLocalizer.InventoryTypeNames.get(itemId)) iconName = WeaponGlobals.getSkillIcon(itemId) self.descText['geom'] = self.getAmmoIcon(iconName) self.descText['geom_scale'] = 0.089999999999999997 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText['text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText['text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = ' '
def _createIface(self): self.descText = DirectLabel( parent=self, relief=None, text=self.item.get('Text'), text_align=TextNode.ALeft, text_scale=0.050000000000000003, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, textMayChange=1, pos=(0.02, 0, self.height / 2), text_font=PiratesGlobals.getInterfaceOutlineFont()) self.valueText = DirectLabel( parent=self, relief=None, text=str(self.item.get('Value1')), text_align=TextNode.ALeft, text_scale=0.050000000000000003, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, textMayChange=1, pos=(self.width * 0.65000000000000002, 0, self.height / 2), text_font=PiratesGlobals.getInterfaceOutlineFont()) if self.item.get('Type') == 'Title': self.descText['text_scale'] = 0.055 self.descText['text_fg'] = PiratesGuiGlobals.TextFG1 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.valueText['text_scale'] = 0.044999999999999998 self.valueText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() if self.item.has_key('Value2'): self.valueText2 = DirectLabel( parent=self, relief=None, text=str(self.item.get('Value2')), text_align=TextNode.ALeft, text_scale=0.050000000000000003, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, textMayChange=1, pos=(self.width * 0.80000000000000004, 0, self.height / 2), text_font=PiratesGlobals.getInterfaceOutlineFont()) if self.valueText2: self.valueText2['text_scale'] = 0.044999999999999998 self.valueText2[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() elif self.item.get('Type') == 'Entry': self.descText['text_pos'] = (self.width * 0.059999999999999998, 0, 0) if self.item.has_key('Value2'): self.valueText2 = DirectLabel( parent=self, relief=None, text=str(self.item.get('Value2')), text_align=TextNode.ALeft, text_scale=0.050000000000000003, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, textMayChange=1, pos=(self.width * 0.80000000000000004, 0, self.height / 2), text_font=PiratesGlobals.getInterfaceOutlineFont()) elif self.item.get('Type') == 'Space': self.descText['text_scale'] = 0.02 self.descText['text'] = ' ' self.valueText['text_scale'] = 0.02 self.valueText['text'] = ' ' elif self.item.get('Type') == 'Button': self.descText['text_pos'] = (self.width * 0.059999999999999998, 0, 0) self.valueText['text'] = ' ' self.button = DirectButton( parent=self, relief=DGG.RIDGE, text=self.item.get('Text'), text_align=TextNode.ALeft, text_scale=PiratesGuiGlobals.TextScaleLarge, text_fg=PiratesGuiGlobals.TextFG1, text_shadow=PiratesGuiGlobals.TextShadow, frameColor=PiratesGuiGlobals.ButtonColor1, command=self.item.get('Value2'), pos=(self.width * 0.65000000000000002, 0, self.height / 2), borderWidth=(0.01, 0.01), pad=(0.0050000000000000001, 0.0050000000000000001), textMayChange=1) if self.item.get('State') == 'off': self.button['state'] = DGG.DISABLED self.button['text_fg'] = PiratesGuiGlobals.TextFG3 elif self.item.get('State') == 'oneShot': self.button.bind(DGG.B1RELEASE, self.disableButton) elif self.item.get('Type') == 'Cargo': itemId = self.item.get('Value1') iconId = EconomyGlobals.getCargoCategory(itemId) if not iconId: self.notify.error('Invalid Item in Cargo! item: %s' % (self.item, )) icon = self.icons.get(iconId) self.descText['geom'] = self.getCargoIcon(icon[0], icon[1]) self.descText[ 'geom_scale'] = 0.089999999999999997 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = icon[2] self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = PLocalizer.UnknownGoldValue self.valueText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.valueText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 icon = self.icons.get(ItemId.CARGO_CRATE) self.descText2 = DirectLabel( parent=self, relief=None, text='?', text_align=TextNode.ACenter, text_scale=0.050000000000000003 * self.height * 10, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, textMayChange=1, pos=(0.080000000000000002, 0, self.height / 2), geom=self.getCargoIcon(icon[0], icon[1]), geom_scale=0.089999999999999997 * self.height * 10, geom_pos=(0.10000000000000001, 0, 0.01), text_pos=(0.10000000000000001, 0, 0), geom_color=Vec4(0, 0, 0, 1), text_font=PiratesGlobals.getInterfaceOutlineFont()) elif self.item.get('Type') == 'Gold': amount = self.item.get('Value2') itemName = PLocalizer.LootGold % amount self.descText['geom'] = self.getGoldIcon() self.descText[ 'geom_scale'] = 0.14999999999999999 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = ' ' elif self.item.get('Type') == 'LootGold': amount = self.item.get('Amount') itemName = PLocalizer.PlunderGold self.descText['geom'] = self.getGoldIcon() self.descText[ 'geom_scale'] = 0.28000000000000003 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = '%s' % amount elif self.item.get('Type') == 'MaterialText': amount = self.item.get('Amount') itemName = PLocalizer.LootShare self.descText['geom'] = None self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = '' elif self.item.get('Type') == 'FreeMaterialRate': amount = self.item.get('Amount') itemName = PLocalizer.LimitedShare self.descText['geom'] = None self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = '' elif self.item.get('Type') == 'PaidMaterialRate': amount = self.item.get('Amount') itemName = PLocalizer.UnlimitedShare self.descText['geom'] = None self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = '' elif self.item.get('Type') == 'ShipMaterial': amount = self.item.get('Amount') typeId = self.item.get('Value1') itemName = PLocalizer.InventoryTypeNames.get(typeId, 'No Name') self.descText['geom'] = self.getMaterialIcon(typeId) self.descText[ 'geom_scale'] = 0.080000000000000002 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = '%s' % amount elif self.item.get('Type') == 'Weapon': itemId = self.item.get('Value1') itemName = PLocalizer.InventoryTypeNames.get(itemId) iconName = EconomyGlobals.getItemIcons(itemId) self.descText['geom'] = self.getWeaponIcon(iconName) self.descText[ 'geom_scale'] = 0.089999999999999997 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = ' ' elif self.item.get('Type') == 'Ammo': itemId = self.item.get('Value1') amount = self.item.get('Value2') itemName = '%s %s' % (amount, PLocalizer.InventoryTypeNames.get(itemId)) iconName = WeaponGlobals.getSkillIcon(itemId) self.descText['geom'] = self.getAmmoIcon(iconName) self.descText[ 'geom_scale'] = 0.089999999999999997 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = ' '
def getMaterialIcon(self, itemId): card = loader.loadModel('models/textureCards/shipMaterialIcons') icon = card.find('**/%s' % EconomyGlobals.getItemIcons(itemId)) card.removeNode() del card return icon
def createGui(self): itemId = self.data[0] self.picture = DirectFrame(parent=self, relief=None, state=DGG.DISABLED, pos=(0.01, 0, 0.01)) self.nameTag = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, text=self.name, text_scale=PiratesGuiGlobals.TextScaleSmall * PLocalizer.getHeadingScale(2), text_align=TextNode.ALeft, text_fg=PiratesGuiGlobals.TextFG1, text_shadow=PiratesGuiGlobals.TextShadow, pos=(0.050000000000000003, 0, 0.105), text_font=PiratesGlobals.getInterfaceFont()) itemTypeFormatted = '' self.itemTypeName = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, text=itemTypeFormatted, text_scale=PiratesGuiGlobals.TextScaleSmall, text_align=TextNode.ALeft, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, text_font=PiratesGlobals.getInterfaceFont(), pos=(0.050000000000000003, 0, 0.065000000000000002)) self.miscText = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, text='', text_scale=PiratesGuiGlobals.TextScaleSmall, text_align=TextNode.ALeft, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, text_wordwrap=11, pos=(0.050000000000000003, 0, 0.025000000000000001)) if self.minLvl > 0: repId = WeaponGlobals.getRepId(itemId) if repId: self.checkLevel(repId, self.minLvl) trainingReq = EconomyGlobals.getItemTrainingReq(itemId) if trainingReq: self.checkTrainingReq(trainingReq) if EconomyGlobals.getItemCategory(itemId) == ItemType.AMMO: skillId = WeaponGlobals.getSkillIdForAmmoSkillId(itemId) self.checkSkillReq(skillId) if self.buy: self.checkPlayerInventory(itemId) self.costText = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, image=SongListItem.coinImage, image_scale=0.12, image_pos=Vec3(-0.01, 0, 0.01), text=str(self.price), text_scale=PiratesGuiGlobals.TextScaleSmall, text_align=TextNode.ARight, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, text_wordwrap=11, text_pos=(-0.029999999999999999, 0, 0), pos=(self.width - 0.035000000000000003, 0, 0.105), text_font=PiratesGlobals.getInterfaceFont()) if self.quantity and self.quantity > 1: self.quantityLabel = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, text=str(self.quantity), frameColor=(0, 0, 0, 1), frameSize=(-0.01, 0.02, -0.01, 0.025000000000000001), text_scale=0.0275, text_align=TextNode.ACenter, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, text_wordwrap=11, pos=(0.02, 0, 0.025000000000000001), text_font=PiratesGlobals.getPirateBoldOutlineFont()) itemClass = EconomyGlobals.getItemCategory(itemId) if itemClass == ItemType.WEAPON or itemClass == ItemType.POUCH: asset = EconomyGlobals.getItemIcons(itemId) if asset: self.picture['geom'] = SongItemGui.weaponIcons.find('**/%s*' % asset) self.picture['geom_scale'] = 0.11 self.picture['geom_pos'] = (0.080000000000000002, 0, 0.068000000000000005) elif itemClass == ItemType.CONSUMABLE: asset = EconomyGlobals.getItemIcons(itemId) if asset: self.picture['geom'] = SongItemGui.skillIcons.find('**/%s*' % asset) self.picture['geom_scale'] = 0.11 self.picture['geom_pos'] = (0.080000000000000002, 0, 0.068000000000000005) if not InventoryType.begin_WeaponCannonAmmo <= itemId or itemId <= InventoryType.end_WeaponCannonAmmo: if (InventoryType.begin_WeaponPistolAmmo <= itemId or itemId <= InventoryType.end_WeaponGrenadeAmmo or InventoryType.begin_WeaponDaggerAmmo <= itemId ) and itemId <= InventoryType.end_WeaponDaggerAmmo: skillId = WeaponGlobals.getSkillIdForAmmoSkillId(itemId) if skillId: asset = WeaponGlobals.getSkillIcon(skillId) if asset: self.picture['geom'] = SongListItem.skillIcons.find( '**/%s' % asset) self.picture['geom_scale'] = 0.14999999999999999 self.picture['geom_pos'] = (0.069000000000000006, 0, 0.069000000000000006) elif InventoryType.SmallBottle <= itemId and itemId <= InventoryType.LargeBottle: self.picture['geom'] = SongListItem.topGui.find( '**/main_gui_ship_bottle') self.picture['geom_scale'] = 0.10000000000000001 self.picture['geom_pos'] = (0.069000000000000006, 0, 0.069000000000000006) self.flattenStrong()
def showDetails(self, cell, detailsPos, detailsHeight, event=None): self.notify.debug('Item showDetails') if self.manager.heldItem or self.manager.locked or cell.isEmpty( ) or self.isEmpty() or not self.itemTuple: self.notify.debug(' early exit') return self.helpFrame = DirectFrame(parent=self.manager, relief=None, state=DGG.DISABLED, sortOrder=1) self.helpFrame.setBin('gui-popup', -5) detailGui = loader.loadModel('models/gui/gui_card_detail') topGui = loader.loadModel('models/gui/toplevel_gui') coinImage = topGui.find('**/treasure_w_coin*') SkillIcons = loader.loadModel('models/textureCards/skillIcons') border = SkillIcons.find('**/base') halfWidth = 0.3 halfHeight = 0.2 basePosX = cell.getX(aspect2d) basePosZ = cell.getZ(aspect2d) cellSizeX = 0.0 cellSizeZ = 0.0 if cell: cellSizeX = cell.cellSizeX cellSizeZ = cell.cellSizeZ textScale = PiratesGuiGlobals.TextScaleMed titleScale = PiratesGuiGlobals.TextScaleTitleSmall if len(self.getName()) >= 30: titleNameScale = PiratesGuiGlobals.TextScaleLarge else: titleNameScale = PiratesGuiGlobals.TextScaleExtraLarge subtitleScale = PiratesGuiGlobals.TextScaleMed iconScalar = 1.5 borderScaler = 0.25 splitHeight = 0.01 vMargin = 0.03 runningVertPosition = 0.3 runningSize = 0.0 labels = [] titleColor = PiratesGuiGlobals.TextFG24 titleLabel = DirectLabel(parent=self, relief=None, text=self.getName(), text_scale=titleNameScale, text_fg=titleColor, text_shadow=PiratesGuiGlobals.TextShadow, text_align=TextNode.ACenter, pos=(0.0, 0.0, runningVertPosition), text_pos=(0.0, -textScale)) self.bg.setColor(titleColor) tHeight = 0.07 titleLabel.setZ(runningVertPosition) runningVertPosition -= tHeight runningSize += tHeight labels.append(titleLabel) subtitleLabel = DirectLabel( parent=self, relief=None, text=PLocalizer.InventoryItemClassNames.get( EconomyGlobals.getItemType(self.getId()), ''), text_scale=subtitleScale, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, text_align=TextNode.ACenter, pos=(0.0, 0.0, runningVertPosition), text_pos=(0.0, -textScale)) subtHeight = 0.05 subtitleLabel.setZ(subtHeight * 0.5 + runningVertPosition) runningVertPosition -= subtHeight runningSize += subtHeight labels.append(subtitleLabel) MaterialIcons = loader.loadModel( 'models/textureCards/shipMaterialIcons') self.iconLabel = DirectLabel( parent=self.portraitSceneGraph, relief=None, image=MaterialIcons.find( '**/%s' % EconomyGlobals.getItemIcons(self.getItemId())), pos=(0.0, 2.5, 0.0)) iHeight = 0.18 self.createBuffer() self.itemCard.setZ(runningVertPosition - 0.06) runningVertPosition -= iHeight runningSize += iHeight labels.append(self.itemCard) description = PLocalizer.WeaponDescriptions.get(self.getId()) if not description: description = PLocalizer.WeaponDescriptions.get(self.getItemId()) if description: descriptionLabel = DirectLabel( parent=self, relief=None, text=description, text_scale=textScale, text_wordwrap=halfWidth * 2.0 * (0.95 / textScale), text_align=TextNode.ALeft, pos=(-halfWidth + textScale * 0.5, 0.0, runningVertPosition), text_pos=(0.0, -textScale)) dHeight = descriptionLabel.getHeight() + 0.02 runningVertPosition -= dHeight runningSize += dHeight labels.append(descriptionLabel) runningVertPosition -= 0.02 runningSize += 0.02 panels = self.helpFrame.attachNewNode('panels') topPanel = panels.attachNewNode('middlePanel') detailGui.find('**/top_panel').copyTo(topPanel) topPanel.setScale(0.08) topPanel.reparentTo(self.helpFrame) middlePanel = panels.attachNewNode('middlePanel') detailGui.find('**/middle_panel').copyTo(middlePanel) middlePanel.setScale(0.08) middlePanel.reparentTo(self.helpFrame) placement = 0 i = 0 heightMax = -0.08 currentHeight = runningVertPosition if detailsHeight: currentHeight = -detailsHeight while currentHeight < heightMax: middlePanel = panels.attachNewNode('middlePanel%s' % 1) detailGui.find('**/middle_panel').copyTo(middlePanel) middlePanel.setScale(0.08) middlePanel.reparentTo(self.helpFrame) if currentHeight + 0.2 >= heightMax: difference = heightMax - currentHeight placement += 0.168 / 0.2 * difference currentHeight += difference else: placement += 0.168 currentHeight += 0.2 middlePanel.setZ(-placement) i += 1 bottomPanel = panels.attachNewNode('bottomPanel') detailGui.find('**/bottom_panel').copyTo(bottomPanel) bottomPanel.setScale(0.08) bottomPanel.setZ(-placement) bottomPanel.reparentTo(self.helpFrame) colorPanel = panels.attachNewNode('colorPanel') detailGui.find('**/color').copyTo(colorPanel) colorPanel.setScale(0.08) colorPanel.setColor(titleColor) colorPanel.reparentTo(self.helpFrame) lineBreakTopPanel = panels.attachNewNode('lineBreakTopPanel') detailGui.find('**/line_break_top').copyTo(lineBreakTopPanel) lineBreakTopPanel.setScale(0.08, 0.08, 0.07) lineBreakTopPanel.setZ(0.008) lineBreakTopPanel.reparentTo(self.helpFrame) panels.flattenStrong() self.helpFrame['frameSize'] = (-halfWidth, halfWidth, -(runningSize + vMargin), vMargin) totalHeight = self.helpFrame.getHeight() - 0.1 for label in labels: label.reparentTo(self.helpFrame) if basePosX > 0.0: newPosX = basePosX - (halfWidth + cellSizeX * 0.45) else: newPosX = basePosX + (halfWidth + cellSizeX * 0.45) if basePosZ > 0.0: newPosZ = basePosZ + cellSizeZ * 0.45 else: newPosZ = basePosZ + totalHeight - cellSizeZ * 0.75 if detailsPos: newPosX, newPosZ = detailsPos self.helpFrame.setPos(newPosX, 0, newPosZ) return