Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask import g
- class Ship:
- @staticmethod
- def create_ship(owner,name,x,y,z):
- #See if owner already has a ship
- query = g.db.execute('SELECT ship_id FROM ships WHERE owner=? AND name=?',[owner,name])
- ship = query.fetchone()
- if ship != None:
- return False; #Owner already has ship with the same name, fuck it
- #Create new entry on db for ship
- g.db.execute("INSERT INTO ships (owner,name,x,y,z) VALUES (?,?,?,?,?)",[owner,name,x,y,z])
- g.db.commit()
- #Get id of new ship
- query = g.db.execute('SELECT ship_id FROM ships WHERE name=? AND owner=?',[name,owner])
- ship_id = query.fetchone()[0]
- #We have data for new character, create it.and return it
- return Ship(ship_id)
- location_type = 1
- def __init__(self,ship_id):
- query = g.db.execute('SELECT * FROM ships WHERE ship_id=?',[ship_id])
- ship = query.fetchone()
- self.makeFromRow(ship)
- def makeFromRow(self,row):
- if row == None:
- self.isShip = False
- else:
- self.ship_id = row[0]
- self.location_id = self.ship_id
- self.owner = row[1]
- self.name = row[2]
- self.x = row[3]
- self.y = row[4]
- self.z = row[5]
- self.isShip = True
- def move(self,x,y,z):
- self.x += x
- self.y += y
- self.z += z
- self.saveData()
- def getDisplayName(self):
- from Starlane import Character
- return self.name + " [" + Character(self.owner).name + "]"
- def saveData(self):
- g.db.execute("UPDATE ships SET owner='?', name='?', x=?, y=?, z=? WHERE ship_id = '?'", [self.owner, self.name, self.x, self.y, self.z, self.ship_id])
- g.db.commit()
Add Comment
Please, Sign In to add comment