jsuarez/extra/embyr_deprecated/embyr/EnvViewport3D.py (80 lines of code) (raw):
from pdb import set_trace as T
import numpy as np
import time
from scipy.misc import imresize, imsave
from enum import Enum
import pygame
from pygame import Surface
from forge.embyr import embyr
from forge.embyr import utils as renderutils
from forge.embyr import render
from forge.embyr.texture import TextureInitializer
from forge.blade.lib.enums import Neon, Color256, Defaults
from forge.blade.action.v2 import Attack
from forge.blade.action import action
from pdb import set_trace as T
import numpy as np
import os
import kivy3
from kivy.app import App
from kivy3 import Scene, Renderer, PerspectiveCamera
from kivy3.loaders import OBJMTLLoader
from kivy.uix.floatlayout import FloatLayout
from kivy.config import Config
from kivy.graphics import opengl as gl
from kivy.graphics import Mesh as KivyMesh
from kivy3.core.object3d import Object3D
from kivy3.materials import Material
from kivy.core.image import Image
from copy import deepcopy
from forge.embyr.embyr import Application as KivyApp
import pywavefront as pywave
import pytmx
from forge.blade.lib import enums
from forge.embyr.transform import Transform
from forge.embyr import embyr3D
root = 'forge/embyr/'
Config.set('input', 'mouse', 'mouse,multitouch_on_demand')
shaderf = 'tex/default.glsl'
pi = 3.14159265
NANIM = 4
class EnvViewport3D(embyr3D.Widget):
def __init__(self, root, realm, **kwargs):
super().__init__(root)
self.root = 'forge/embyr/'
self.rs = embyr3D.RS(root, **kwargs)
self.setupScene()
def setupScene(self):
self.map = embyr3D.Map(self.rs)
obj = embyr3D.OBJLoader.load(self.root + 'tex/nn.obj')
ent = embyr3D.Ent()
ent.pos.x = 40
ent.pos.y = 10
ent.pos.z = 40
self.vecent = ent
self.rs.add(ent)
ent = embyr3D.Ent()
ent.pos.x = 8
ent.pos.y = 20
ent.pos.z = 8
self.cament = ent
self.rs.add(ent)
def render(self, dt):
#self.client.render(dt)
#self.step()
x, y, z = self.rs.update(dt)
self.vecent.update_pos(x, 3, z)
'''
desciples = sorted(self.realm.desciples.items())
if len(desciples) == 0:
return
ent = desciples[0][1]
z, x = 32, 32 #ent.server.pos
self.ent.update_pos(x, self.ent.pos.y, z)
'''
def refresh(self, trans, iso):
self.iso = iso
mmap = self.map.refresh(trans, self.iso)
ent = self.ent.refresh(trans, self.iso)
self.blit(mmap, (0, 0))
self.blit(ent, (0, 0))
self.flip()
return self.surf