From 7194a04c5d7cbb3d239f75212ff72853a642b71a Mon Sep 17 00:00:00 2001 From: Aaron Kimbre Date: Wed, 26 Jan 2022 23:11:49 -0600 Subject: [PATCH] Property importing, maybe fix issue with color fallback --- .gitignore | 1 + app/__init__.py | 3 +- app/commands.py | 59 +++++++++++++++++++++++++++++++++-- app/templates/ldd/ldd.html.j2 | 2 +- property_files/.gitkeep | 0 5 files changed, 60 insertions(+), 5 deletions(-) create mode 100644 property_files/.gitkeep diff --git a/.gitignore b/.gitignore index f31a16e..03e6e85 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ app/static/ldddb/* locale.xml app/luclient/* app/cache/* +property_files/* diff --git a/app/__init__.py b/app/__init__.py index c561d47..e165381 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -12,7 +12,7 @@ from flask_wtf.csrf import CSRFProtect from flask_apscheduler import APScheduler from app.luclient import query_cdclient, register_luclient_jinja_helpers -from app.commands import init_db, init_accounts +from app.commands import init_db, init_accounts, load_property from app.models import Account, AccountInvitation # Instantiate Flask extensions @@ -60,6 +60,7 @@ def create_app(): # add the commands to flask cli app.cli.add_command(init_db) app.cli.add_command(init_accounts) + app.cli.add_command(load_property) register_settings(app) register_extensions(app) diff --git a/app/commands.py b/app/commands.py index f7729a7..a9925a5 100644 --- a/app/commands.py +++ b/app/commands.py @@ -4,7 +4,9 @@ from flask.cli import with_appcontext import random, string, datetime from flask_user import current_app from app import db -from app.models import Account, PlayKey +from app.models import Account, PlayKey, CharacterInfo, Property, PropertyContent, UGC +import pathlib +import zlib @click.command("init_db") @click.argument('drop_tables', nargs=1) @@ -29,15 +31,64 @@ def init_accounts(): # Add accounts print('Creating Admin account.') - admin_account = find_or_create_account( + find_or_create_account( 'admin', 'example@example.com', 'Nope', ) - return +@click.command("load_property") +@click.argument('zone') +@click.argument('player') +@with_appcontext +def load_property(zone, player): + + char = CharacterInfo.query.filter(CharacterInfo.name == player).first() + if not char: + print("Character not Found") + return 404 + + prop = Property.query.filter(Property.owner_id==char.id).filter(Property.zone_id==zone).first() + + if not prop: + print(f"Property {zone} not claimed by Character: {char.name}") + return 404 + + prop_files = pathlib.Path('property_files/') + for i in prop_files.glob('**/*'): + if i.suffix == '.lxfml': + lxfml = "" + with open(i, "r") as file: + lxfml = file.read() + compressed_lxfml = zlib.compress(lxfml.encode()) + + new_ugc = UGC( + account_id=char.account_id, + character_id=char.id, + is_optimized=0, + lxfml=compressed_lxfml, + bake_ao=0, + filename=i.name + ) + new_ugc.save() + + new_prop_content = PropertyContent( + id=i.stem, + property_id=prop.id, + ugc_id=new_ugc.id, + lot=14, + x=0, + y=0, + z=0, + rx=0, + ry=0, + rz=0, + rw=1 + ) + new_prop_content.save() + def find_or_create_account(name, email, password, gm_level=9): """ Find existing account or create new account """ @@ -68,3 +119,5 @@ def find_or_create_account(name, email, password, gm_level=9): db.session.add(play_key) db.session.commit() return # account + + diff --git a/app/templates/ldd/ldd.html.j2 b/app/templates/ldd/ldd.html.j2 index 652919e..64f60be 100644 --- a/app/templates/ldd/ldd.html.j2 +++ b/app/templates/ldd/ldd.html.j2 @@ -698,7 +698,7 @@ console.log('partindex: ' + partindex) console.log(pa.materials) - let lddmat = allMaterials.getMaterialbyId(21) + lddmat = allMaterials.getMaterialbyId(21) } let deco = '0' diff --git a/property_files/.gitkeep b/property_files/.gitkeep new file mode 100644 index 0000000..e69de29