Advertisement
toffesource

Script_PlayerInventory

Jan 26th, 2018
556
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.91 KB | None | 0 0
  1. #Rename Script File to Script_PlayerInventory.gd
  2. extends Node
  3.  
  4. onready var itemList = get_node("Panel/ItemList")
  5.  
  6. # WindowDialog_AddItemWindow Variables.
  7. onready var addItemWindow = get_node("Panel/WindowDialog_AddItemWindow")
  8. onready var addItemWindow_SpinBox_ItemId = get_node("Panel/WindowDialog_AddItemWindow/AddItemWindow_SpinBox_ItemID")
  9.  
  10. # WindowDialog_ItemMenu Variables.
  11. onready var itemMenu = get_node("Panel/WindowDialog_ItemMenu")
  12. onready var itemMenu_TextureFrame_Icon = get_node("Panel/WindowDialog_ItemMenu/ItemMenu_TextureFrame_Icon")
  13. onready var itemMenu_RichTextLabel_ItemInfo = get_node("Panel/WindowDialog_ItemMenu/ItemMenu_RichTextLabel_ItemInfo")
  14. onready var itemMenu_Button_Move = get_node("Panel/WindowDialog_ItemMenu/ItemMenu_Button_Move")
  15. onready var itemMenu_Button_DropItem = get_node("Panel/WindowDialog_ItemMenu/ItemMenu_Button_DropItem")
  16. var activeItemIndex = -1
  17. var isMovingItem = false
  18.  
  19.  
  20. func _ready():
  21.    
  22.     # Initialize Item List
  23.     itemList.set_max_columns(9)
  24.     itemList.set_fixed_icon_size(Vector2(48,48))
  25.     itemList.set_icon_mode(ItemList.ICON_MODE_TOP)
  26.     itemList.set_select_mode(ItemList.SELECT_SINGLE)
  27.     itemList.set_same_column_width(true)
  28.     itemList.set_allow_rmb_select(true)
  29.    
  30.  
  31. func load_items():
  32.     itemList.clear()
  33.     for slot in range(0, Global_Player.inventory_maxSlots):
  34.         var inventoryItem = Global_Player.inventory[String(slot)]
  35.         var itemMetaData = Global_ItemDatabase.get_item(inventoryItem["id"])
  36.         var icon = ResourceLoader.load(itemMetaData["icon"])
  37.         var amount = int(inventoryItem["amount"])
  38.        
  39.         itemMetaData["amount"] = amount
  40.         if !itemMetaData["stackable"]: amount = " "
  41.         itemList.add_item(String(amount), icon, true)
  42.         itemList.set_item_metadata(slot, itemMetaData)
  43.         itemList.set_item_tooltip(slot, itemMetaData["name"])
  44.         if inventoryItem["id"] == "0":
  45.             itemList.set_item_text(slot, " ")
  46.             itemList.set_item_tooltip_enabled(slot, false)
  47.             itemList.set_item_selectable(slot, false)
  48.  
  49.  
  50. func _on_Button_Load_pressed():
  51.     load_items()
  52.    
  53.  
  54. func _on_Button_AddItem_pressed():
  55.     addItemWindow.popup()
  56.  
  57. func _on_AddItemWindow_Button_Close_pressed():
  58.     addItemWindow.hide()
  59.  
  60.  
  61. func _on_AddItemWindow_Button_AddItem_pressed():
  62.     Global_Player.inventory_addItem(addItemWindow_SpinBox_ItemId.get_value())
  63.     load_items()
  64.  
  65.  
  66. func _on_ItemList_item_rmb_selected( index, atpos ):
  67.     if isMovingItem: return
  68.     var itemData = itemList.get_item_metadata(index)
  69.     if int(itemData["id"]) < 1: return
  70.     var strItemInfo = ""
  71.    
  72.     itemMenu.set_pos(get_viewport().get_mouse_pos())
  73.     itemMenu.set_title(itemData["name"])
  74.     itemMenu_TextureFrame_Icon.set_texture(itemList.get_item_icon(index))
  75.    
  76.     strItemInfo = "Name: [color=#00aedb] " + itemData["name"] + "[/color]\n"
  77.     strItemInfo = strItemInfo + "Type: [color=#f37735] " + itemData["type"] + "[/color]\n"
  78.     strItemInfo = strItemInfo + "Weight: [color=#00b159] " + String(itemData["weight"]) + "[/color]\n"
  79.     strItemInfo = strItemInfo + "Sell Price: [color=#ffc425] " + String(itemData["sell_price"]) + "[/color] gold\n"
  80.     strItemInfo = strItemInfo + "\n[color=#b3cde0]" + itemData["description"] + "[/color]"
  81.    
  82.     itemMenu_RichTextLabel_ItemInfo.set_bbcode(strItemInfo)
  83.     itemMenu_Button_DropItem.set_text("(" + String(itemData["amount"]) + ") Drop" )
  84.     activeItemIndex = index
  85.     itemMenu.popup()
  86.    
  87.    
  88. func _on_WindowDialog_ItemMenu_popup_hide():
  89.     if !isMovingItem: activeItemIndex = -1
  90.  
  91.  
  92. func _on_ItemMenu_Button_DropItem_pressed():
  93.     var newAmount = Global_Player.inventory_removeItem(activeItemIndex)
  94.     if newAmount < 1:
  95.         itemMenu.hide()
  96.     else:
  97.         itemMenu_Button_DropItem.set_text("(" + String(newAmount) + ") Drop")
  98.     load_items()
  99.  
  100.  
  101. func _on_ItemMenu_Button_Move_pressed():
  102.     isMovingItem = true
  103.     itemMenu.hide()
  104.  
  105.  
  106. func _on_ItemList_item_selected( index ):
  107.     if !isMovingItem: return
  108.     isMovingItem = false
  109.     Global_Player.inventory_moveItem(activeItemIndex, index)
  110.     load_items()
  111.  
  112.  
  113. func _on_Button_Save_pressed():
  114.     Global_Player.save_data()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement