Exemplo n.º 1
0
 def __init__(self,
              vGain=50,
              thetaGain=20,
              desiredV=25,
              laneId=0,
              num=1,
              radiu=500,
              headway=20):
     self.vGain = vGain
     self.thetaGain = thetaGain
     self.desiredV = desiredV
     self.safeHeadway = headway
     self.traj = [[0, 0]]
     self.numSurrounding = num  # number of surrounding vehicles
     self.h = 2
     self.dmin = 10
     self.ts = 1.00 / 15
     self.targetLane = laneId
     self.changeFlag = 0
     self.phiFlag = 0
     self.frontObs = 0
     self.radiu = radiu
     self.Range = 15
     self.alpha = 50
     self.ita = 2
     self.changeThres = 1.3
     self.previousInput = [0, 0]
     self.timeStep = 0
     safetyCommand = file('safetyCommand.txt', 'w')
     vProf = file('velocity.txt', 'w')
     dProf = file('distance.txt', 'w')
Exemplo n.º 2
0
 def init(self, name='Sol'):
     log.debug("Loading Solar System Bodies")
     stream = file("solarsystem.yaml", "r")
     solarDB = yaml.load(stream)
     stream.close()
     self.bodies = []
     self.solarSystemRoot = NodePath(name)
     for bodyName, bodyDB in solarDB[name].items():
         self.generateNode(bodyName, bodyDB, self.solarSystemRoot)
Exemplo n.º 3
0
 def init(self, name="Sol"):
     log.debug("Loading Solar System Bodies")
     stream = file("solarsystem.yaml", "r")
     self.bodies = []
     solarDB = yaml.load(stream)
     stream.close()
     # self.sphere = shapeGenerator.Sphere(1, 128)
     # self.solarSystemRoot = NodePath(name)
     for bodyName, bodyDB in solarDB[name].items():
         self.generateNode(bodyName, bodyDB, universals.solarSystemRoot)
Exemplo n.º 4
0
 def init(self, name='Sol'):
     log.debug("Loading Solar System Bodies")
     stream = file("solarsystem.yaml", "r")
     self.bodies = []
     solarDB = yaml.load(stream)
     stream.close()
     #self.sphere = shapeGenerator.Sphere(1, 128)
     #self.solarSystemRoot = NodePath(name)
     for bodyName, bodyDB in solarDB[name].items():
         self.generateNode(bodyName, bodyDB, universals.solarSystemRoot)
Exemplo n.º 5
0
def file_md5(path: str, blocksize: int = 1024) -> object:
    """
    Returns a files md5 hash from its path
    """

    m = md5()
    if path_exists(path):
        fh = file(path, 'rb')
        data = [1]
        accumulated = 0

        while len(data) > 0:
            data = fh.read(blocksize)
            accumulated += len(data)
            m.update(data)

        fh.close()
    else:
        __file_notify.warning(
            'Failed to compute MD5 has for %s. File does not exist' % path)

    return m.digest()
Exemplo n.º 6
0
 def opt_action(self, act):
     self.lst_gui["option_frame"][-3]["state"] = DGG.DISABLED
     self.lst_gui["option_frame"][-2]["state"] = DGG.DISABLED
     if self.opt_var["chg"][0]:
         if act == 0:
             self.app.main_config["fullscreen"] = self.opt_var[
                 "fullscreen"][0]
         elif act == 1:
             self.opt_var["fullscreen"][0] = self.app.main_config[
                 "fullscreen"]
             self.lst_gui["option_frame"][1]["indicatorValue"] = (
                 0 if self.opt_var["fullscreen"][0] else 1)
             self.lst_gui["option_frame"][2]["indicatorValue"] = (
                 1 if self.opt_var["fullscreen"][0] else 0)
     if self.opt_var["chg"][1]:
         if act == 0:
             self.app.main_config["size_chx"] = self.opt_var["size_chx"]
         elif act == 1:
             self.opt_var["size_chx"] = self.app.main_config["size_chx"]
             self.lst_gui["option_frame"][4].set(self.opt_var["size_chx"])
     if self.opt_var["chg"][2]:
         if act == 0:
             self.app.main_config["lang_chx"] = self.opt_var["lang_chx"]
             self.app.langtab = self.app.main_config["lang"][
                 self.app.main_config["lang_chx"]]
             self.app.lang = json.loads("".join([
                 line.rstrip().lstrip() for line in file(
                     "misc/lang/" + self.app.langtab[0] + ".json", "rb")
             ]))
             self.app.voile[3]["text"] = self.app.lang["main_dialog"][
                 "valid"]
             self.app.voile[4]["text"] = self.app.lang["main_dialog"][
                 "cancel"]
             self.lst_gui["main_frame"][0]["text"] = self.app.lang[
                 "main_menu"]["campaign"]
             self.lst_gui["main_frame"][1]["text"] = self.app.lang[
                 "main_menu"]["mission"]
             self.lst_gui["main_frame"][2]["text"] = self.app.lang[
                 "main_menu"]["options"]
             self.lst_gui["main_frame"][3]["text"] = self.app.lang[
                 "main_menu"]["quit"]
             self.lst_gui["camp_frame"][0]["text"] = self.app.lang[
                 "camp_menu"]["stitre"]
             self.lst_gui["camp_frame"][1]["text"] = self.app.lang[
                 "camp_menu"]["new_unit"]
             self.lst_gui["camp_frame"][3]["text"] = self.app.lang[
                 "camp_menu"]["crea_unit"]
             self.lst_gui["camp_frame"][4]["text"] = self.app.lang[
                 "camp_menu"]["used_name"]
             self.lst_gui["camp_frame"][5]["text"] = self.app.lang[
                 "camp_menu"]["sel_lab"]
             self.lst_gui["camp_frame"][6]["text"] = self.app.lang[
                 "camp_menu"]["launch"]
             self.lst_gui["camp_frame"][7]["text"] = self.app.lang[
                 "camp_menu"]["supp_unit"]
             self.lst_gui["camp_frame"][8]["text"] = self.app.lang[
                 "camp_menu"]["no_unit"]
             self.lst_gui["camp_frame"][9]["text"] = self.app.lang[
                 "aux_menu"]["return_btn"]
             #
             #TODO : ajout de la traduction pour le sous menu "missions"
             #
             #
             self.lst_gui["mission_frame"][0]["text"] = self.app.lang[
                 "mission_menu"]["stitre"]
             #self.lst_gui["mission_frame"][0]["text"] = #
             #
             self.lst_gui["option_frame"][0]["text"] = self.app.lang[
                 "option_menu"]["stitre"]
             self.lst_gui["option_frame"][1]["text"] = self.app.lang[
                 "option_menu"]["windowed"]
             self.lst_gui["option_frame"][2]["text"] = self.app.lang[
                 "option_menu"]["fullscreen"]
             self.lst_gui["option_frame"][3]["text"] = self.app.lang[
                 "option_menu"]["res_chx"]
             self.lst_gui["option_frame"][5]["text"] = self.app.lang[
                 "option_menu"]["lang_chx"]
             self.lst_gui["option_frame"][7]["text"] = self.app.lang[
                 "option_menu"]["btn_valid"]
             self.lst_gui["option_frame"][8]["text"] = self.app.lang[
                 "option_menu"]["btn_reset"]
             self.lst_gui["option_frame"][9]["text"] = self.app.lang[
                 "aux_menu"]["return_btn"]
         elif act == 1:
             self.opt_var["lang_chx"] = self.app.main_config["lang_chx"]
             self.lst_gui["option_frame"][6].set(self.opt_var["lang_chx"])
     if act == 0 and not self.opt_var["chg"] == [False, False, False]:
         conf = open(self.app.curdir + "/config.json", "w")
         conf.write(json.dumps(self.app.main_config))
         conf.close()
     if not self.opt_var["chg"] == [False, False, False]:
         self.opt_var["chg"] = [False, False, False]
Exemplo n.º 7
0
 def valid_main_menu(self):
     self.nomove = False
     self.app.change_cursor(0)
     taskMgr.doMethodLater(1, self.main_aux_arcs_task, "anim aux arcs task")
     self.app.ignore("escape")
     self.app.ignore("mouse1")
     self.app.ignore("wheel_up")
     self.app.ignore("wheel_down")
     self.app.ignore("arrow_up")
     self.app.ignore("arrow_down")
     self.app.ignore("enter")
     self.app.lst_arrows[0]["status"] = 0
     self.app.lst_arrows[1]["status"] = 0
     self.app.lst_arrows[0]["node"].hide()
     self.app.lst_arrows[1]["node"].hide()
     self.nb_saves = 0
     self.lst_saves = []
     self.gui_saves = []
     if self.lst_menus[1] == 0 or self.lst_menus[1] == 1:
         if exists(self.app.curdir + "/saves"):
             self.lst_saves = os.listdir(self.app.curdir + "/saves")
             self.nb_saves = len(self.lst_saves)
             if self.nb_saves > 0:
                 for it, elt in enumerate(self.lst_saves):
                     date_save = elt[:-5].split("_")
                     date_save[1] = date_save[1].replace("-", ":")
                     date_save = " ".join(date_save)
                     cur_save = json.loads("".join([
                         line.rstrip().lstrip()
                         for line in file(self.app.curdir + "/saves/" +
                                          elt, "rb")
                     ]))
                     time_txt = ""
                     if cur_save["time"] < 100:
                         time_txt = str(cur_save["time"]) + " s"
                     elif cur_save["time"] < 6000:
                         s = cur_save["time"] % 60
                         m = (cur_save["time"] - s) / 60
                         time_txt = str(m) + ":" + str(s)
                     else:
                         s = cur_save["time"] % 60
                         tm = (cur_save["time"] - s) / 60
                         m = tm % 60
                         h = (tm - m) / 60
                         time_txt = str(h) + ":" + str(m) + ":" + str(s)
                     self.gui_saves.append(
                         [cur_save["nom"], date_save, time_txt, it, None])
         else:
             os.makedirs(self.app.curdir + "/saves")
     if self.lst_menus[1] == 0:
         if len(self.lst_gui["camp_frame"]) > 12:
             for it in range(12, len(self.lst_gui["camp_frame"])):
                 self.lst_gui["camp_frame"][12].removeNode()
                 del self.lst_gui["camp_frame"][12]
         for elt in self.gui_saves:
             save_lab = arcLabel(elt[0], (0.5, 0, -0.68), 0.05)
             save_lab.reparentTo(self.lst_gui["frames"][1])
             save_lab.hide()
             self.lst_gui["camp_frame"].append(save_lab)
             elt[4] = save_lab
     elif self.lst_menus[1] == 1:
         #
         #TODO : action à faire lors de l'activation du sous menu "missions"
         #
         #
         pass
     elif self.lst_menus[1] == 3:
         sys.exit(0)
     self.app.lst_arrows[0]["node"].hide()
     self.app.lst_arrows[1]["node"].hide()
     self.lst_gui["frames"][0].hide()
     movePara = Parallel(name="main_to_aux")
     movePara.append(camera.posInterval(2, Point3(-4, -1, 7)))
     movePara.append(camera.hprInterval(2, Point3(-90, -10, 0)))
     movePara.start()
     taskMgr.doMethodLater(2.5, self.aux_affmenu_task,
                           "main aff aux menu task")
     self.lst_menus[0] = 1
Exemplo n.º 8
0
 def __init__(self):  #basic init start
     base.disableMouse()
     self.wp = WindowProperties()
     self.wp.setCursorHidden(True)
     base.win.requestProperties(self.wp)
     cm = CardMaker("cursor")
     cm.setFrame(0, 0.1, -0.13, 0)
     self.cust_mouse = render.attachNewNode(cm.generate())
     self.cust_mouse_tex = []
     self.cust_mouse_tex.append(
         loader.loadTexture("models/cursors/blank_cursor.png"))
     self.cust_mouse_tex.append(
         loader.loadTexture("models/cursors/main_cursor.png"))
     self.cust_mouse.setTexture(self.cust_mouse_tex[0])
     self.cust_mouse.setTransparency(TransparencyAttrib.MAlpha)
     self.cust_mouse.reparentTo(render2d)
     self.cust_mouse.setBin("gui-popup", 100)
     base.mouseWatcherNode.setGeometry(self.cust_mouse.node())
     #text and background
     textVersion = OnscreenText(text="v0.0",
                                font=arcFont,
                                pos=(1.15, -0.95),
                                fg=(0, 0, 0, 1),
                                bg=(1, 1, 1, 0.8))
     base.setBackgroundColor(1, 1, 1)
     self.curdir = (appRunner.p3dFilename.getDirname()
                    if appRunner else "..")
     self.main_config = json.loads("".join([
         line.rstrip().lstrip()
         for line in file(self.curdir + "/config.json", "rb")
     ]))
     #arrows (GENERAL)
     self.arrow = loader.loadModel("models/static/arrow")
     self.lst_arrows = []
     self.c_arr = CardMaker("arrow_hide")
     self.c_arr.setFrame(-1, 1, -0.8, 0.6)
     #light ramp
     self.rampnode = NodePath(PandaNode("temp node"))
     self.rampnode.setAttrib(LightRampAttrib.makeSingleThreshold(0.1, 0.7))
     self.rampnode.setShaderAuto()
     base.cam.node().setInitialState(self.rampnode.getState())
     #ink filter
     self.filters = CommonFilters(base.win, base.cam)
     self.filterok = self.filters.setCartoonInk(separation=1)
     #keyboard inputs
     self.accept("escape", sys.exit, [0])
     #lights
     self.lst_lghts = []
     #ambient light (permanent)
     self.alghtnode = AmbientLight("amb light")
     self.alghtnode.setColor(Vec4(0.4, 0.4, 0.4, 1))
     self.alght = render.attachNewNode(self.alghtnode)
     render.setLight(self.alght)
     #language recup
     self.langtab = self.main_config["lang"][self.main_config["lang_chx"]]
     self.lang = json.loads("".join([
         line.rstrip().lstrip()
         for line in file("misc/lang/" + self.langtab[0] + ".json", "rb")
     ]))
     #common gui elements
     self.voile = []
     self.voile.append(
         DirectFrame(frameSize=(-2, 2, -2, 2), frameColor=(0, 0, 0, 0.8)))
     self.voile[0].setBin("gui-popup", 1)
     self.voile[0].hide()
     self.voile.append(arcLabel("", (0, 0, 0.3), txtalgn=TextNode.ACenter))
     self.voile[1].setBin("gui-popup", 1)
     self.voile[1].reparentTo(self.voile[0])
     self.voile.append(arcLabel("", (0, 0, 0.17), txtalgn=TextNode.ACenter))
     self.voile[2].setBin("gui-popup", 1)
     self.voile[2].reparentTo(self.voile[0])
     self.voile.append(
         arcButton(self.lang["main_dialog"]["valid"], (-0.2, 0, 0),
                   None,
                   txtalgn=TextNode.ACenter))
     self.voile[3].setBin("gui-popup", 1)
     self.voile[3].reparentTo(self.voile[0])
     self.voile.append(
         arcButton(self.lang["main_dialog"]["cancel"], (0.2, 0, 0),
                   None,
                   txtalgn=TextNode.ACenter))
     self.voile[4].setBin("gui-popup", 1)
     self.voile[4].reparentTo(self.voile[0])
     #mouse handler
     self.mouse_trav = CollisionTraverser()
     self.mouse_hand = CollisionHandlerQueue()
     self.pickerNode = CollisionNode('mouseRay')
     self.pickerNP = camera.attachNewNode(self.pickerNode)
     self.pickerNode.setFromCollideMask(BitMask32.bit(1))
     self.pickerRay = CollisionRay()
     self.pickerNode.addSolid(self.pickerRay)
     self.mouse_trav.addCollider(self.pickerNP, self.mouse_hand)
     self.pickly_node = render.attachNewNode("pickly_node")
     #init main scene
     self.scene = mainScene(self)