Advertisement
toffesource

Global_Player

Jan 26th, 2018
363
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.93 KB | None | 0 0
  1. #Rename Script File to Global_Player.gd
  2. extends Node
  3.  
  4. var url_PlayerData = "user://PlayerData.bin"
  5. var inventory = {}
  6. var inventory_maxSlots = 40
  7. onready var playerData = Global_DataParser.load_data(url_PlayerData)
  8.  
  9. func _ready():
  10.     load_data()
  11.  
  12. func load_data():
  13.     if playerData == null:
  14.         var dict = {"inventory":{}}
  15.         for slot in range (0, inventory_maxSlots):
  16.             dict["inventory"][String(slot)] = {"id": "0", "amount": 0}
  17.         Global_DataParser.write_data(url_PlayerData, dict)
  18.         inventory = dict["inventory"]
  19.     else:
  20.         inventory = playerData["inventory"]
  21.  
  22. func save_data():
  23.     Global_DataParser.write_data(url_PlayerData, {"inventory": inventory})
  24.  
  25. func inventory_getEmptySlot():
  26.     for slot in range(0, inventory_maxSlots):
  27.         if inventory[String(slot)]["id"] == "0": return int(slot)
  28.     print ("Inventory is full!")
  29.     return -1
  30.  
  31. func inventory_addItem(var itemId):
  32.     var itemData = Global_ItemDatabase.get_item(String(itemId))
  33.     if itemData == null: return
  34.     if !itemData["stackable"]:
  35.         var slot = inventory_getEmptySlot()
  36.         if slot < 0: return
  37.         inventory[String(slot)] = {"id": String(itemId), "amount": 1}
  38.         return
  39.     for slot in range (0, inventory_maxSlots):
  40.         if inventory[String(slot)]["id"] == String(itemId):
  41.             inventory[String(slot)]["amount"] = int(inventory[String(slot)]["amount"] + 1)
  42.             return
  43.     var slot = inventory_getEmptySlot()
  44.     if slot < 0: return
  45.     inventory[String(slot)] = {"id": String(itemId), "amount": 1}
  46.  
  47. func inventory_removeItem(var slot):
  48.     #if int(inventory[String(slot)]["id"]) < 1: return
  49.     var newAmount = inventory[String(slot)]["amount"] - 1
  50.     if newAmount < 1:
  51.         inventory[String(slot)] = {"id": "0", "amount": 0}
  52.         return 0
  53.     inventory[String(slot)]["amount"] = newAmount
  54.     return newAmount
  55.    
  56. func inventory_moveItem(var fromSlot, var toSlot):
  57.     var temp_ToSlotItem = inventory[String(toSlot)]
  58.     inventory[String(toSlot)] = inventory[String(fromSlot)]
  59.     inventory[String(fromSlot)] = temp_ToSlotItem
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement