From: <ror...@us...> - 2007-06-22 23:53:12
|
Revision: 12 http://roreditor.svn.sourceforge.net/roreditor/?rev=12&view=rev Author: rorthomas Date: 2007-06-22 16:53:11 -0700 (Fri, 22 Jun 2007) Log Message: ----------- * modified splash image for starter (not shown atm) * modified starter to have 'normal' background * removed deprecated rendersystem argument from terraineditor Modified Paths: -------------- trunk/lib/ror/splash.bmp trunk/lib/ror/starter.py trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py trunk/lib/rorterraineditor/RoRTerrainSelectedObjectOgreWindow.py trunk/lib/rorterraineditor/RoRTerrainSelectedObjectTopOgreWindow.py Modified: trunk/lib/ror/splash.bmp =================================================================== (Binary files differ) Modified: trunk/lib/ror/starter.py =================================================================== --- trunk/lib/ror/starter.py 2007-06-22 23:32:23 UTC (rev 11) +++ trunk/lib/ror/starter.py 2007-06-22 23:53:11 UTC (rev 12) @@ -12,20 +12,22 @@ kwds["style"] = wx.SYSTEM_MENU | wx.CAPTION | wx.CLIP_CHILDREN | wx.CLOSE_BOX wx.Frame.__init__(self, *args, **kwds) - self.lblRoRDir = wx.StaticText(self, wx.ID_ANY, "Please select Rigs of Rods Directory!") - self.btnSelectRoRDir = wx.Button(self, wx.ID_ANY, "Select RoR Directory") + self.panel = wx.Panel(self, wx.ID_ANY) + + self.lblRoRDir = wx.StaticText(self.panel, wx.ID_ANY, "Please select Rigs of Rods Directory!") + self.btnSelectRoRDir = wx.Button(self.panel, wx.ID_ANY, "Select RoR Directory") self.Bind(wx.EVT_BUTTON, self.OnSelectRoRDir, self.btnSelectRoRDir) - self.btnStartRoR = wx.Button(self, wx.ID_ANY, "Start RoR") + self.btnStartRoR = wx.Button(self.panel, wx.ID_ANY, "Start RoR") self.Bind(wx.EVT_BUTTON, self.OnStartRoR, self.btnStartRoR) - self.btnStartTerrainEditor = wx.Button(self, wx.ID_ANY, "Start Terrain Editor") + self.btnStartTerrainEditor = wx.Button(self.panel, wx.ID_ANY, "Start Terrain Editor") self.Bind(wx.EVT_BUTTON, self.OnTerrainEditor, self.btnStartTerrainEditor) - self.btnStartTruckEditor = wx.Button(self, wx.ID_ANY, "Start Truck Editor") + self.btnStartTruckEditor = wx.Button(self.panel, wx.ID_ANY, "Start Truck Editor") self.Bind(wx.EVT_BUTTON, self.OnTruckEditor, self.btnStartTruckEditor) - self.btnExit = wx.Button(self, wx.ID_ANY, "Exit") + self.btnExit = wx.Button(self.panel, wx.ID_ANY, "Exit") self.Bind(wx.EVT_BUTTON, self.OnExit, self.btnExit) self.rordir = getSettings().getRoRDir() @@ -54,7 +56,7 @@ def OnStartRoR(self, event=None): p = Popen(os.path.join(self.rordir, "RoR.exe"), shell=True, cwd=self.rordir) - sts = os.waitpid(p.pid, 0) + #sts = os.waitpid(p.pid, 0) def OnTruckEditor(self, event=None): import rortruckeditor.MainFrame @@ -100,15 +102,19 @@ self.SetTitle("RoR Toolkit starter") def __do_layout(self): + + sizer_panel = wx.BoxSizer(wx.VERTICAL) + sizer_panel.Add(self.lblRoRDir, 0, wx.EXPAND, 0) + sizer_panel.Add(self.btnSelectRoRDir, 0, wx.EXPAND, 0) + sizer_panel.Add(self.btnStartRoR, 0, wx.EXPAND, 0) + sizer_panel.Add(self.btnStartTerrainEditor, 0, wx.EXPAND, 0) + sizer_panel.Add(self.btnStartTruckEditor, 0, wx.EXPAND, 0) + sizer_panel.Add(self.btnExit, 0, wx.EXPAND, 0) + self.panel.SetSizer(sizer_panel) + sizer_main = wx.BoxSizer(wx.VERTICAL) + sizer_main.Add(self.panel, 0, wx.EXPAND, 0) - sizer_main.Add(self.lblRoRDir, 0, wx.EXPAND, 0) - sizer_main.Add(self.btnSelectRoRDir, 0, wx.EXPAND, 0) - sizer_main.Add(self.btnStartRoR, 0, wx.EXPAND, 0) - sizer_main.Add(self.btnStartTerrainEditor, 0, wx.EXPAND, 0) - sizer_main.Add(self.btnStartTruckEditor, 0, wx.EXPAND, 0) - sizer_main.Add(self.btnExit, 0, wx.EXPAND, 0) - self.SetAutoLayout(True) self.SetSizer(sizer_main) sizer_main.Fit(self) Modified: trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py =================================================================== --- trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py 2007-06-22 23:32:23 UTC (rev 11) +++ trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py 2007-06-22 23:53:11 UTC (rev 12) @@ -12,7 +12,7 @@ #myObjects = {} myODefs = {} - def __init__(self, parent, ID, size = wx.Size(200,200), renderSystem = "OpenGL", rordir = "", **kwargs): + def __init__(self, parent, ID, size = wx.Size(200,200), rordir = "", **kwargs): self.rordir = rordir self.rand = str(random()) self.TerrainLoaded = False @@ -20,7 +20,6 @@ self.rand = str(random()) self.parent = parent self.size = size - self.renderSystem =renderSystem self.kwargs = kwargs self.ID = ID self.mSelected = None @@ -28,7 +27,7 @@ self.myODefs = {} self.trucks = {} self.meshes = {} - wxOgreWindow.__init__(self, self.parent, self.ID, size = self.size, renderSystem = self.renderSystem, **self.kwargs) + wxOgreWindow.__init__(self, self.parent, self.ID, size = self.size, **self.kwargs) def OnFrameStarted(self): self.cameraLandCollision() Modified: trunk/lib/rorterraineditor/RoRTerrainSelectedObjectOgreWindow.py =================================================================== --- trunk/lib/rorterraineditor/RoRTerrainSelectedObjectOgreWindow.py 2007-06-22 23:32:23 UTC (rev 11) +++ trunk/lib/rorterraineditor/RoRTerrainSelectedObjectOgreWindow.py 2007-06-22 23:53:11 UTC (rev 12) @@ -8,11 +8,11 @@ from random import random class RoRTerrainSelectedObjectOgreWindow(wxOgreWindow): - def __init__(self, parent, ID, RoRTerrainOgreWindow, size = wx.Size(200,200), renderSystem = "OpenGL", **kwargs): + def __init__(self, parent, ID, RoRTerrainOgreWindow, size = wx.Size(200,200), **kwargs): self.sceneManager = RoRTerrainOgreWindow.sceneManager self.mainWindow = RoRTerrainOgreWindow self.rand = str(random()) - wxOgreWindow.__init__(self, parent, ID, size = size, renderSystem = renderSystem, **kwargs) + wxOgreWindow.__init__(self, parent, ID, size = size, **kwargs) self.parent = parent self.camalpha = 0 self.radius = 40 Modified: trunk/lib/rorterraineditor/RoRTerrainSelectedObjectTopOgreWindow.py =================================================================== --- trunk/lib/rorterraineditor/RoRTerrainSelectedObjectTopOgreWindow.py 2007-06-22 23:32:23 UTC (rev 11) +++ trunk/lib/rorterraineditor/RoRTerrainSelectedObjectTopOgreWindow.py 2007-06-22 23:53:11 UTC (rev 12) @@ -8,11 +8,11 @@ from random import random class RoRTerrainSelectedObjectTopOgreWindow(wxOgreWindow): - def __init__(self, parent, ID, RoRTerrainOgreWindow, size = wx.Size(200,200), renderSystem = "OpenGL", **kwargs): + def __init__(self, parent, ID, RoRTerrainOgreWindow, size = wx.Size(200,200), **kwargs): self.sceneManager = RoRTerrainOgreWindow.sceneManager self.mainWindow = RoRTerrainOgreWindow self.rand = str(random()) - wxOgreWindow.__init__(self, parent, ID, size = size, renderSystem = renderSystem, **kwargs) + wxOgreWindow.__init__(self, parent, ID, size = size, **kwargs) self.parent = parent self.distance = 50 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-06-24 10:03:25
|
Revision: 19 http://roreditor.svn.sourceforge.net/roreditor/?rev=19&view=rev Author: rorthomas Date: 2007-06-24 03:03:23 -0700 (Sun, 24 Jun 2007) Log Message: ----------- * removed old gui stuff * improved bugreport to include the ror logs Modified Paths: -------------- trunk/lib/ror/bugreport.py Removed Paths: ------------- trunk/lib/ror/SettingsFrame.py Deleted: trunk/lib/ror/SettingsFrame.py =================================================================== --- trunk/lib/ror/SettingsFrame.py 2007-06-24 09:43:41 UTC (rev 18) +++ trunk/lib/ror/SettingsFrame.py 2007-06-24 10:03:23 UTC (rev 19) @@ -1,232 +0,0 @@ -#Thomas Fischer 31/05/2007, th...@th... -from wxogre.OgreManager import * -from ror.RoROgreWindow import * -from ror.rorsettings import * -from ror.rorcommon import * -from RoRTerrainOgreWindow import * -from RoRTerrainSelectedObjectOgreWindow import * -from RoRTerrainSelectedObjectTopOgreWindow import * - -# -*- coding: iso-8859-1 -*- -# Don't modify comment - -import wx -#[inc]add your include files here - -#[inc]end your include - -class MyDlg(wx.Dialog): - def __init__(self,parent,id = -1,title = '',pos = wx.Point(0,0),size = wx.Size(440,375),style = wx.DEFAULT_DIALOG_STYLE,name = 'dialogBox'): - pre=wx.PreDialog() - self.OnPreCreate() - pre.Create(parent,id,title,pos,size,wx.CAPTION|wx.RESIZE_BORDER|wx.SYSTEM_MENU|wx.CLOSE_BOX|wx.DIALOG_NO_PARENT|wx.MINIMIZE_BOX|wx.MAXIMIZE_BOX,name) - self.PostCreate(pre) - self.initBefore() - self.VwXinit() - self.initAfter() - - def __del__(self): - self.Ddel() - return - - - def VwXinit(self): - self.fileImgBuf=[None] * 1 - self.fileImgBuf[0] = wx.Bitmap("D:/projects/old/rorterraineditor_0_0_3/splash.bmp",wx.BITMAP_TYPE_BMP) - self.panelBitmapImg0=self.fileImgBuf[0]; - self.panelBitmap = wx.Panel(self,-1,wx.Point(3,3),wx.Size(428,125)) - self.panelBitmap.Bind(wx.EVT_ERASE_BACKGROUND,self.VwXpanelBitmap_VwXEvOnEraseBackground) - self.txtRoRDir = wx.TextCtrl(self,-1,"",wx.Point(6,137),wx.Size(100,21)) - self.btnSelectRoRDir = wx.Button(self,-1,"",wx.Point(353,137),wx.Size(75,21)) - self.btnSelectRoRDir.SetLabel("SelectRoR") - self.wxnb11c = wx.Notebook(self,-1,wx.Point(3,167),wx.Size(20,20)) - self.pn12c = wx.Panel(self.wxnb11c,-1,wx.Point(4,22),wx.Size(420,103)) - self.wxnb11c.AddPage(self.pn12c,'General Settings',0) - self.lblFPS = wx.StaticText(self.pn12c,-1,"",wx.Point(6,6),wx.Size(50,13),wx.ST_NO_AUTORESIZE) - self.lblFPS.SetLabel("FPS: 30") - self.sbFPS = wx.ScrollBar(self.pn12c,-1,wx.Point(62,6),wx.Size(20,20),wx.SB_HORIZONTAL) - self.Bind(wx.EVT_SCROLL,self.sbFPS_VwXEvOnScrollValue,self.sbFPS) - self.lblWaterTrans = wx.StaticText(self.pn12c,-1,"",wx.Point(6,38),wx.Size(145,20),wx.ST_NO_AUTORESIZE) - self.lblWaterTrans.SetLabel("Water Transparency: 10%") - self.sbWaterTrans = wx.ScrollBar(self.pn12c,-1,wx.Point(157,38),wx.Size(20,20),wx.SB_HORIZONTAL) - self.Bind(wx.EVT_SCROLL,self.sbWaterTrans_VwXEvOnScrollValue,self.sbWaterTrans) - self.pn21c = wx.Panel(self.wxnb11c,-1,wx.Point(0,0),wx.Size(20,20)) - self.wxnb11c.AddPage(self.pn21c,'Updates: 1',0) - self.btnCheckUpdates = wx.Button(self.pn21c,-1,"",wx.Point(3,3),wx.Size(412,25)) - self.btnCheckUpdates.SetLabel("Check for Updates!") - self.Bind(wx.EVT_BUTTON,self.btnCheckUpdates_VwXEvOnButtonClick,self.btnCheckUpdates) - self.lblUpdates = wx.StaticText(self.pn21c,-1,"",wx.Point(3,34),wx.Size(412,18),wx.ST_NO_AUTORESIZE) - self.btnStartTerrain = wx.Panel(self,-1,wx.Point(3,302),wx.Size(428,45)) - self.btnStartRoR = wx.Button(self.btnStartTerrain,-1,"",wx.Point(3,3),wx.Size(20,20)) - self.btnStartRoR.SetLabel("Start RoR") - self.Bind(wx.EVT_BUTTON,self.btnStartRoR_VwXEvOnButtonClick,self.btnStartRoR) - self.btnTerrainEditor = wx.Button(self.btnStartTerrain,-1,"",wx.Point(88,3),wx.Size(20,20)) - self.btnTerrainEditor.SetLabel("Terrain Editor") - self.Bind(wx.EVT_BUTTON,self.btnTerrainEditor_VwXEvOnButtonClick,self.btnTerrainEditor) - self.btnTruckEditor = wx.Button(self.btnStartTerrain,-1,"",wx.Point(173,3),wx.Size(20,20)) - self.btnTruckEditor.Enable(False) - self.btnTruckEditor.SetLabel("Truck Editor") - self.Bind(wx.EVT_BUTTON,self.btnTruckEditor_VwXEvOnButtonClick,self.btnTruckEditor) - self.btnExit = wx.Button(self.btnStartTerrain,-1,"",wx.Point(343,3),wx.Size(20,20)) - self.btnExit.SetLabel("Exit") - self.Bind(wx.EVT_BUTTON,self.btnExit_VwXEvOnButtonClick,self.btnExit) - self.btnTruckChecker = wx.Button(self.btnStartTerrain,-1,"",wx.Point(258,3),wx.Size(20,20)) - self.btnTruckChecker.SetLabel("Truck Checker") - self.Bind(wx.EVT_BUTTON,self.btnTruckChecker_VwXEvOnButtonClick,self.btnTruckChecker) - self.sz4s = wx.BoxSizer(wx.VERTICAL) - self.sz6s = wx.BoxSizer(wx.HORIZONTAL) - self.sz13s = wx.BoxSizer(wx.VERTICAL) - self.sz15s = wx.BoxSizer(wx.HORIZONTAL) - self.sz18s = wx.BoxSizer(wx.HORIZONTAL) - self.sz22s = wx.BoxSizer(wx.VERTICAL) - self.sz26s = wx.BoxSizer(wx.HORIZONTAL) - self.sz4s.Add(self.panelBitmap,0,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz4s.Add(self.sz6s,0,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz4s.Add(self.wxnb11c,1,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz4s.Add(self.btnStartTerrain,0,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz6s.Add(self.txtRoRDir,1,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz6s.Add(self.btnSelectRoRDir,0,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz13s.Add(self.sz15s,0,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz13s.Add(self.sz18s,0,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz15s.Add(self.lblFPS,0,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz15s.Add(self.sbFPS,1,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz18s.Add(self.lblWaterTrans,0,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz18s.Add(self.sbWaterTrans,1,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz22s.Add(self.btnCheckUpdates,0,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz22s.Add(self.lblUpdates,1,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz26s.Add(self.btnStartRoR,1,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz26s.Add(self.btnTerrainEditor,1,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz26s.Add(self.btnTruckEditor,1,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz26s.Add(self.btnTruckChecker,1,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.sz26s.Add(self.btnExit,1,wx.TOP|wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND|wx.FIXED_MINSIZE,3) - self.SetSizer(self.sz4s);self.SetAutoLayout(1);self.Layout(); - self.pn12c.SetSizer(self.sz13s);self.pn12c.SetAutoLayout(1);self.pn12c.Layout(); - self.pn21c.SetSizer(self.sz22s);self.pn21c.SetAutoLayout(1);self.pn21c.Layout(); - self.btnStartTerrain.SetSizer(self.sz26s);self.btnStartTerrain.SetAutoLayout(1);self.btnStartTerrain.Layout(); - self.Refresh() - return - def VwXDrawBackImg(self,event,win,bitMap,opz): - if (event.GetDC()): - dc=event.GetDC() - else: dc = wx.ClientDC(win) - dc.SetBackground(wx.Brush(win.GetBackgroundColour(),wx.SOLID)) - dc.Clear() - if (opz==0): - dc.DrawBitmap(bitMap,0, 0, 0) - if (opz==1): - rec=wx.Rect() - rec=win.GetClientRect() - rec.SetLeft((rec.GetWidth()-bitMap.GetWidth()) / 2) - rec.SetTop ((rec.GetHeight()-bitMap.GetHeight()) / 2) - dc.DrawBitmap(bitMap,rec.GetLeft(),rec.GetTop(),0) - if (opz==2): - rec=wx.Rect() - rec=win.GetClientRect() - for y in range(0,rec.GetHeight(),bitMap.GetHeight()): - for x in range(0,rec.GetWidth(),bitMap.GetWidth()): - dc.DrawBitmap(bitMap,x,y,0) - - def VwXDelComp(self): - return - def VwXpanelBitmap_VwXEvOnEraseBackground(self,event): - self.VwXDrawBackImg(event,self.panelBitmap,self.panelBitmapImg0,0) - self.panelBitmap_VwXEvOnEraseBackground(event) - event.Skip(False) - - return - -#[win]add your code here - def sbWaterTrans_VwXEvOnScrollValue(self,event): #init function - #[190]Code event VwX...Don't modify[190]# - #add your code here - - return #end function - - def sbFPS_VwXEvOnScrollValue(self,event): #init function - #[18f]Code event VwX...Don't modify[18f]# - #add your code here - - return #end function - - def btnTruckEditor_VwXEvOnButtonClick(self,event): #init function - #[194]Code event VwX...Don't modify[194]# - #add your code here - - return #end function - - def btnTruckChecker_VwXEvOnButtonClick(self,event): #init function - #[196]Code event VwX...Don't modify[196]# - #add your code here - - return #end function - - def btnTerrainEditor_VwXEvOnButtonClick(self,event): #init function - #[193]Code event VwX...Don't modify[193]# - #add your code here - - return #end function - - def btnStartRoR_VwXEvOnButtonClick(self,event): #init function - #[192]Code event VwX...Don't modify[192]# - #add your code here - - return #end function - - def btnExit_VwXEvOnButtonClick(self,event): #init function - #[195]Code event VwX...Don't modify[195]# - #add your code here - - return #end function - - def btnCheckUpdates_VwXEvOnButtonClick(self,event): #init function - #[191]Code event VwX...Don't modify[191]# - #add your code here - - return #end function - - - def panelBitmap_VwXEvOnEraseBackground(self,event): #init function - #[504]Code event VwX...Don't modify[504]# - #add your code here - event.Skip() - - return #end function - - - def initBefore(self): - #add your code here - - return - - def initAfter(self): - #add your code here - self.Centre() - return - - def OnPreCreate(self): - #add your code here - - return - - def Ddel(self): #init function - #[158]Code VwX...Don't modify[157]# - #add your code here - - return #end function - -#[win]end your code - - -class App(wx.App): - def OnInit(self): - wx.InitAllImageHandlers() - self.main = MyDlg.MyDlg(None,-1,'') - self.main.ShowModal() - return 0 - -def main(): - application = App(0) - application.MainLoop() - -if __name__ == '__main__': - main() Modified: trunk/lib/ror/bugreport.py =================================================================== --- trunk/lib/ror/bugreport.py 2007-06-24 09:43:41 UTC (rev 18) +++ trunk/lib/ror/bugreport.py 2007-06-24 10:03:23 UTC (rev 19) @@ -1,10 +1,11 @@ import wx, os, os.path +import rorsettings BUGREPORT_FILENAME = "hwinfo.txt" class BugReportFrame(wx.Frame): def __init__(self, *args, **kwds): - kwds["style"] = wx.CLOSE_BOX | wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | wx.CLIP_CHILDREN + kwds["style"] = wx.CLOSE_BOX | wx.MINIMIZE_BOX | wx.SYSTEM_MENU | wx.CAPTION | wx.CLIP_CHILDREN wx.Frame.__init__(self, *args, **kwds) self.panel = wx.Panel(self, wx.ID_ANY) @@ -14,9 +15,11 @@ * it is good to take screenshots of errors, glitches and so on. you can insert imageshack.us or equivalent URLs below.""" self.lblText1 = wx.StaticText(self.panel, wx.ID_ANY, desc) - self.TextCtrlOwn = wx.TextCtrl(self.panel, wx.ID_ANY, style=wx.TE_RICH2|wx.TE_AUTO_URL|wx.TE_MULTILINE|wx.TE_READONLY,size=wx.Size(400,200)) - self.lblText2 = wx.StaticText(self.panel, wx.ID_ANY, "The gathered system information, that will be send along the description:") - self.TextCtrl = wx.TextCtrl(self.panel, wx.ID_ANY, style=wx.TE_RICH2|wx.TE_AUTO_URL|wx.TE_MULTILINE|wx.TE_READONLY,size=wx.Size(400,200)) + self.TextCtrlOwn = wx.TextCtrl(self.panel, wx.ID_ANY, style=wx.TE_RICH2|wx.TE_AUTO_URL|wx.TE_MULTILINE,size=wx.Size(400,200)) + desc2 = """The gathered system information, that will be send along the description: +* you may want to correct it and/or remove details you dont want to share with us.""" + self.lblText2 = wx.StaticText(self.panel, wx.ID_ANY, desc2) + self.TextCtrl = wx.TextCtrl(self.panel, wx.ID_ANY, style=wx.TE_RICH2|wx.TE_AUTO_URL|wx.TE_MULTILINE,size=wx.Size(400,200)) self.btnSubmit = wx.Button(self.panel, wx.ID_ANY, "Submit") self.btnCancel = wx.Button(self.panel, wx.ID_ANY, "Cancel") self.Bind(wx.EVT_BUTTON, self.onSubmit, self.btnSubmit) @@ -43,6 +46,11 @@ outfile.write(content) outfile.close() + def readFile(self, filename): + outfile = open(filename, 'r') + t = outfile.read() + outfile.close() + return t # not working # def installPyWin(self): # dlg = wx.MessageDialog(self, "Python Windows extensions are required for this to work. I will try install them now in the Registry.\n", "Error", wx.OK | wx.ICON_INFORMATION) @@ -63,7 +71,8 @@ self.Close() return "" - txt = "" + txt = "Hardware Information:\n" + txt += "==========================\n" try: dlg = wx.MessageDialog(self, "This program will now try to figure out some Hardware Information. That can take a minute or so.", "Notice", wx.OK | wx.ICON_INFORMATION) dlg.ShowModal() @@ -113,6 +122,57 @@ txt += "Sound card: %s\n" % hw.sound_board.product except: pass + + try: + txt += "==========================\n" + txt += "Ogre.log following\n" + txt += "==========================\n" + ogrelogfn = rorsettings.getSettings().getRoRDir() + txt += self.readFile(os.path.join(ogrelogfn,"Ogre.log")) + except: + txt += "Ogre.log ERROR\n" + pass + + try: + txt += "==========================\n" + txt += "ogre.cfg following\n" + txt += "==========================\n" + ogrelogfn = rorsettings.getSettings().getRoRDir() + txt += self.readFile(os.path.join(ogrelogfn,"ogre.cfg")) + except: + txt += "ogre.cfg ERROR\n" + pass + + try: + txt += "==========================\n" + txt += "plugins.cfg following\n" + txt += "==========================\n" + ogrelogfn = rorsettings.getSettings().getRoRDir() + txt += self.readFile(os.path.join(ogrelogfn,"plugins.cfg")) + except: + txt += "plugins.cfg ERROR\n" + pass + + try: + txt += "==========================\n" + txt += "RoR.cfg following\n" + txt += "==========================\n" + ogrelogfn = rorsettings.getSettings().getRoRDir() + txt += self.readFile(os.path.join(ogrelogfn,"RoR.cfg")) + except: + txt += "RoR.cfg ERROR\n" + pass + + try: + txt += "==========================\n" + txt += "resources.cfg following\n" + txt += "==========================\n" + ogrelogfn = rorsettings.getSettings().getRoRDir() + txt += self.readFile(os.path.join(ogrelogfn,"resources.cfg")) + except: + txt += "resources.cfg ERROR\n" + pass + return txt def LoadHWFile(self): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-06-25 22:19:59
|
Revision: 31 http://roreditor.svn.sourceforge.net/roreditor/?rev=31&view=rev Author: rorthomas Date: 2007-06-25 15:19:55 -0700 (Mon, 25 Jun 2007) Log Message: ----------- * new camera movement in terrain editor * added check for spaces in ror direcotory name Modified Paths: -------------- trunk/lib/ror/starter.py trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py trunk/lib/rortruckeditor/RoRTruckOgreWindow.py Modified: trunk/lib/ror/starter.py =================================================================== --- trunk/lib/ror/starter.py 2007-06-25 21:53:15 UTC (rev 30) +++ trunk/lib/ror/starter.py 2007-06-25 22:19:55 UTC (rev 31) @@ -85,17 +85,28 @@ pass def checkRoRDir(self, fn): - return os.path.isfile(os.path.join(fn,"RoR.exe")) + withoutspaces = (fn.find(" ") == -1) + if not withoutspaces: + dlg = wx.MessageDialog(self, "Your RoR installation directory contains spaces. Rename/move it to a directory with no spaces.\nFor example c:\\ror", "Error", wx.OK | wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() + return False + + exists = os.path.isfile(os.path.join(fn,"RoR.exe")) + if not exists: + dlg = wx.MessageDialog(self, "RoR.exe not found in the selected directory!\nPlease select a new directory!", "Error", wx.OK | wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() + return False + return True + def OnSelectRoRDir(self, event=None): dialog = wx.DirDialog(self, "Choose RoR Directory", "") res = dialog.ShowModal() if res == wx.ID_OK: newpath = dialog.GetPath() if not self.checkRoRDir(newpath): - dlg = wx.MessageDialog(self, "RoR.exe not found in that directory!", "Error", wx.OK | wx.ICON_INFORMATION) - dlg.ShowModal() - dlg.Destroy() return self.rordir = newpath Modified: trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py =================================================================== --- trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py 2007-06-25 21:53:15 UTC (rev 30) +++ trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py 2007-06-25 22:19:55 UTC (rev 31) @@ -33,6 +33,8 @@ self.trucks = {} self.comments = {} self.meshes = {} + self.moveVector = None + self.moveForce = 0 wxOgreWindow.__init__(self, self.parent, self.ID, size = self.size, **self.kwargs) def OnFrameStarted(self): @@ -56,6 +58,13 @@ else: self.TerrainSelectNode.setScale(0,0,0) + + #move cam a bit + if not self.moveVector is None and self.moveForce > 0: + self.camera.moveRelative(self.moveVector * self.moveForce) + self.moveForce *= 0.75 + if self.moveForce < 0.000: + self.moveForce = 0 def OnFrameEnded(self): pass @@ -935,21 +944,26 @@ d = 5 if event.ShiftDown(): d = 30 - if event.m_keyCode == 65: # A, wx.WXK_LEFT: - self.camera.moveRelative(ogre.Vector3(-d,0,0)) + self.moveVector = ogre.Vector3(-1,0,0) + self.moveForce = d elif event.m_keyCode == 68: # D, wx.WXK_RIGHT: - self.camera.moveRelative(ogre.Vector3(d,0,0)) + self.moveVector = ogre.Vector3(1,0,0) + self.moveForce = d elif event.m_keyCode == 87: # W ,wx.WXK_UP: - self.camera.moveRelative(ogre.Vector3(0,0,-d)) - elif event.m_keyCode == 81: # Q, wx.WXK_LEFT: - self.toggleTranslationRotationMode() + self.moveVector = ogre.Vector3(0,0,-1) + self.moveForce = d elif event.m_keyCode == 83: # S, wx.WXK_DOWN: - self.camera.moveRelative(ogre.Vector3(0,0,d)) + self.moveVector = ogre.Vector3(0,0,1) + self.moveForce = d elif event.m_keyCode == wx.WXK_PAGEUP: - self.camera.moveRelative(ogre.Vector3(0,d,0)) + self.moveVector = ogre.Vector3(0,1,0) + self.moveForce = d elif event.m_keyCode == wx.WXK_PAGEDOWN: - self.camera.moveRelative(ogre.Vector3(0,-d,0)) + self.moveVector = ogre.Vector3(0,-1,0) + self.moveForce = d + elif event.m_keyCode == 81: # Q, wx.WXK_LEFT: + self.toggleTranslationRotationMode() elif event.m_keyCode == 84: # 84 = T if self.filtering == ogre.TFO_BILINEAR: self.filtering = ogre.TFO_TRILINEAR Modified: trunk/lib/rortruckeditor/RoRTruckOgreWindow.py =================================================================== --- trunk/lib/rortruckeditor/RoRTruckOgreWindow.py 2007-06-25 21:53:15 UTC (rev 30) +++ trunk/lib/rortruckeditor/RoRTruckOgreWindow.py 2007-06-25 22:19:55 UTC (rev 31) @@ -296,7 +296,7 @@ #print tree['globals'][0]['data'][2] matname = tree['globals'][0]['data'][2] - print matname + #print matname idstr = str(smgid) sm = self.sceneManager.createManualObject("manualsmg"+idstr) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-06-28 05:41:14
|
Revision: 42 http://roreditor.svn.sourceforge.net/roreditor/?rev=42&view=rev Author: rorthomas Date: 2007-06-27 22:41:13 -0700 (Wed, 27 Jun 2007) Log Message: ----------- Modified Paths: -------------- trunk/lib/ror/starter.py trunk/lib/ror/svn.py Modified: trunk/lib/ror/starter.py =================================================================== --- trunk/lib/ror/starter.py 2007-06-28 05:31:59 UTC (rev 41) +++ trunk/lib/ror/starter.py 2007-06-28 05:41:13 UTC (rev 42) @@ -59,7 +59,8 @@ self.__do_layout() def OnUpdate(self, event=None): - + import svn + svn.run() def OnStartRoR(self, event=None): #escape spaces! @@ -139,6 +140,7 @@ sizer_panel.Add(self.btnStartTerrainEditor, 0, wx.EXPAND, 0) sizer_panel.Add(self.btnStartTruckEditor, 0, wx.EXPAND, 0) sizer_panel.Add(self.btnBugReport, 0, wx.EXPAND, 0) + sizer_panel.Add(self.btnUpdate, 0, wx.EXPAND, 0) sizer_panel.Add(self.btnExit, 0, wx.EXPAND, 0) self.panel.SetSizer(sizer_panel) Modified: trunk/lib/ror/svn.py =================================================================== --- trunk/lib/ror/svn.py 2007-06-28 05:31:59 UTC (rev 41) +++ trunk/lib/ror/svn.py 2007-06-28 05:41:13 UTC (rev 42) @@ -4,6 +4,16 @@ URL = "http://roreditor.svn.sourceforge.net/svnroot/roreditor/trunk" changes = 0 +def getRootPath(): + path = os.path.dirname(os.path.abspath(__file__)) + if os.path.isdir(os.path.join(path, "media")): + print path + return path + path = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)),"..\\..")) + if os.path.isdir(os.path.join(path, "media")): + print path + return path + def notify(event_dict): global changes changes += 1 @@ -16,7 +26,7 @@ def svnupdate(): global changes - path = os.path.dirname(os.path.abspath(__file__)) + path = getRootPath() try: import pysvn client = pysvn.Client() @@ -31,12 +41,13 @@ print "updated to revision %d." % revision_after if revision_before == revision_after and changes == 2: print "already up to date!" - except: - print "error while checkout!" + except Exception, inst: + print "error while updating: " + str(inst) + print "done." def svncheckout(): print "checkout" - path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "svnco") + path = getRootPath() try: import pysvn client = pysvn.Client() @@ -46,7 +57,7 @@ print "error while checkout!" def run(): - if os.path.isdir(os.path.join(os.path.dirname(os.path.abspath(__file__)), "media")): + if os.path.isdir(os.path.join(getRootPath(), "media")): svnupdate() else: svncheckout() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-06-28 19:17:35
|
Revision: 59 http://roreditor.svn.sourceforge.net/roreditor/?rev=59&view=rev Author: rorthomas Date: 2007-06-28 12:17:35 -0700 (Thu, 28 Jun 2007) Log Message: ----------- * small svn log changes * terrain truck bugfixes Modified Paths: -------------- trunk/lib/ror/svn.py trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py Modified: trunk/lib/ror/svn.py =================================================================== --- trunk/lib/ror/svn.py 2007-06-28 19:05:32 UTC (rev 58) +++ trunk/lib/ror/svn.py 2007-06-28 19:17:35 UTC (rev 59) @@ -67,8 +67,11 @@ if revision_before == revision_after and changes == 2: print "already up to date!" elif changes > 2: - print "updated! please restart the application!" - showLog(client, revision_before + 1, revision_after) + if revision_before != revision_after: + print "updated! please restart the application!" + showLog(client, revision_before + 1, revision_after) + else: + print "no files updated, but restored! please restart the application!" except Exception, inst: print "error while updating: " + str(inst) print "done." Modified: trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py =================================================================== --- trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py 2007-06-28 19:05:32 UTC (rev 58) +++ trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py 2007-06-28 19:17:35 UTC (rev 59) @@ -787,78 +787,78 @@ if not 'nodes' in p.tree.keys() or not 'beams' in p.tree.keys() : return False - #try: - self.randomcounter +=1 + try: + self.randomcounter +=1 - myManualObject = self.sceneManager.createManualObject("manual"+fn+str(self.randomcounter)) + myManualObject = self.sceneManager.createManualObject("manual"+fn+str(self.randomcounter)) - #myManualObjectMaterial = ogre.MaterialManager.getSingleton().create("manualmaterial"+truckname+str(self.randomcounter),"debugger"); - #myManualObjectMaterial.setReceiveShadows(False) - #myManualObjectMaterial.getTechnique(0).setLightingEnabled(True) - #myManualObjectMaterial.getTechnique(0).getPass(0).setDiffuse(0,0,1,0) - #myManualObjectMaterial.getTechnique(0).getPass(0).setAmbient(0,0,1) - #myManualObjectMaterial.getTechnique(0).getPass(0).setSelfIllumination(0,0,1) - #myManualObjectMaterial.getTechnique(0).getPass(0).setCullingMode(ogre.CULL_ANTICLOCKWISE) + #myManualObjectMaterial = ogre.MaterialManager.getSingleton().create("manualmaterial"+truckname+str(self.randomcounter),"debugger"); + #myManualObjectMaterial.setReceiveShadows(False) + #myManualObjectMaterial.getTechnique(0).setLightingEnabled(True) + #myManualObjectMaterial.getTechnique(0).getPass(0).setDiffuse(0,0,1,0) + #myManualObjectMaterial.getTechnique(0).getPass(0).setAmbient(0,0,1) + #myManualObjectMaterial.getTechnique(0).getPass(0).setSelfIllumination(0,0,1) + #myManualObjectMaterial.getTechnique(0).getPass(0).setCullingMode(ogre.CULL_ANTICLOCKWISE) - matname = "" - if fn[-4:].lower() == "load": - matname = 'mysimple/loadcolor' - elif fn[-5:].lower() == "truck": - matname = 'mysimple/truckcolor' - - myManualObject.useIndexes = True - myManualObject.estimateVertexCount(2000) - myManualObject.estimateIndexCount(2000) + matname = "" + if fn[-4:].lower() == "load": + matname = 'mysimple/loadcolor' + elif fn[-5:].lower() == "truck": + matname = 'mysimple/truckcolor' + + myManualObject.useIndexes = True + myManualObject.estimateVertexCount(2000) + myManualObject.estimateIndexCount(2000) - myManualObject.begin(matname+"grid", ogre.RenderOperation.OT_LINE_LIST) - for nodeobj in p.tree['nodes']: - if nodeobj.has_key('type'): - continue - node = nodeobj['data'] - myManualObject.position(float(node[1]),float(node[2]),float(node[3])) - for beamobj in p.tree['beams']: - if beamobj.has_key('type'): - continue - beam = beamobj['data'] - myManualObject.index(int(beam[0])) - myManualObject.index(int(beam[1])) - myManualObject.end() - myManualObject.begin(matname, ogre.RenderOperation.OT_TRIANGLE_LIST) - for nodeobj in p.tree['nodes']: - if nodeobj.has_key('type'): - continue - node = nodeobj['data'] - myManualObject.position(float(node[1]),float(node[2]),float(node[3])) - faces = [] - for smobj in p.tree['submeshgroups']: - for cabobj in smobj['cab']: - if cabobj.has_key('type'): + myManualObject.begin(matname+"grid", ogre.RenderOperation.OT_LINE_LIST) + for nodeobj in p.tree['nodes']: + if nodeobj.has_key('type'): continue - cab = cabobj['data'] - #print "########face" - if cab != []: - try: - myManualObject.triangle(int(cab[0]),int(cab[1]),int(cab[2])) - except: - print "error with cab: " + str(cab) - pass - myManualObject.end() - mesh = myManualObject.convertToMesh("manual"+fn+str(self.randomcounter)) - entity = self.sceneManager.createEntity("manualtruckent"+fn+str(self.randomcounter), - "manual"+fn+str(self.randomcounter)) - #trucknode = self.sceneManager.getRootSceneNode().createChildSceneNode() - myManualObjectNode = self.sceneManager.getRootSceneNode().createChildSceneNode("manualnode"+fn+str(self.randomcounter)) - myManualObjectNode.attachObject(entity) - - myManualObjectNode.attachObject(myManualObject) - - truckname = os.path.basename(fn) - self.trucksorder.append(truckname) - self.trucks[truckname] = myManualObjectNode - return myManualObjectNode, truckname - #except: - # print "error creating truck: " + truckname - # return None + node = nodeobj['data'] + myManualObject.position(float(node[1]),float(node[2]),float(node[3])) + for beamobj in p.tree['beams']: + if beamobj.has_key('type'): + continue + beam = beamobj['data'] + myManualObject.index(int(beam[0])) + myManualObject.index(int(beam[1])) + myManualObject.end() + myManualObject.begin(matname, ogre.RenderOperation.OT_TRIANGLE_LIST) + for nodeobj in p.tree['nodes']: + if nodeobj.has_key('type'): + continue + node = nodeobj['data'] + myManualObject.position(float(node[1]),float(node[2]),float(node[3])) + faces = [] + for smobj in p.tree['submeshgroups']: + for cabobj in smobj['cab']: + if cabobj.has_key('type'): + continue + cab = cabobj['data'] + #print "########face" + if cab != []: + try: + myManualObject.triangle(int(cab[0]),int(cab[1]),int(cab[2])) + except: + print "error with cab: " + str(cab) + pass + myManualObject.end() + mesh = myManualObject.convertToMesh("manual"+fn+str(self.randomcounter)) + entity = self.sceneManager.createEntity("manualtruckent"+fn+str(self.randomcounter), + "manual"+fn+str(self.randomcounter)) + #trucknode = self.sceneManager.getRootSceneNode().createChildSceneNode() + myManualObjectNode = self.sceneManager.getRootSceneNode().createChildSceneNode("manualnode"+fn+str(self.randomcounter)) + myManualObjectNode.attachObject(entity) + + myManualObjectNode.attachObject(myManualObject) + + truckname = os.path.basename(fn) + self.trucksorder.append(truckname) + self.trucks[truckname] = myManualObjectNode + return myManualObjectNode, truckname + except: + print "error creating truck: " + truckname + return None def getPointedPosition(self, event): x, y = event.GetPosition() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-06-28 22:29:22
|
Revision: 62 http://roreditor.svn.sourceforge.net/roreditor/?rev=62&view=rev Author: rorthomas Date: 2007-06-28 15:29:21 -0700 (Thu, 28 Jun 2007) Log Message: ----------- * short patch on trucks loading without faces - not yet working * updated about dialog Modified Paths: -------------- trunk/lib/ror/rorcommon.py trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py Modified: trunk/lib/ror/rorcommon.py =================================================================== --- trunk/lib/ror/rorcommon.py 2007-06-28 21:35:22 UTC (rev 61) +++ trunk/lib/ror/rorcommon.py 2007-06-28 22:29:21 UTC (rev 62) @@ -1,8 +1,14 @@ import wx def ShowOnAbout(event = None): - dlg = wx.MessageDialog(self, "RoR Toolkit version 0.0.3\n" - "Authors: Thomas Fischer", - "About Me", wx.OK | wx.ICON_INFORMATION) + rev = "" + try: + import ror.svn + rev = str(ror.svn.getRevision()) + except: + pass + + dlg = wx.MessageDialog(None, "RoR Toolkit revision %s\nAuthors: Aperion, Thomas" % rev, + "About This", wx.OK | wx.ICON_INFORMATION) dlg.ShowModal() dlg.Destroy() Modified: trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py =================================================================== --- trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py 2007-06-28 21:35:22 UTC (rev 61) +++ trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py 2007-06-28 22:29:21 UTC (rev 62) @@ -842,19 +842,25 @@ continue node = nodeobj['data'] myManualObject.position(float(node[1]),float(node[2]),float(node[3])) - faces = [] - for smobj in p.tree['submeshgroups']: - for cabobj in smobj['cab']: - if cabobj.has_key('type'): - continue - cab = cabobj['data'] - #print "########face" - if cab != []: - try: - myManualObject.triangle(int(cab[0]),int(cab[1]),int(cab[2])) - except: - print "error with cab: " + str(cab) - pass + + print len(p.tree['submeshgroups']) + if not 'submeshgroups' in p.tree.keys() or len(p.tree['submeshgroups']) == 0: + faces = [] + for smobj in p.tree['submeshgroups']: + for cabobj in smobj['cab']: + if cabobj.has_key('type'): + continue + cab = cabobj['data'] + #print "########face" + if cab != []: + try: + myManualObject.triangle(int(cab[0]),int(cab[1]),int(cab[2])) + except: + print "error with cab: " + str(cab) + pass + else: + print "truck has no faces!" + myManualObject.end() mesh = myManualObject.convertToMesh("manual"+fn+str(self.randomcounter)) entity = self.sceneManager.createEntity("manualtruckent"+fn+str(self.randomcounter), @@ -869,7 +875,8 @@ self.trucksorder.append(truckname) self.trucks[truckname] = myManualObjectNode return myManualObjectNode, truckname - except: + except Exception, inst: + print str(inst) print "error creating truck from file: " + fn return None, None This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-06-29 09:37:12
|
Revision: 65 http://roreditor.svn.sourceforge.net/roreditor/?rev=65&view=rev Author: rorthomas Date: 2007-06-29 02:37:09 -0700 (Fri, 29 Jun 2007) Log Message: ----------- * added event.skip() * re-added physics to truck editor / try pressing Q ;) Modified Paths: -------------- trunk/lib/ror/editor.ini trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py trunk/lib/rortruckeditor/RoRTruckOgreWindow.py Modified: trunk/lib/ror/editor.ini =================================================================== --- trunk/lib/ror/editor.ini 2007-06-29 08:34:25 UTC (rev 64) +++ trunk/lib/ror/editor.ini 2007-06-29 09:37:09 UTC (rev 65) @@ -1,6 +1,7 @@ [RigsOfRods] basepath = C:\games\RoR-0.31a - + +# this is a comment [gui] usegui = yes Modified: trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py =================================================================== --- trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py 2007-06-29 08:34:25 UTC (rev 64) +++ trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py 2007-06-29 09:37:09 UTC (rev 65) @@ -946,7 +946,6 @@ self.StartDragLeftX, self.StartDragLeftY = event.GetPosition() #saves position of initial click if event.GetWheelRotation() != 0: - dir = 5 if event.ShiftDown(): dir *= SHIFT_SPEED_FACTOR # speed is increased by a factor of 16 @@ -1005,7 +1004,7 @@ o = self.camera.getDerivedOrientation() print "P: %.3f %.3f %.3f O: %.3f %.3f %.3f %.3f" % (pos.x,pos.y,pos.z, o.w,o.x,o.y,o.z) - event.Skip() + event.Skip() def onKeyUp(self,event): if not self.TerrainLoaded: @@ -1022,4 +1021,6 @@ elif event.m_keyCode == wx.WXK_PAGEUP: self.keyPress.y = 0 elif event.m_keyCode == wx.WXK_PAGEDOWN: - self.keyPress.y = 0 \ No newline at end of file + self.keyPress.y = 0 + event.Skip() + \ No newline at end of file Modified: trunk/lib/rortruckeditor/RoRTruckOgreWindow.py =================================================================== --- trunk/lib/rortruckeditor/RoRTruckOgreWindow.py 2007-06-29 08:34:25 UTC (rev 64) +++ trunk/lib/rortruckeditor/RoRTruckOgreWindow.py 2007-06-29 09:37:09 UTC (rev 65) @@ -25,6 +25,7 @@ self.sceneManager = None self.uvFrame = None self.clearlist = {'entity':[]} + self.bodies = [] self.initScene() wxOgreWindow.__init__(self, parent, ID, size = size, **kwargs) @@ -32,8 +33,8 @@ if not self.sceneManager is None: self.sceneManager.destroyAllManualObjects() self.EntityCount = 0 - self.bodies=[] + # try to clear things up try: if self.nodes != {}: @@ -125,7 +126,8 @@ else: option = None - size = 0.05 + # 0.05 + size = 0.1 mass = 0.5 * size inertia = OgreNewt.CalcBoxSolid( mass, size ) @@ -139,7 +141,9 @@ box1.setNormaliseNormals(True) col = OgreNewt.Ellipsoid( self.World, size ) - bod = OgreNewt.Body( self.World, col ) + bod = OgreNewt.Body(self.World, col) + self.bodies.append (bod) + del col bod.attachToNode( box1node ) @@ -399,8 +403,8 @@ self.bodies.append(bod) del stat_col - return - ## make a simple rope. + def createTestRope(self): + ## make a simple rope. size = Ogre.Vector3(5,0.5,0.5) pos = Ogre.Vector3(0,20,0) orient = Ogre.Quaternion.IDENTITY @@ -429,14 +433,15 @@ parent = child ## NOW - we also have to kepe copies of the joints, otherwise they get deleted !!! - self.bodies.append ( joint) + self.bodies.append (joint) def createGroundPlane(self): plane = ogre.Plane() plane.normal = ogre.Vector3(0, 1, 0) - plane.d = 50 + plane.d = 2 + planesize = 200000 # see http://www.ogre3d.org/docs/api/html/classOgre_1_1MeshManager.html#Ogre_1_1MeshManagera5 - mesh = ogre.MeshManager.getSingleton().createPlane('GroundPlane', "General", plane, 200000, 200000, + mesh = ogre.MeshManager.getSingleton().createPlane('GroundPlane', "General", plane, planesize, planesize, 20, 20, True, 1, 50.0, 50.0, ogre.Vector3(0, 0, 1), ogre.HardwareBuffer.HBU_STATIC_WRITE_ONLY, ogre.HardwareBuffer.HBU_STATIC_WRITE_ONLY, @@ -444,8 +449,18 @@ entity = self.sceneManager.createEntity('groundent', 'GroundPlane') entity.setMaterialName('mysimple/truckEditorGround') self.planenode = self.sceneManager.getRootSceneNode().createChildSceneNode() - self.planenode.attachObject(entity) + self.planenode.attachObject(entity) + #col = OgreNewt.TreeCollision(self.World, self.planenode, True) + groundthickness = 50 + boxsize = ogre.Vector3(planesize, groundthickness, planesize) + col = OgreNewt.Box(self.World, boxsize ) + bod = OgreNewt.Body( self.World, col ) + self.bodies.append(bod) + bod.setPositionOrientation( Ogre.Vector3(0.0, -groundthickness - plane.d, 0.0), Ogre.Quaternion.IDENTITY ) + del col + + def LoadTruck(self, fn): if not os.path.isfile(fn): print "truck file not found: "+fn @@ -459,8 +474,10 @@ self.initScene() self.CreateTruck(p.tree) + self.createTestRope() + def reLoadTruck(self): if not os.path.isfile(self.filename): return This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ap...@us...> - 2007-06-29 22:32:09
|
Revision: 67 http://roreditor.svn.sourceforge.net/roreditor/?rev=67&view=rev Author: aperion Date: 2007-06-29 15:32:03 -0700 (Fri, 29 Jun 2007) Log Message: ----------- Added a Camera Class to handle camera movement, Perhaps we can use this class to handled all camera movement in the future. This change moves the camera from a first person view to a third person view. Modified Paths: -------------- trunk/lib/rortruckeditor/RoRTruckOgreWindow.py Added Paths: ----------- trunk/lib/ror/camera.py Added: trunk/lib/ror/camera.py =================================================================== --- trunk/lib/ror/camera.py (rev 0) +++ trunk/lib/ror/camera.py 2007-06-29 22:32:03 UTC (rev 67) @@ -0,0 +1,137 @@ +#Chris Ritchey 29/06/2007, re...@gm... +import ogre.renderer.OGRE as ogre +import math +from random import random + +class Camera: + "Stores information about the camera position" + def __init__(self, rootNode, camera): + self.cameraRadius = 1 + self.camera = camera + self.rand = str(random()) + + self.targetNode = rootNode.createChildSceneNode("cameraTargetNode" + self.rand, ogre.Vector3(0,0,0)) + self.cameraNode = self.targetNode.createChildSceneNode("cameraNode" + self.rand, \ + self.targetNode.getPosition() + ogre.Vector3(0,0, self.cameraRadius))\ + + self.cameraNode.attachObject(self.camera) + self.targetNode.flipVisibility() + + #self.camera.setPosition(self.cameraNode.getPosition()) + #self.camera.lookAt(self.targetNode.getPosition()) + + self.camera.nearClipDistance = 0.1 + self.camera.setAutoAspectRatio(True) + + self.cameraMotion = ogre.Vector3(0,0,0) + + #self.curCoordinate = Cartesian() + #self.curPosition = ogre.Vector3(0,0,0) + #self.newPosition = ogre.Vector3(0,0,0) + #self.origin = ogre.Vector3(0,0,0) + + def move(self, movement, modifier): + #print "I'm here!!: %.3f, %.3f, %.3f" % (movement.x, movement.y, movement.z) + movement *= ogre.Vector3(-1,1,1) + movement /= 5 + + if modifier: + self.cameraNode.translate(self.cameraNode.getOrientation() * movement) + else: + self.targetNode.pitch(ogre.Degree(-movement.y)) + self.targetNode.yaw(ogre.Degree(movement.x)) + self.cameraNode.translate(ogre.Vector3(0,0, movement.z)) + +""" +class Spherical: + "Spherical coordinates class" + def __init__(self): + # coordinates stored as <rho, phi, theta> in radians + self.rho = 0 + self.phi = 0 + self.theta = 0 + + def setCartesian(self, other): + rho = sqrt(other.x**2 + other.y**2 + other.z**2) + phi = atan2(sqrt(other.x**2 + other.z**2), other.y) + theta = atan2(other.x, other.z) + + def cartesian(self): + return ogre.Vector3( + rho * sin(phi) * cos(theta), \ + rho * cos(phi),\ + rho * sin(phi) * sin(theta)) + + def vertical(self, amount): + phi += amount + phi = fabs(fmod(phi, math.pi)) + + def horizontal(self, amount): + #will need adjust the amount by some factor so the same value can be + #used for all three coordinate classes + theta += amount + theta = fabs(fmod(phi, 2*math.pi)) + + def zoom(self, amount): + #will need adjust the amount by some factor so the same value can be + #used for all three coordinate classes + rho += amount + if rho < 0: + rho = 0 + + def moveto(self, amount): + horizontal(self, amount.x) + vertical(self, amount.y) + zoom(self, amount.z) + +class Cartesian: + "cartesian coordinates class" + def __init__(self): + self.position = ogre.Vector3(0,0,0) + def setCartesian(self, other): + self.position = other + + def cartesian(self): + return self.position + + def vertical(self, amount): + self.position.y += amount + + def horizontal(self, amount): + self.position.z += amount + + def zoom(self, amount): + self.position.x += amount + + def moveto(self, amount): + self.position += amount + +class Cylindrical: + "cartesian coordinates class" + def __init__(self): + self.r = 0 + self.theta = 0 + self.z = 0 + + def cartesian(self): + return ogre.Vector3(r*sin(theta), y, r*cos(theta)) + + def vertical(self, amount): + y += amount + + def horizontal(self, amount): + theta += amount + theta = fabs(fmod(phi, 2*math.pi)) + + def zoom(self, amount): + #will need adjust the amount by some factor so the same value can be + #used for all three coordinate classes + r += amount + if r < 0: + r = 0 + + def moveto(self, amount): + horizontal(self, amount.x) + vertical(self, amount.y) + zoom(self, amount.z) +""" \ No newline at end of file Modified: trunk/lib/rortruckeditor/RoRTruckOgreWindow.py =================================================================== --- trunk/lib/rortruckeditor/RoRTruckOgreWindow.py 2007-06-29 13:18:42 UTC (rev 66) +++ trunk/lib/rortruckeditor/RoRTruckOgreWindow.py 2007-06-29 22:32:03 UTC (rev 67) @@ -2,6 +2,7 @@ import wx, os, os.path import ogre.renderer.OGRE as ogre from ror.truckparser import * +from ror.camera import * from ror.logger import log from ror.settingsManager import getSettingsManager @@ -97,11 +98,12 @@ # create a camera self.camera = self.sceneManager.createCamera('Camera') - self.camera.lookAt(ogre.Vector3(0, 0, 0)) - self.camera.setPosition(ogre.Vector3(0, 0, 3)) - self.camera.nearClipDistance = 0.1 - self.camera.setAutoAspectRatio(True) - + #self.camera.lookAt(ogre.Vector3(0, 0, 0)) + #self.camera.setPosition(ogre.Vector3(0, 0, 3)) + #self.camera.nearClipDistance = 0.1 + #self.camera.setAutoAspectRatio(False) + self.camera2 = Camera(self.sceneManager.getRootSceneNode(), self.camera) + # create the Viewport" self.viewport = self.renderWindow.addViewport(self.camera, 0, 0.0, 0.0, 1.0, 1.0) self.viewport.backgroundColour = ogre.ColourValue(0, 0, 0) @@ -600,6 +602,19 @@ zfactor = 0.01 zoom = zfactor * -event.GetWheelRotation() self.camera.moveRelative(ogre.Vector3(0,0, zoom)) + + if event.Dragging() and event.RightIsDown(): + x,y = event.GetPosition() + + dx = self.StartDragX - x + dy = self.StartDragY - y + self.StartDragX, self.StartDragY = x, y + if event.ShiftDown(): + dx = float(dx) / 10 + dy = float(dy) / 10 + self.camera2.move(ogre.Vector3(dx,dy,0), event.ControlDown()) + + """ if event.Dragging() and event.RightIsDown() and event.ControlDown(): x,y = event.GetPosition() dx = self.StartDragX - x @@ -612,6 +627,7 @@ dx = float(dx) / 50 dy = float(dy) / 50 self.camera.moveRelative(ogre.Vector3(dx,-dy,0)) + elif event.Dragging() and event.RightIsDown(): #Dragging with RMB x,y = event.GetPosition() dx = self.StartDragX - x @@ -620,7 +636,8 @@ self.camera.yaw(ogre.Degree(dx/3.0)) self.camera.pitch(ogre.Degree(dy/3.0)) - +""" + if event.LeftDown() and event.ControlDown() and not self.mSelected is None: pos = self.getPointedPosition(event) if not pos is None: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-06-30 01:19:52
|
Revision: 69 http://roreditor.svn.sourceforge.net/roreditor/?rev=69&view=rev Author: rorthomas Date: 2007-06-29 18:19:50 -0700 (Fri, 29 Jun 2007) Log Message: ----------- * re-added ror start button to starter.py * fixed truck rotations on save (http://forum.rigsofrods.com/index.php/topic,682.msg10240.html#msg10240) Modified Paths: -------------- trunk/lib/ror/starter.py trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py Modified: trunk/lib/ror/starter.py =================================================================== --- trunk/lib/ror/starter.py 2007-06-30 00:59:28 UTC (rev 68) +++ trunk/lib/ror/starter.py 2007-06-30 01:19:50 UTC (rev 69) @@ -26,8 +26,8 @@ self.btnSelectRoRDir = wx.Button(self.panel, wx.ID_ANY, "Select RoR Directory") self.Bind(wx.EVT_BUTTON, self.OnSelectRoRDir, self.btnSelectRoRDir) - #self.btnStartRoR = wx.Button(self.panel, wx.ID_ANY, "Start RoR") - #self.Bind(wx.EVT_BUTTON, self.OnStartRoR, self.btnStartRoR) + self.btnStartRoR = wx.Button(self.panel, wx.ID_ANY, "Start RoR") + self.Bind(wx.EVT_BUTTON, self.OnStartRoR, self.btnStartRoR) self.cbbRenderEngine = wx.ComboBox(self.panel, wx.ID_ANY, RENDERSYSTEMS[0], style=wx.CB_READONLY, choices=RENDERSYSTEMS) self.Bind(wx.EVT_COMBOBOX, self.OnSelectRenderer, self.cbbRenderEngine) @@ -51,19 +51,19 @@ #print self.rordir if not self.rordir is None: if self.checkRoRDir(self.rordir): - #self.btnStartRoR.Enable(True) + self.btnStartRoR.Enable(True) self.btnStartTruckEditor.Enable(True) self.btnStartTerrainEditor.Enable(True) self.lblRoRDir.SetLabel(self.rordir) else: self.rordir = "" - #self.btnStartRoR.Enable(False) + self.btnStartRoR.Enable(False) self.btnStartTruckEditor.Enable(False) self.btnStartTerrainEditor.Enable(False) self.lblRoRDir.SetLabel("Please select Rigs of Rods Directory!") else: - #self.btnStartRoR.Enable(False) + self.btnStartRoR.Enable(False) self.btnStartTruckEditor.Enable(False) self.btnStartTerrainEditor.Enable(False) self.__set_properties() @@ -168,7 +168,7 @@ self.rordir = newpath self.lblRoRDir.SetLabel(newpath) getSettingsManager().setSetting("RigsOfRods", "BasePath", newpath) - #self.btnStartRoR.Enable(True) + self.btnStartRoR.Enable(True) self.btnStartTruckEditor.Enable(True) self.btnStartTerrainEditor.Enable(True) @@ -187,8 +187,8 @@ sizer_panel = wx.BoxSizer(wx.VERTICAL) sizer_panel.Add(self.lblRoRDir, 0, wx.EXPAND, 0) sizer_panel.Add(self.btnSelectRoRDir, 0, wx.EXPAND, 0) - #sizer_panel.Add(self.btnStartRoR, 0, wx.EXPAND, 0) sizer_panel.Add(self.cbbRenderEngine, 0, wx.EXPAND, 0) + sizer_panel.Add(self.btnStartRoR, 0, wx.EXPAND, 0) sizer_panel.Add(self.btnStartTerrainEditor, 0, wx.EXPAND, 0) sizer_panel.Add(self.btnStartTruckEditor, 0, wx.EXPAND, 0) sizer_panel.Add(self.btnBugReport, 0, wx.EXPAND, 0) Modified: trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py =================================================================== --- trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py 2007-06-30 00:59:28 UTC (rev 68) +++ trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py 2007-06-30 01:19:50 UTC (rev 69) @@ -393,12 +393,8 @@ posx, posy, posz, rotx, roty, rotz = self.getPositionRotation(self.trucks[k]) - if rotx != 0: - rotx -= 180 - if roty != 0: - roty -= 180 - if rotz != 0: - rotz -= 180 + rotx -= 90 + truckstring = k.split(".")[-1] + "\t " + k ar = [self.formatFloat(posx), self.formatFloat(posy), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-01 13:07:28
|
Revision: 71 http://roreditor.svn.sourceforge.net/roreditor/?rev=71&view=rev Author: rorthomas Date: 2007-07-01 06:07:27 -0700 (Sun, 01 Jul 2007) Log Message: ----------- * moved editor.ini file to main directory * svn update now creates a backup the file ogre.cfg and restores it after the update * please do NOT check in editor.ini in future revisions. it is generated upon the first start Modified Paths: -------------- trunk/lib/ror/settingsManager.py trunk/lib/ror/svn.py Removed Paths: ------------- trunk/lib/ror/editor.ini Deleted: trunk/lib/ror/editor.ini =================================================================== --- trunk/lib/ror/editor.ini 2007-06-30 19:27:23 UTC (rev 70) +++ trunk/lib/ror/editor.ini 2007-07-01 13:07:27 UTC (rev 71) @@ -1,6 +0,0 @@ -[RigsOfRods] -basepath = C:\games\RoR-0.31a - -[gui] -usegui = yes - Modified: trunk/lib/ror/settingsManager.py =================================================================== --- trunk/lib/ror/settingsManager.py 2007-06-30 19:27:23 UTC (rev 70) +++ trunk/lib/ror/settingsManager.py 2007-07-01 13:07:27 UTC (rev 71) @@ -13,7 +13,8 @@ class RoRSettings: myConfig = None - configfilename = os.path.join(os.path.dirname(os.path.abspath(__file__)), CONFIGFILE) + configfilename = os.path.join(os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)),"..\\..")),CONFIGFILE) + #configfilename = os.path.join(os.path.dirname(os.path.abspath(__file__)), CONFIGFILE) def __init__(self): self.loadSettings() Modified: trunk/lib/ror/svn.py =================================================================== --- trunk/lib/ror/svn.py 2007-06-30 19:27:23 UTC (rev 70) +++ trunk/lib/ror/svn.py 2007-07-01 13:07:27 UTC (rev 71) @@ -4,6 +4,7 @@ URL = "http://roreditor.svn.sourceforge.net/svnroot/roreditor/trunk" changes = 0 +BACKUPFILES = ['ogre.cfg'] def getRootPath(): path = os.path.dirname(os.path.abspath(__file__)) @@ -87,10 +88,27 @@ except: print "error while checkout!" +def createBackup(): + import shutil + for f in BACKUPFILES: + fn = os.path.join(getRootPath(), f) + fnbackup = fn + "_backup" + if os.path.isfile(fn): + shutil.copy(fn, fnbackup) +def restoreBackup(): + import shutil + for f in BACKUPFILES: + fn = os.path.join(getRootPath(), f) + fnbackup = fn + "_backup" + if os.path.isfile(fnbackup): + shutil.move(fnbackup, fn) + def run(): if os.path.isdir(os.path.join(getRootPath(), "media")): + createBackup() svnupdate() + restoreBackup() else: svncheckout() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-01 14:09:31
|
Revision: 73 http://roreditor.svn.sourceforge.net/roreditor/?rev=73&view=rev Author: rorthomas Date: 2007-07-01 07:08:19 -0700 (Sun, 01 Jul 2007) Log Message: ----------- * added update gui basics Modified Paths: -------------- trunk/lib/ror/starter.py trunk/lib/ror/svn.py Added Paths: ----------- trunk/lib/ror/svngui.py Modified: trunk/lib/ror/starter.py =================================================================== --- trunk/lib/ror/starter.py 2007-07-01 13:35:19 UTC (rev 72) +++ trunk/lib/ror/starter.py 2007-07-01 14:08:19 UTC (rev 73) @@ -48,6 +48,13 @@ self.Bind(wx.EVT_BUTTON, self.OnExit, self.btnExit) self.rordir = getSettingsManager().getSetting("RigsOfRods", "BasePath") + + # this takes too long! threading it?! + #if self.checkForUpdate(): + # dlg = wx.MessageDialog(self, "Update Available!", "Info", wx.OK | wx.ICON_INFORMATION) + # dlg.ShowModal() + # dlg.Destroy() + #print self.rordir if not self.rordir is None: if self.checkRoRDir(self.rordir): @@ -98,8 +105,12 @@ f.close() def OnUpdate(self, event=None): + import svngui + gui = svngui.svnUpdate() + + def checkForUpdate(self): import svn - svn.run() + return svn.checkForUpdate() def OnStartRoR(self, event=None): try: Modified: trunk/lib/ror/svn.py =================================================================== --- trunk/lib/ror/svn.py 2007-07-01 13:35:19 UTC (rev 72) +++ trunk/lib/ror/svn.py 2007-07-01 14:08:19 UTC (rev 73) @@ -2,6 +2,9 @@ import sys, os, os.path import pysvn +from ror.logger import log +from ror.settingsManager import getSettingsManager + URL = "http://roreditor.svn.sourceforge.net/svnroot/roreditor/trunk" changes = 0 BACKUPFILES = ['ogre.cfg'] @@ -30,6 +33,25 @@ info = client.info(path) return info['revision'].number +def checkForUpdate(): + client = pysvn.Client() + path = getRootPath() + rev = getRevision(client, path) + rev += 1 + try: + log = client.log(path, + revision_start=pysvn.Revision(pysvn.opt_revision_kind.number, rev), + revision_end=pysvn.Revision(pysvn.opt_revision_kind.head), + discover_changed_paths=False, + strict_node_history=True, + limit=0) + for e in log: + print "--- r%d, author: %s:\n%s\n" %(e['revision'].number, e['author'], e['message']) + if len(log) > 0: + return True + except: + return False + def callback_ssl_server_trust_prompt(trust_data): return True, trust_data['failures'], True @@ -49,7 +71,7 @@ for e in log: print "--- r%d, author: %s:\n%s\n" %(e['revision'].number, e['author'], e['message']) -def svnupdate(): +def svnupdate(callback = None): global changes path = getRootPath() changes = 0 @@ -57,7 +79,10 @@ client = pysvn.Client() revision_before = getRevision(client, path) print "updating from revision %d ..." % revision_before - client.callback_notify = notify + if callback is None: + client.callback_notify = notify + else: + client.callback_notify = callback client.callback_ssl_server_trust_prompt = callback_ssl_server_trust_prompt client.update(path, recurse = True, Added: trunk/lib/ror/svngui.py =================================================================== --- trunk/lib/ror/svngui.py (rev 0) +++ trunk/lib/ror/svngui.py 2007-07-01 14:08:19 UTC (rev 73) @@ -0,0 +1,33 @@ +#Thomas Fischer 31/05/2007, th...@th... +from wxogre.OgreManager import * +from ror.RoROgreWindow import * +from ror.rorcommon import * +from subprocess import Popen + +from ror.logger import log +from ror.settingsManager import getSettingsManager + +import svn + +import wx, os, os.path + +class svnUpdate(): + def __init__(self): + self.pr = wx.ProgressDialog("Updating ...", "Updating ...", style = wx.PD_SMOOTH | wx.PD_ELAPSED_TIME | wx.PD_ESTIMATED_TIME | wx.PD_REMAINING_TIME) + self.pr.Show() + self.changes = 0 + svn.svnupdate(self.notify) + self.showfinished() + self.pr.Hide() + + def showfinished(self): + dlg = wx.MessageDialog(self, "Update finished!\nPlease restart the Application!", "Info", wx.OK | wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() + + def notify(self, event_dict): + self.changes += 1 + msg = str(event_dict['action']) + ", " + event_dict['path'] + self.pr.Update(self.changes % 100, msg) + #self.pr.Pulse(msg) + \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-03 01:27:25
|
Revision: 79 http://roreditor.svn.sourceforge.net/roreditor/?rev=79&view=rev Author: rorthomas Date: 2007-07-02 18:27:22 -0700 (Mon, 02 Jul 2007) Log Message: ----------- * fixed bug report * modified svngui message when no update was found * bugreport is now only possible with latest version Modified Paths: -------------- trunk/lib/ror/bugreport.py trunk/lib/ror/starter.py trunk/lib/ror/svngui.py Modified: trunk/lib/ror/bugreport.py =================================================================== --- trunk/lib/ror/bugreport.py 2007-07-03 00:44:38 UTC (rev 78) +++ trunk/lib/ror/bugreport.py 2007-07-03 01:27:22 UTC (rev 79) @@ -1,7 +1,10 @@ import wx, os, os.path -import rorsettings +from ror.logger import log +from ror.settingsManager import getSettingsManager + BUGREPORT_FILENAME = "hwinfo.txt" +ATTACHEDLOGFILES = ['Ogre.log', 'ogre.cfg', 'editor.ini'] class BugReportFrame(wx.Frame): def __init__(self, *args, **kwds): @@ -11,7 +14,7 @@ self.panel = wx.Panel(self, wx.ID_ANY) desc = """Please describe the Bug below: some tips: -* if you give us an email in the text, we can answer you, otherwise not. +* if you give us an email in the text (or a forum member name), we can answer you, otherwise not. * it is good to take screenshots of errors, glitches and so on. you can insert imageshack.us or equivalent URLs below.""" self.lblText1 = wx.StaticText(self.panel, wx.ID_ANY, desc) @@ -41,11 +44,7 @@ if hwinfo == "": return txt += hwinfo - txt += self.getLogs() - - txt += "\n==========================\n" - txt += "==========================\n" - + txt += self.getLogs(ATTACHEDLOGFILES) self.writeFile(BUGREPORT_FILENAME, txt) def writeFile(self, filename, content): @@ -59,94 +58,15 @@ outfile.close() return t - # not working - # def installPyWin(self): - # dlg = wx.MessageDialog(self, "Python Windows extensions are required for this to work. I will try install them now in the Registry.\n", "Error", wx.OK | wx.ICON_INFORMATION) - # dlg.ShowModal() - # dlg.Destroy() - # import pywin32_postinstall - # pywin32_postinstall.install() - - def getLogs(self): + def getLogs(self, files): txt = "" - try: - txt += "==========================\n" - txt += "RoR Ogre.log following\n" - txt += "==========================\n" - ogrelogfn = rorsettings.getSettings().getRoRDir() - txt += self.readFile(os.path.join(ogrelogfn,"Ogre.log")) - except: - txt += "RoR Ogre.log ERROR\n" - pass - try: - txt += "==========================\n" - txt += "RoR ogre.cfg following\n" - txt += "==========================\n" - ogrelogfn = rorsettings.getSettings().getRoRDir() - txt += self.readFile(os.path.join(ogrelogfn,"ogre.cfg")) - except: - txt += "RoR ogre.cfg ERROR\n" - pass - - try: - txt += "==========================\n" - txt += "RoR plugins.cfg following\n" - txt += "==========================\n" - ogrelogfn = rorsettings.getSettings().getRoRDir() - txt += self.readFile(os.path.join(ogrelogfn,"plugins.cfg")) - except: - txt += "RoR plugins.cfg ERROR\n" - pass - - try: - txt += "==========================\n" - txt += "RoR.cfg following\n" - txt += "==========================\n" - ogrelogfn = rorsettings.getSettings().getRoRDir() - txt += self.readFile(os.path.join(ogrelogfn,"RoR.cfg")) - except: - txt += "RoR.cfg ERROR\n" - pass - - try: - txt += "==========================\n" - txt += "RoR resources.cfg following\n" - txt += "==========================\n" - ogrelogfn = rorsettings.getSettings().getRoRDir() - txt += self.readFile(os.path.join(ogrelogfn,"resources.cfg")) - except: - txt += "RoR resources.cfg ERROR\n" - pass - - try: - txt += "==========================\n" - txt += "RoRToolkit Ogre.log following\n" - txt += "==========================\n" - ogrelogfn = rorsettings.getSettings().getRoRDir() - txt += self.readFile("Ogre.log") - except: - txt += "RoRToolkit Ogre.log ERROR\n" - pass - - try: - txt += "==========================\n" - txt += "RoRToolkit ogre.cfg following\n" - txt += "==========================\n" - ogrelogfn = rorsettings.getSettings().getRoRDir() - txt += self.readFile("ogre.cfg") - except: - txt += "RoRToolkit ogre.cfg ERROR\n" - pass - - try: - txt += "==========================\n" - txt += "RoRToolkit plugins.cfg following\n" - txt += "==========================\n" - ogrelogfn = rorsettings.getSettings().getRoRDir() - txt += self.readFile("plugins.cfg") - except: - txt += "RoRToolkit plugins.cfg ERROR\n" - pass + for f in files: + try: + txt += "==|==|== %s\n" % f + txt += self.readFile(f) + except Exception, e: + txt += "ERROR: %s\n" % str(e) + pass return txt def getHWInfos(self): @@ -230,6 +150,12 @@ self.TextCtrlOwn.SaveFile(BUGREPORT_FILENAME) owninfos = self.readFile(BUGREPORT_FILENAME) + if owninfos.strip() == "": + dlg = wx.MessageDialog(self, "You must provide an error description!", "Error", wx.OK | wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() + return + txt = owninfos + "\r\n" + hwinfos bugreport = base64.b64encode(txt) Modified: trunk/lib/ror/starter.py =================================================================== --- trunk/lib/ror/starter.py 2007-07-03 00:44:38 UTC (rev 78) +++ trunk/lib/ror/starter.py 2007-07-03 01:27:22 UTC (rev 79) @@ -13,7 +13,7 @@ DIRECTXLINE = "Plugin=RenderSystem_Direct3D9.dll" OPENGLLINE = "Plugin=RenderSystem_GL.dll" -SPLASHIMAGE = "splash.bmp" +SPLASHIMAGE = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "splash.bmp")) class ImagePanel(wx.Panel): @@ -65,27 +65,8 @@ self.rordir = getSettingsManager().getSetting("RigsOfRods", "BasePath") - # this takes too long! threading it?! - #if self.checkForUpdate(): - # dlg = wx.MessageDialog(self, "Update Available!", "Info", wx.OK | wx.ICON_INFORMATION) - # dlg.ShowModal() - # dlg.Destroy() #print self.rordir - if not self.rordir is None: - if self.checkRoRDir(self.rordir): - self.btnStartRoR.Enable(True) - self.btnStartTruckEditor.Enable(True) - self.btnStartTerrainEditor.Enable(True) - else: - self.rordir = "" - self.btnStartRoR.Enable(False) - self.btnStartTruckEditor.Enable(False) - self.btnStartTerrainEditor.Enable(False) - else: - self.btnStartRoR.Enable(False) - self.btnStartTruckEditor.Enable(False) - self.btnStartTerrainEditor.Enable(False) self.displayRoRDir() self.__set_properties() self.__do_layout() @@ -94,8 +75,16 @@ def displayRoRDir(self): if self.rordir == "": + self.btnStartRoR.Enable(False) + self.btnStartTruckEditor.Enable(False) + self.btnStartTerrainEditor.Enable(False) + self.btnBugReport.Enable(False) self.lblRoRDir.SetLabel("Please select Rigs of Rods Directory!") else: + self.btnStartRoR.Enable(True) + self.btnStartTruckEditor.Enable(True) + self.btnStartTerrainEditor.Enable(True) + self.btnBugReport.Enable(True) self.lblRoRDir.SetLabel("Selected Rigs of Rods Directory: " + self.rordir) def OnSelectRenderer(self, id=None, func=None): @@ -155,6 +144,13 @@ def OnBugReport(self, event=None): try: + if self.checkForUpdate(): + dlg = wx.MessageDialog(self, "Update Available!\nPlease update prior submitting a BugReport!", "Info", wx.OK | wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() + self.btnBugReport.Enable(False) + return + log().info("starting bugreporter") import ror.bugreport ror.bugreport.showBugReportFrame() @@ -184,8 +180,10 @@ dlg = wx.MessageDialog(self, "RoR.exe not found in the selected directory!\nPlease select a new directory!", "Error", wx.OK | wx.ICON_INFORMATION) dlg.ShowModal() dlg.Destroy() + self.rordir = "" return False + self.rordir = fn return True def OnSelectRoRDir(self, event=None): @@ -199,11 +197,8 @@ # no need to escape here! #newpath = newpath.replace(" ", "\ ") self.rordir = newpath - self.lblRoRDir.SetLabel(newpath) getSettingsManager().setSetting("RigsOfRods", "BasePath", newpath) - self.btnStartRoR.Enable(True) - self.btnStartTruckEditor.Enable(True) - self.btnStartTerrainEditor.Enable(True) + self.displayRoRDir() def OnExit(self, event=None): self.Close() Modified: trunk/lib/ror/svngui.py =================================================================== --- trunk/lib/ror/svngui.py 2007-07-03 00:44:38 UTC (rev 78) +++ trunk/lib/ror/svngui.py 2007-07-03 01:27:22 UTC (rev 79) @@ -22,9 +22,14 @@ del self.pr def showfinished(self): - dlg = wx.MessageDialog(self.pr, "Update finished!\nPlease restart the Application!", "Info", wx.OK | wx.ICON_INFORMATION) - dlg.ShowModal() - dlg.Destroy() + if self.changes == 2: + dlg = wx.MessageDialog(self.pr, "No Update available!", "Info", wx.OK | wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() + elif self.changes > 2: + dlg = wx.MessageDialog(self.pr, "Update finished!\nPlease restart the Application!", "Info", wx.OK | wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() def notify(self, event_dict): self.changes += 1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-05 23:29:43
|
Revision: 83 http://roreditor.svn.sourceforge.net/roreditor/?rev=83&view=rev Author: rorthomas Date: 2007-07-05 16:29:38 -0700 (Thu, 05 Jul 2007) Log Message: ----------- * updated dependency-checker Modified Paths: -------------- trunk/lib/ror/repoclient.py Added Paths: ----------- trunk/lib/ror/depchecker/ trunk/lib/ror/depchecker/ror_bmp.py trunk/lib/ror/depchecker/ror_dds.py trunk/lib/ror/depchecker/ror_jpg.py trunk/lib/ror/depchecker/ror_load.py trunk/lib/ror/depchecker/ror_material.py trunk/lib/ror/depchecker/ror_mesh.py trunk/lib/ror/depchecker/ror_overlay.py trunk/lib/ror/depchecker/ror_png.py trunk/lib/ror/depchecker/ror_truck.py trunk/lib/ror/depchecker.py Added: trunk/lib/ror/depchecker/ror_bmp.py =================================================================== --- trunk/lib/ror/depchecker/ror_bmp.py (rev 0) +++ trunk/lib/ror/depchecker/ror_bmp.py 2007-07-05 23:29:38 UTC (rev 83) @@ -0,0 +1,9 @@ +import os, os.path, re +import subprocess + +def getDependencies(filename): + return { + "provide":{ + "file":[os.path.basename(filename)] + } + } Added: trunk/lib/ror/depchecker/ror_dds.py =================================================================== --- trunk/lib/ror/depchecker/ror_dds.py (rev 0) +++ trunk/lib/ror/depchecker/ror_dds.py 2007-07-05 23:29:38 UTC (rev 83) @@ -0,0 +1,9 @@ +import os, os.path, re +import subprocess + +def getDependencies(filename): + return { + "provide":{ + "file":[os.path.basename(filename)] + } + } Added: trunk/lib/ror/depchecker/ror_jpg.py =================================================================== --- trunk/lib/ror/depchecker/ror_jpg.py (rev 0) +++ trunk/lib/ror/depchecker/ror_jpg.py 2007-07-05 23:29:38 UTC (rev 83) @@ -0,0 +1,9 @@ +import os, os.path, re +import subprocess + +def getDependencies(filename): + return { + "provide":{ + "file":[os.path.basename(filename)] + } + } Added: trunk/lib/ror/depchecker/ror_load.py =================================================================== --- trunk/lib/ror/depchecker/ror_load.py (rev 0) +++ trunk/lib/ror/depchecker/ror_load.py 2007-07-05 23:29:38 UTC (rev 83) @@ -0,0 +1,5 @@ +import os, os.path +import ror_truck + +def getDependencies(filename): + return ror_truck.getDependencies(filename) Added: trunk/lib/ror/depchecker/ror_material.py =================================================================== --- trunk/lib/ror/depchecker/ror_material.py (rev 0) +++ trunk/lib/ror/depchecker/ror_material.py 2007-07-05 23:29:38 UTC (rev 83) @@ -0,0 +1,39 @@ +import os, os.path, re +import subprocess + +RE1 = r"^\s*texture.?([a-zA-Z0-9_\-]*\.[a-zA-Z0-9]*)\s?.*" +RE2 = r"\s?material\s?([a-zA-Z0-9_/\-\\]*).?" + +def readFile(filename): + f=open(filename, 'r') + content = f.readlines() + f.close() + return content + +def parseRE(content, r): + vals = [] + for line in content: + m = re.match(r, line) + if not m is None and len(m.groups()) > 0: + valname = m.groups()[0] + if not valname in vals: + vals.append(valname) + return vals + +def getDependencies(filename): + content = readFile(filename) + dep = parseRE(content, RE1) + prov = parseRE(content, RE2) + if len(dep) == 0: + print "no texture found in material file " + filename + if len(prov) == 0: + print "no material found in material file " + filename + else: + return { + "depends":{ + "file":dep + }, + "provide":{ + "materials":prov + } + } Added: trunk/lib/ror/depchecker/ror_mesh.py =================================================================== --- trunk/lib/ror/depchecker/ror_mesh.py (rev 0) +++ trunk/lib/ror/depchecker/ror_mesh.py 2007-07-05 23:29:38 UTC (rev 83) @@ -0,0 +1,48 @@ +import os, os.path, re +import subprocess + +CONVERTERBIN = "C:\\OgreCommandLineTools\\OgreXmlConverter.exe" +REs = [r".*material\s?=[\"\']([a-zA-Z0-9_/\-\\]*)[\"\'].*"] + +def readFile(filename): + f=open(filename, 'r') + content = f.readlines() + f.close() + return content + +def convertToXML(filename): + # try to convert to .msh.xml first! + cmd = CONVERTERBIN + " " + filename + p = subprocess.Popen(cmd, shell = False, cwd = os.path.dirname(CONVERTERBIN), stderr = subprocess.PIPE, stdout = subprocess.PIPE) + p.wait() + print "mesh converted: " + filename + +def parseRE(content): + deps = [] + for line in content: + for r in REs: + m = re.match(r, line) + if not m is None and len(m.groups()) > 0: + depname = m.groups()[0] + if not depname in deps: + deps.append(depname) + return deps + + +def getDependencies(filename): + xmlfilename = os.path.join(os.path.dirname(filename), os.path.basename(filename)+".xml") + if not os.path.isfile(xmlfilename): + convertToXML(filename) + try: + content = readFile(xmlfilename) + except Exception, e: + print e + dep = parseRE(content) + if len(dep) == 0: + print "no material found for file " + filename + else: + return { + "depends":{ + "materials":dep + } + } Added: trunk/lib/ror/depchecker/ror_overlay.py =================================================================== --- trunk/lib/ror/depchecker/ror_overlay.py (rev 0) +++ trunk/lib/ror/depchecker/ror_overlay.py 2007-07-05 23:29:38 UTC (rev 83) @@ -0,0 +1,5 @@ +import os, os.path, re +import subprocess + +def getDependencies(filename): + pass Added: trunk/lib/ror/depchecker/ror_png.py =================================================================== --- trunk/lib/ror/depchecker/ror_png.py (rev 0) +++ trunk/lib/ror/depchecker/ror_png.py 2007-07-05 23:29:38 UTC (rev 83) @@ -0,0 +1,9 @@ +import os, os.path, re +import subprocess + +def getDependencies(filename): + return { + "provide":{ + "file":[os.path.basename(filename)] + } + } Added: trunk/lib/ror/depchecker/ror_truck.py =================================================================== --- trunk/lib/ror/depchecker/ror_truck.py (rev 0) +++ trunk/lib/ror/depchecker/ror_truck.py 2007-07-05 23:29:38 UTC (rev 83) @@ -0,0 +1,21 @@ +import os, os.path +from truckparser import * + +def getDependencies(filename): + p = rorparser() + p.parse(filename) + if not 'globals' in p.tree.keys(): + print "truck parsing error on file " + filename + truckfilename = os.path.basename(filename) + truckname, ext = os.path.splitext(truckfilename) + matname = p.tree['globals'][0]['data'][2] + print truckname + return { + "depends":{ + "materials":[matname], + #"file":[truckname+'-mini.png'] + }, + "provide":{ + "file":[truckfilename] + } + } Added: trunk/lib/ror/depchecker.py =================================================================== --- trunk/lib/ror/depchecker.py (rev 0) +++ trunk/lib/ror/depchecker.py 2007-07-05 23:29:38 UTC (rev 83) @@ -0,0 +1,117 @@ +#Thomas Fischer 31/05/2007, th...@th... +import sys, os, os.path + +#DIR = "C:\\games\\RoR-0.31a\\data" +DEPCHECKPATH = "depchecker" + +class RoRDepChecker: + def __init__(self, path): + sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), DEPCHECKPATH)) + self.deptree = {'materials':{},'file':{}} + self.dir = path + self.getfiles() + self.createDepGraph() + self.viewDepGraph("all") + self.viewDepGraph("unused") + self.viewDepGraph("missing") + + + def getDependencies(self, extension, filename): + try: + mod = __import__("ror_" + extension.lstrip(".")) + except ImportError, e: + return + pass + + return mod.getDependencies(filename) + + + def getfiles(self): + fl = {} + for root, dirs, files in os.walk(self.dir): + for f in files: + if f in fl.keys(): + print "double file found: %s!" % (f) + continue + fl[f] = {} + fl[f]['filename'] = os.path.join(root, f) + #for fk in fl.keys(): + # print "%30s: %s" % (fk, fl[fk]['filename']) + print "found %d files!" % (len(fl.keys())) + self.files = fl + + + def viewDepGraph(self, mode = "all"): + displayedfiles = 0 + str = "" + str += "-------------------------------------------------------------\n" + if mode == "all": + str += "--- Dependency tree for %s \n" % (self.dir) + elif mode == "unused": + str += "--- Unused resources for %s \n" % (self.dir) + elif mode == "missing": + str += "--- Missing requirements for %s \n" % (self.dir) + str += "-------------------------------------------------------------\n" + for fk in self.deptree.keys(): + str += "--------- Category: %-20s -------------------\n" % fk + for k in self.deptree[fk].keys(): + req = self.deptree[fk][k]['depends'] + if len(req) > 0: + reqstr = ", ".join(req) + else: + reqstr = "None" + found = self.deptree[fk][k]['provide'] + if len(found) > 0: + foundstr = ", ".join(found) + else: + foundstr = "None" + display = False + if mode == "all": + display = True + elif mode == "unused": + display = (len(found) > 0 and len(req) == 0) + elif mode == "missing": + display = (len(req) > 0 and len(found) == 0) + if display: + displayedfiles += 1 + str += "%40s: %16s%-10s\n%41s %16s%-10s\n" % (k, "required by: ", reqstr, "", "provided by: ", foundstr) + if displayedfiles > 0: + print str + elif displayedfiles == 0: + if mode == "all": + print "No resources found at all!" + elif mode == "unused": + print "No resources unused!" + elif mode == "missing": + print "No resources missing!" + + + + def createDepGraph(self): + #extlist = [] + for fk in self.files.keys(): + fn, ext = os.path.splitext(fk) + filename = self.files[fk]['filename'] + dep = self.getDependencies(ext, filename) + keywords = ['provide', 'depends'] + if not dep is None: + for kw in keywords: + if kw in dep.keys(): + for pk in dep[kw].keys(): + for p in dep[kw][pk]: + #print kw, pk, p + if not p in self.deptree[pk].keys(): + self.deptree[pk][p] = {keywords[0]:[], keywords[1]:[]} + self.deptree[pk][p][kw].append(fk) + + + #if not ext in extlist: + # extlist.append(ext) + #print extlist + + +def main(): + RoRDepChecker(sys.argv[1]) + +if __name__ == "__main__": + main() Modified: trunk/lib/ror/repoclient.py =================================================================== --- trunk/lib/ror/repoclient.py 2007-07-04 13:31:18 UTC (rev 82) +++ trunk/lib/ror/repoclient.py 2007-07-05 23:29:38 UTC (rev 83) @@ -1,8 +1,11 @@ import xmlrpclib -s = xmlrpclib.Server('http://repository.rigsofrods.com:8000') -package = s.getInfo() -for item in package['data']: - print item +def getFiles(category): + s = xmlrpclib.Server('http://repository.rigsofrods.com:8000') + package = s.getInfo(category) + return package -print s.system.listMethods() \ No newline at end of file + +#for item in package['data']: +# print item +#print s.system.listMethods() \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-05 23:46:07
|
Revision: 84 http://roreditor.svn.sourceforge.net/roreditor/?rev=84&view=rev Author: rorthomas Date: 2007-07-05 16:46:06 -0700 (Thu, 05 Jul 2007) Log Message: ----------- * improved console usage Modified Paths: -------------- trunk/lib/ror/depchecker/ror_truck.py trunk/lib/ror/depchecker.py Modified: trunk/lib/ror/depchecker/ror_truck.py =================================================================== --- trunk/lib/ror/depchecker/ror_truck.py 2007-07-05 23:29:38 UTC (rev 83) +++ trunk/lib/ror/depchecker/ror_truck.py 2007-07-05 23:46:06 UTC (rev 84) @@ -9,7 +9,7 @@ truckfilename = os.path.basename(filename) truckname, ext = os.path.splitext(truckfilename) matname = p.tree['globals'][0]['data'][2] - print truckname + #print truckname return { "depends":{ "materials":[matname], Modified: trunk/lib/ror/depchecker.py =================================================================== --- trunk/lib/ror/depchecker.py 2007-07-05 23:29:38 UTC (rev 83) +++ trunk/lib/ror/depchecker.py 2007-07-05 23:46:06 UTC (rev 84) @@ -1,19 +1,17 @@ -#Thomas Fischer 31/05/2007, th...@th... +#Thomas Fischer 06/07/2007, th...@th... import sys, os, os.path #DIR = "C:\\games\\RoR-0.31a\\data" DEPCHECKPATH = "depchecker" class RoRDepChecker: - def __init__(self, path): + def __init__(self, path, mode): sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), DEPCHECKPATH)) self.deptree = {'materials':{},'file':{}} self.dir = path self.getfiles() self.createDepGraph() - self.viewDepGraph("all") - self.viewDepGraph("unused") - self.viewDepGraph("missing") + self.viewDepGraph(mode) def getDependencies(self, extension, filename): @@ -74,7 +72,12 @@ display = (len(req) > 0 and len(found) == 0) if display: displayedfiles += 1 - str += "%40s: %16s%-10s\n%41s %16s%-10s\n" % (k, "required by: ", reqstr, "", "provided by: ", foundstr) + if mode == "all": + str += "%40s: %16s%-10s\n%41s %16s%-10s\n" % (k, "required by: ", reqstr, "", "provided by: ", foundstr) + elif mode == "unused": + str += "%40s: %16s%-10s\n" % (k, "provided by: ", foundstr) + elif mode == "missing": + str += "%40s: %16s%-10s\n" % (k, "required by: ", reqstr) if displayedfiles > 0: print str elif displayedfiles == 0: @@ -109,9 +112,25 @@ # extlist.append(ext) #print extlist - + +def usage(): + print "usage: %s <path to inspect> <all or unused or missing>" % os.path.basename(sys.argv[0]) + print "for example: %s c:\\ror\\data missing" % os.path.basename(sys.argv[0]) + print " * all will display all dependencies, inclusive met ones" + print " * missing will display only unfulfilled dependencies" + print " * unused will display resources that are not in use" + sys.exit(0) + def main(): - RoRDepChecker(sys.argv[1]) + if len(sys.argv) != 3: + usage() + if not os.path.isdir(sys.argv[1]): + print "%s is not a valid directory!" % sys.argv[1] + usage() + if not sys.argv[2] in ['all', 'missing', 'unused']: + print "%s is not a valid mode!" % sys.argv[2] + usage() + RoRDepChecker(sys.argv[1], sys.argv[2]) if __name__ == "__main__": main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-05 23:52:13
|
Revision: 85 http://roreditor.svn.sourceforge.net/roreditor/?rev=85&view=rev Author: rorthomas Date: 2007-07-05 16:52:07 -0700 (Thu, 05 Jul 2007) Log Message: ----------- * minor verbosity fixes Modified Paths: -------------- trunk/lib/ror/depchecker/ror_truck.py trunk/lib/ror/truckparser.py Modified: trunk/lib/ror/depchecker/ror_truck.py =================================================================== --- trunk/lib/ror/depchecker/ror_truck.py 2007-07-05 23:46:06 UTC (rev 84) +++ trunk/lib/ror/depchecker/ror_truck.py 2007-07-05 23:52:07 UTC (rev 85) @@ -3,7 +3,7 @@ def getDependencies(filename): p = rorparser() - p.parse(filename) + p.parse(filename, verbose=False) if not 'globals' in p.tree.keys(): print "truck parsing error on file " + filename truckfilename = os.path.basename(filename) Modified: trunk/lib/ror/truckparser.py =================================================================== --- trunk/lib/ror/truckparser.py 2007-07-05 23:46:06 UTC (rev 84) +++ trunk/lib/ror/truckparser.py 2007-07-05 23:52:07 UTC (rev 85) @@ -576,7 +576,7 @@ newcomment = {'data':[comment, attached], 'originline':lineno, 'section':section, 'type':'comment'} self.tree['comments'].append(newcomment) - def parse(self, filename): + def parse(self, filename, verbose = True): self.filename = filename content = None try: @@ -590,7 +590,8 @@ if content is None: sys.stderr.write("error while reading file!\n") sys.exit(1) - sys.stderr.write("processing file %s\n" % filename) + if verbose: + sys.stderr.write("processing file %s\n" % filename) self.tree = {'title':[]} actualsection = "title" prevsection = "" @@ -714,7 +715,8 @@ #self.checkNodes() #self.checkForDoubleNodes() #self.checkForDoubleBeams() - sys.stderr.write("finished processing of file %s\n" % filename) + if verbose: + sys.stderr.write("finished processing of file %s\n" % filename) #self.printtree() #self.linearizetree() #print self.tree['errors'] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-06 00:28:10
|
Revision: 87 http://roreditor.svn.sourceforge.net/roreditor/?rev=87&view=rev Author: rorthomas Date: 2007-07-05 17:28:08 -0700 (Thu, 05 Jul 2007) Log Message: ----------- * renamed depchecker plugins dir * fixed truck dependency checker Modified Paths: -------------- trunk/lib/ror/depchecker.py Added Paths: ----------- trunk/lib/ror/depcheckerplugins/ trunk/lib/ror/depcheckerplugins/__init__.py trunk/lib/ror/depcheckerplugins/ror_bmp.py trunk/lib/ror/depcheckerplugins/ror_dds.py trunk/lib/ror/depcheckerplugins/ror_jpg.py trunk/lib/ror/depcheckerplugins/ror_load.py trunk/lib/ror/depcheckerplugins/ror_material.py trunk/lib/ror/depcheckerplugins/ror_mesh.py trunk/lib/ror/depcheckerplugins/ror_overlay.py trunk/lib/ror/depcheckerplugins/ror_png.py trunk/lib/ror/depcheckerplugins/ror_truck.py Removed Paths: ------------- trunk/lib/ror/depchecker/ trunk/lib/ror/depcheckerplugins/ror_bmp.py trunk/lib/ror/depcheckerplugins/ror_dds.py trunk/lib/ror/depcheckerplugins/ror_jpg.py trunk/lib/ror/depcheckerplugins/ror_load.py trunk/lib/ror/depcheckerplugins/ror_material.py trunk/lib/ror/depcheckerplugins/ror_mesh.py trunk/lib/ror/depcheckerplugins/ror_overlay.py trunk/lib/ror/depcheckerplugins/ror_png.py trunk/lib/ror/depcheckerplugins/ror_truck.py Modified: trunk/lib/ror/depchecker.py =================================================================== --- trunk/lib/ror/depchecker.py 2007-07-06 00:16:10 UTC (rev 86) +++ trunk/lib/ror/depchecker.py 2007-07-06 00:28:08 UTC (rev 87) @@ -2,7 +2,7 @@ import sys, os, os.path #DIR = "C:\\games\\RoR-0.31a\\data" -DEPCHECKPATH = "depchecker" +DEPCHECKPATH = "depcheckerplugins" class RoRDepChecker: def __init__(self, path, mode): @@ -16,8 +16,11 @@ def getDependencies(self, extension, filename): try: + #print "trying to use module: %s" % "ror_" + extension.lstrip(".") mod = __import__("ror_" + extension.lstrip(".")) except ImportError, e: + #print "module not found!" + #print e return pass Copied: trunk/lib/ror/depcheckerplugins (from rev 83, trunk/lib/ror/depchecker) Added: trunk/lib/ror/depcheckerplugins/__init__.py =================================================================== Deleted: trunk/lib/ror/depcheckerplugins/ror_bmp.py =================================================================== --- trunk/lib/ror/depchecker/ror_bmp.py 2007-07-05 23:29:38 UTC (rev 83) +++ trunk/lib/ror/depcheckerplugins/ror_bmp.py 2007-07-06 00:28:08 UTC (rev 87) @@ -1,9 +0,0 @@ -import os, os.path, re -import subprocess - -def getDependencies(filename): - return { - "provide":{ - "file":[os.path.basename(filename)] - } - } Copied: trunk/lib/ror/depcheckerplugins/ror_bmp.py (from rev 86, trunk/lib/ror/depchecker/ror_bmp.py) =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_bmp.py (rev 0) +++ trunk/lib/ror/depcheckerplugins/ror_bmp.py 2007-07-06 00:28:08 UTC (rev 87) @@ -0,0 +1,9 @@ +import os, os.path, re +import subprocess + +def getDependencies(filename): + return { + "provide":{ + "file":[os.path.basename(filename)] + } + } Deleted: trunk/lib/ror/depcheckerplugins/ror_dds.py =================================================================== --- trunk/lib/ror/depchecker/ror_dds.py 2007-07-05 23:29:38 UTC (rev 83) +++ trunk/lib/ror/depcheckerplugins/ror_dds.py 2007-07-06 00:28:08 UTC (rev 87) @@ -1,9 +0,0 @@ -import os, os.path, re -import subprocess - -def getDependencies(filename): - return { - "provide":{ - "file":[os.path.basename(filename)] - } - } Copied: trunk/lib/ror/depcheckerplugins/ror_dds.py (from rev 86, trunk/lib/ror/depchecker/ror_dds.py) =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_dds.py (rev 0) +++ trunk/lib/ror/depcheckerplugins/ror_dds.py 2007-07-06 00:28:08 UTC (rev 87) @@ -0,0 +1,9 @@ +import os, os.path, re +import subprocess + +def getDependencies(filename): + return { + "provide":{ + "file":[os.path.basename(filename)] + } + } Deleted: trunk/lib/ror/depcheckerplugins/ror_jpg.py =================================================================== --- trunk/lib/ror/depchecker/ror_jpg.py 2007-07-05 23:29:38 UTC (rev 83) +++ trunk/lib/ror/depcheckerplugins/ror_jpg.py 2007-07-06 00:28:08 UTC (rev 87) @@ -1,9 +0,0 @@ -import os, os.path, re -import subprocess - -def getDependencies(filename): - return { - "provide":{ - "file":[os.path.basename(filename)] - } - } Copied: trunk/lib/ror/depcheckerplugins/ror_jpg.py (from rev 86, trunk/lib/ror/depchecker/ror_jpg.py) =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_jpg.py (rev 0) +++ trunk/lib/ror/depcheckerplugins/ror_jpg.py 2007-07-06 00:28:08 UTC (rev 87) @@ -0,0 +1,9 @@ +import os, os.path, re +import subprocess + +def getDependencies(filename): + return { + "provide":{ + "file":[os.path.basename(filename)] + } + } Deleted: trunk/lib/ror/depcheckerplugins/ror_load.py =================================================================== --- trunk/lib/ror/depchecker/ror_load.py 2007-07-05 23:29:38 UTC (rev 83) +++ trunk/lib/ror/depcheckerplugins/ror_load.py 2007-07-06 00:28:08 UTC (rev 87) @@ -1,5 +0,0 @@ -import os, os.path -import ror_truck - -def getDependencies(filename): - return ror_truck.getDependencies(filename) Copied: trunk/lib/ror/depcheckerplugins/ror_load.py (from rev 86, trunk/lib/ror/depchecker/ror_load.py) =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_load.py (rev 0) +++ trunk/lib/ror/depcheckerplugins/ror_load.py 2007-07-06 00:28:08 UTC (rev 87) @@ -0,0 +1,5 @@ +import os, os.path +import ror_truck + +def getDependencies(filename): + return ror_truck.getDependencies(filename) Deleted: trunk/lib/ror/depcheckerplugins/ror_material.py =================================================================== --- trunk/lib/ror/depchecker/ror_material.py 2007-07-05 23:29:38 UTC (rev 83) +++ trunk/lib/ror/depcheckerplugins/ror_material.py 2007-07-06 00:28:08 UTC (rev 87) @@ -1,39 +0,0 @@ -import os, os.path, re -import subprocess - -RE1 = r"^\s*texture.?([a-zA-Z0-9_\-]*\.[a-zA-Z0-9]*)\s?.*" -RE2 = r"\s?material\s?([a-zA-Z0-9_/\-\\]*).?" - -def readFile(filename): - f=open(filename, 'r') - content = f.readlines() - f.close() - return content - -def parseRE(content, r): - vals = [] - for line in content: - m = re.match(r, line) - if not m is None and len(m.groups()) > 0: - valname = m.groups()[0] - if not valname in vals: - vals.append(valname) - return vals - -def getDependencies(filename): - content = readFile(filename) - dep = parseRE(content, RE1) - prov = parseRE(content, RE2) - if len(dep) == 0: - print "no texture found in material file " + filename - if len(prov) == 0: - print "no material found in material file " + filename - else: - return { - "depends":{ - "file":dep - }, - "provide":{ - "materials":prov - } - } Copied: trunk/lib/ror/depcheckerplugins/ror_material.py (from rev 86, trunk/lib/ror/depchecker/ror_material.py) =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_material.py (rev 0) +++ trunk/lib/ror/depcheckerplugins/ror_material.py 2007-07-06 00:28:08 UTC (rev 87) @@ -0,0 +1,39 @@ +import os, os.path, re +import subprocess + +RE1 = r"^\s*texture.?([a-zA-Z0-9_\-]*\.[a-zA-Z0-9]*)\s?.*" +RE2 = r"\s?material\s?([a-zA-Z0-9_/\-\\]*).?" + +def readFile(filename): + f=open(filename, 'r') + content = f.readlines() + f.close() + return content + +def parseRE(content, r): + vals = [] + for line in content: + m = re.match(r, line) + if not m is None and len(m.groups()) > 0: + valname = m.groups()[0] + if not valname in vals: + vals.append(valname) + return vals + +def getDependencies(filename): + content = readFile(filename) + dep = parseRE(content, RE1) + prov = parseRE(content, RE2) + if len(dep) == 0: + print "no texture found in material file " + filename + if len(prov) == 0: + print "no material found in material file " + filename + else: + return { + "depends":{ + "file":dep + }, + "provide":{ + "materials":prov + } + } Deleted: trunk/lib/ror/depcheckerplugins/ror_mesh.py =================================================================== --- trunk/lib/ror/depchecker/ror_mesh.py 2007-07-05 23:29:38 UTC (rev 83) +++ trunk/lib/ror/depcheckerplugins/ror_mesh.py 2007-07-06 00:28:08 UTC (rev 87) @@ -1,48 +0,0 @@ -import os, os.path, re -import subprocess - -CONVERTERBIN = "C:\\OgreCommandLineTools\\OgreXmlConverter.exe" -REs = [r".*material\s?=[\"\']([a-zA-Z0-9_/\-\\]*)[\"\'].*"] - -def readFile(filename): - f=open(filename, 'r') - content = f.readlines() - f.close() - return content - -def convertToXML(filename): - # try to convert to .msh.xml first! - cmd = CONVERTERBIN + " " + filename - p = subprocess.Popen(cmd, shell = False, cwd = os.path.dirname(CONVERTERBIN), stderr = subprocess.PIPE, stdout = subprocess.PIPE) - p.wait() - print "mesh converted: " + filename - -def parseRE(content): - deps = [] - for line in content: - for r in REs: - m = re.match(r, line) - if not m is None and len(m.groups()) > 0: - depname = m.groups()[0] - if not depname in deps: - deps.append(depname) - return deps - - -def getDependencies(filename): - xmlfilename = os.path.join(os.path.dirname(filename), os.path.basename(filename)+".xml") - if not os.path.isfile(xmlfilename): - convertToXML(filename) - try: - content = readFile(xmlfilename) - except Exception, e: - print e - dep = parseRE(content) - if len(dep) == 0: - print "no material found for file " + filename - else: - return { - "depends":{ - "materials":dep - } - } Copied: trunk/lib/ror/depcheckerplugins/ror_mesh.py (from rev 86, trunk/lib/ror/depchecker/ror_mesh.py) =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_mesh.py (rev 0) +++ trunk/lib/ror/depcheckerplugins/ror_mesh.py 2007-07-06 00:28:08 UTC (rev 87) @@ -0,0 +1,49 @@ +import sys, os, os.path, re +import subprocess + +# todo remove this hardcoded stuff here! +CONVERTERBIN = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..\\..\\..\\tools\\OgreCommandLineTools\\OgreXmlConverter.exe")) +REs = [r".*material\s?=[\"\']([a-zA-Z0-9_/\-\\]*)[\"\'].*"] + +def readFile(filename): + f=open(filename, 'r') + content = f.readlines() + f.close() + return content + +def convertToXML(filename): + # try to convert to .msh.xml first! + cmd = CONVERTERBIN + " " + filename + p = subprocess.Popen(cmd, shell = False, cwd = os.path.dirname(CONVERTERBIN), stderr = subprocess.PIPE, stdout = subprocess.PIPE) + p.wait() + print "mesh converted: " + filename + +def parseRE(content): + deps = [] + for line in content: + for r in REs: + m = re.match(r, line) + if not m is None and len(m.groups()) > 0: + depname = m.groups()[0] + if not depname in deps: + deps.append(depname) + return deps + + +def getDependencies(filename): + xmlfilename = os.path.join(os.path.dirname(filename), os.path.basename(filename)+".xml") + if not os.path.isfile(xmlfilename): + convertToXML(filename) + try: + content = readFile(xmlfilename) + except Exception, e: + print e + dep = parseRE(content) + if len(dep) == 0: + print "no material found for file " + filename + else: + return { + "depends":{ + "materials":dep + } + } Deleted: trunk/lib/ror/depcheckerplugins/ror_overlay.py =================================================================== --- trunk/lib/ror/depchecker/ror_overlay.py 2007-07-05 23:29:38 UTC (rev 83) +++ trunk/lib/ror/depcheckerplugins/ror_overlay.py 2007-07-06 00:28:08 UTC (rev 87) @@ -1,5 +0,0 @@ -import os, os.path, re -import subprocess - -def getDependencies(filename): - pass Copied: trunk/lib/ror/depcheckerplugins/ror_overlay.py (from rev 86, trunk/lib/ror/depchecker/ror_overlay.py) =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_overlay.py (rev 0) +++ trunk/lib/ror/depcheckerplugins/ror_overlay.py 2007-07-06 00:28:08 UTC (rev 87) @@ -0,0 +1,5 @@ +import os, os.path, re +import subprocess + +def getDependencies(filename): + pass Deleted: trunk/lib/ror/depcheckerplugins/ror_png.py =================================================================== --- trunk/lib/ror/depchecker/ror_png.py 2007-07-05 23:29:38 UTC (rev 83) +++ trunk/lib/ror/depcheckerplugins/ror_png.py 2007-07-06 00:28:08 UTC (rev 87) @@ -1,9 +0,0 @@ -import os, os.path, re -import subprocess - -def getDependencies(filename): - return { - "provide":{ - "file":[os.path.basename(filename)] - } - } Copied: trunk/lib/ror/depcheckerplugins/ror_png.py (from rev 86, trunk/lib/ror/depchecker/ror_png.py) =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_png.py (rev 0) +++ trunk/lib/ror/depcheckerplugins/ror_png.py 2007-07-06 00:28:08 UTC (rev 87) @@ -0,0 +1,9 @@ +import os, os.path, re +import subprocess + +def getDependencies(filename): + return { + "provide":{ + "file":[os.path.basename(filename)] + } + } Deleted: trunk/lib/ror/depcheckerplugins/ror_truck.py =================================================================== --- trunk/lib/ror/depchecker/ror_truck.py 2007-07-05 23:29:38 UTC (rev 83) +++ trunk/lib/ror/depcheckerplugins/ror_truck.py 2007-07-06 00:28:08 UTC (rev 87) @@ -1,21 +0,0 @@ -import os, os.path -from truckparser import * - -def getDependencies(filename): - p = rorparser() - p.parse(filename) - if not 'globals' in p.tree.keys(): - print "truck parsing error on file " + filename - truckfilename = os.path.basename(filename) - truckname, ext = os.path.splitext(truckfilename) - matname = p.tree['globals'][0]['data'][2] - print truckname - return { - "depends":{ - "materials":[matname], - #"file":[truckname+'-mini.png'] - }, - "provide":{ - "file":[truckfilename] - } - } Copied: trunk/lib/ror/depcheckerplugins/ror_truck.py (from rev 86, trunk/lib/ror/depchecker/ror_truck.py) =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_truck.py (rev 0) +++ trunk/lib/ror/depcheckerplugins/ror_truck.py 2007-07-06 00:28:08 UTC (rev 87) @@ -0,0 +1,21 @@ +import os, os.path +from ror.truckparser import * + +def getDependencies(filename): + p = rorparser() + p.parse(filename, verbose=False) + if not 'globals' in p.tree.keys(): + print "truck parsing error on file " + filename + truckfilename = os.path.basename(filename) + truckname, ext = os.path.splitext(truckfilename) + matname = p.tree['globals'][0]['data'][2] + #print truckname + return { + "depends":{ + "materials":[matname], + #"file":[truckname+'-mini.png'] + }, + "provide":{ + "file":[truckfilename] + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-08 01:37:59
|
Revision: 88 http://roreditor.svn.sourceforge.net/roreditor/?rev=88&view=rev Author: rorthomas Date: 2007-07-07 18:37:54 -0700 (Sat, 07 Jul 2007) Log Message: ----------- * complete rewrite of the dependency checker component Modified Paths: -------------- trunk/lib/ror/depchecker.py trunk/lib/ror/depcheckerplugins/ror_bmp.py trunk/lib/ror/depcheckerplugins/ror_dds.py trunk/lib/ror/depcheckerplugins/ror_jpg.py trunk/lib/ror/depcheckerplugins/ror_material.py trunk/lib/ror/depcheckerplugins/ror_mesh.py trunk/lib/ror/depcheckerplugins/ror_png.py trunk/lib/ror/depcheckerplugins/ror_truck.py Modified: trunk/lib/ror/depchecker.py =================================================================== --- trunk/lib/ror/depchecker.py 2007-07-06 00:28:08 UTC (rev 87) +++ trunk/lib/ror/depchecker.py 2007-07-08 01:37:54 UTC (rev 88) @@ -1,19 +1,112 @@ #Thomas Fischer 06/07/2007, th...@th... -import sys, os, os.path +import sys, os, os.path, copy +import pydot -#DIR = "C:\\games\\RoR-0.31a\\data" DEPCHECKPATH = "depcheckerplugins" +sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), DEPCHECKPATH)) +from deptools import * + + + class RoRDepChecker: - def __init__(self, path, mode): - sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), DEPCHECKPATH)) - self.deptree = {'materials':{},'file':{}} + def __init__(self, path, mode, dependfilename): + self.filedeps = {} self.dir = path + self.dependfilename = dependfilename self.getfiles() - self.createDepGraph() - self.viewDepGraph(mode) + self.createDeps() + self.generateCrossDep() + self.drawGraph() + + def getSingleDepRecursive(self, file, depth = 0): + req = [file] + for filenameA in self.filedeps.keys(): + fileA = self.filedeps[filenameA] + #for r in + + def generateSingleGraph(self): + if not self.dependfilename in self.filedeps.keys(): + print "file not found in the dependency tree!" + sys.exit(0) + def drawGraph(self): + edges = [] + for filenameA in self.filedeps.keys(): + fileA = self.filedeps[filenameA] + for rel in fileA[REQUIRES][FILE]: + e = (filenameA, rel) + edges.append(e) + #edges = [(1,2), (1,3), (1,4), (3,4)] + graph = pydot.graph_from_edges(edges) + graph.write('dependencies.png', prog='dot', format='png') + + + def generateCrossDep(self): + crossdep = 0 + notfound = {MATERIAL:[], FILE:[]} + newtree = copy.deepcopy(self.filedeps) + for filenameA in self.filedeps.keys(): + fileA = self.filedeps[filenameA] + for relation in [REQUIRES, OPTIONAL]: + for type in TYPES: + for reqfile in fileA[relation][type]: + found = False + for filenameB in self.filedeps.keys(): + fileB = self.filedeps[filenameB] + if filenameA == filenameB: + continue + #print filenameA, relation, type, reqfile, fileB[PROVIDES][type] + if reqfile in fileB[PROVIDES][type]: + crossdep += 1 + newtree[filenameB][REQUIREDBY][FILE].append(filenameA) + if not filenameB in fileA[REQUIRES][FILE]: + # found new + newtree[filenameA][REQUIRES][FILE].append(filenameB) + found = True + break + if not found and relation != OPTIONAL: + notfound[type].append(reqfile) + self.filedeps = newtree + #print newtree + if len(notfound[MATERIAL]) == 0 and len(notfound[FILE]) == 0: + print "### nothing missing, great!" + else: + if len(notfound[FILE]) > 0: + print "### we are missing the following files:" + print " " ,str(notfound[FILE]) + if len(notfound[MATERIAL]) > 0: + print "### we are missing the following materials:" + print " " ,str(notfound[MATERIAL]) + print "### found %d files, of which %d have dependencies." % (len(self.files), len(self.filedeps)) + for filename in self.filedeps.keys(): + file = self.filedeps[filename] + line = " %-30s " % filename + linesub = "" + sublines = [] + if len(file[REQUIRES][FILE]) > 3: + linesub = "requires: %d files" % (len(file[REQUIRES][FILE])) + elif len(file[REQUIRES][FILE]) > 0: + linesub = "requires: %s" % (str(file[REQUIRES][FILE])) + if linesub != "": + sublines.append("%-50s" % linesub) + + linesub = "" + if len(file[REQUIREDBY][FILE]) > 3: + linesub = "required by: %d files" % (len(file[REQUIREDBY][FILE])) + elif len(file[REQUIREDBY][FILE]) > 0: + linesub = "required by: %s" % (str(file[REQUIREDBY][FILE])) + if linesub != "": + sublines.append("%-50s" % linesub) + line += ", ".join(sublines) + print line + print "### %d files depends on each other" % (crossdep) + print "### advanced file dependency check finished" + + + #if len(file[PROVIDES]) == 0 + def getDependencies(self, extension, filename): try: #print "trying to use module: %s" % "ror_" + extension.lstrip(".") @@ -22,118 +115,79 @@ #print "module not found!" #print e return - pass - + pass return mod.getDependencies(filename) - def getfiles(self): fl = {} for root, dirs, files in os.walk(self.dir): for f in files: - if f in fl.keys(): - print "double file found: %s!" % (f) - continue - fl[f] = {} - fl[f]['filename'] = os.path.join(root, f) + fn = os.path.join(root, f) + fl[fn] = {} #for fk in fl.keys(): - # print "%30s: %s" % (fk, fl[fk]['filename']) - print "found %d files!" % (len(fl.keys())) + # print "%10s %s" % ("", fk) + #print "found %d files!" % (len(fl.keys())) self.files = fl - - def viewDepGraph(self, mode = "all"): - displayedfiles = 0 - str = "" - str += "-------------------------------------------------------------\n" - if mode == "all": - str += "--- Dependency tree for %s \n" % (self.dir) - elif mode == "unused": - str += "--- Unused resources for %s \n" % (self.dir) - elif mode == "missing": - str += "--- Missing requirements for %s \n" % (self.dir) - str += "-------------------------------------------------------------\n" - for fk in self.deptree.keys(): - str += "--------- Category: %-20s -------------------\n" % fk - for k in self.deptree[fk].keys(): - req = self.deptree[fk][k]['depends'] - if len(req) > 0: - reqstr = ", ".join(req) + def newRelation(self, dep): + # ensures that each field exists + tmp = {} + for rel in RELATIONS: + tmp[rel] = {} + for type in TYPES: + tmp[rel][type] = [] + for rel in dep.keys(): + for type in dep[rel].keys(): + if type == FILE: + for f in dep[rel][type]: + #print f + tmp[rel][type].append(os.path.basename(f)) else: - reqstr = "None" - found = self.deptree[fk][k]['provide'] - if len(found) > 0: - foundstr = ", ".join(found) - else: - foundstr = "None" - display = False - if mode == "all": - display = True - elif mode == "unused": - display = (len(found) > 0 and len(req) == 0) - elif mode == "missing": - display = (len(req) > 0 and len(found) == 0) - if display: - displayedfiles += 1 - if mode == "all": - str += "%40s: %16s%-10s\n%41s %16s%-10s\n" % (k, "required by: ", reqstr, "", "provided by: ", foundstr) - elif mode == "unused": - str += "%40s: %16s%-10s\n" % (k, "provided by: ", foundstr) - elif mode == "missing": - str += "%40s: %16s%-10s\n" % (k, "required by: ", reqstr) - if displayedfiles > 0: - print str - elif displayedfiles == 0: - if mode == "all": - print "No resources found at all!" - elif mode == "unused": - print "No resources unused!" - elif mode == "missing": - print "No resources missing!" - + tmp[rel][type] = dep[rel][type] + return tmp - - def createDepGraph(self): - #extlist = [] - for fk in self.files.keys(): - fn, ext = os.path.splitext(fk) - filename = self.files[fk]['filename'] - dep = self.getDependencies(ext, filename) - keywords = ['provide', 'depends'] - if not dep is None: - for kw in keywords: - if kw in dep.keys(): - for pk in dep[kw].keys(): - for p in dep[kw][pk]: - #print kw, pk, p - if not p in self.deptree[pk].keys(): - self.deptree[pk][p] = {keywords[0]:[], keywords[1]:[]} - self.deptree[pk][p][kw].append(fk) - - - #if not ext in extlist: - # extlist.append(ext) - #print extlist - + def createDeps(self): + tree = self.filedeps + print "### dependency checker log following" + for filename in self.files.keys(): + onlyfilename, extension = os.path.splitext(filename) + basefilename = os.path.basename(filename) + dependencies = self.getDependencies(extension, filename) + #print "DEP "+ basefilename +" / "+str(dependencies) + if not dependencies is None: + for relation in dependencies.keys(): + deps = dependencies[relation] + tree[basefilename] = {} + tree[basefilename][relation] = {} + for type in deps.keys(): + tree[basefilename] = self.newRelation(dependencies) + print "### file dependency check finished" def usage(): print "usage: %s <path to inspect> <all or unused or missing>" % os.path.basename(sys.argv[0]) print "for example: %s c:\\ror\\data missing" % os.path.basename(sys.argv[0]) - print " * all will display all dependencies, inclusive met ones" - print " * missing will display only unfulfilled dependencies" - print " * unused will display resources that are not in use" + print " valid modes:" + print " 'all' displays all dependencies, inclusive fulfilled ones" + print " 'missing' displays only unfulfilled dependencies" + print " 'unused' displays resources that are not in use" + print " 'dtree <resourcename>' displays the dependency tree of the given resource name" sys.exit(0) def main(): - if len(sys.argv) != 3: - usage() if not os.path.isdir(sys.argv[1]): print "%s is not a valid directory!" % sys.argv[1] usage() - if not sys.argv[2] in ['all', 'missing', 'unused']: - print "%s is not a valid mode!" % sys.argv[2] + if (len(sys.argv) == 3 and sys.argv[2] in ['all', 'missing', 'unused']) or (len(sys.argv) == 4 and sys.argv[2] in ['dtree']): + pass + else: + print "%s is not a valid mode, or incorrect arguments!" % sys.argv[2] usage() - RoRDepChecker(sys.argv[1], sys.argv[2]) + + dependfilename = "" + if len(sys.argv) == 4 and sys.argv[2] in ['dtree'] and sys.argv[3].strip() != "": + dependfilename = sys.argv[3].strip() + + RoRDepChecker(sys.argv[1], sys.argv[2], dependfilename) if __name__ == "__main__": main() Modified: trunk/lib/ror/depcheckerplugins/ror_bmp.py =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_bmp.py 2007-07-06 00:28:08 UTC (rev 87) +++ trunk/lib/ror/depcheckerplugins/ror_bmp.py 2007-07-08 01:37:54 UTC (rev 88) @@ -1,9 +1,14 @@ import os, os.path, re import subprocess +from deptools import * def getDependencies(filename): return { - "provide":{ - "file":[os.path.basename(filename)] - } + OPTIONAL:{ + }, + REQUIRES:{ + }, + PROVIDES:{ + FILE:[filename], + }, } Modified: trunk/lib/ror/depcheckerplugins/ror_dds.py =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_dds.py 2007-07-06 00:28:08 UTC (rev 87) +++ trunk/lib/ror/depcheckerplugins/ror_dds.py 2007-07-08 01:37:54 UTC (rev 88) @@ -1,9 +1,14 @@ import os, os.path, re import subprocess +from deptools import * def getDependencies(filename): return { - "provide":{ - "file":[os.path.basename(filename)] - } + OPTIONAL:{ + }, + REQUIRES:{ + }, + PROVIDES:{ + FILE:[filename], + }, } Modified: trunk/lib/ror/depcheckerplugins/ror_jpg.py =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_jpg.py 2007-07-06 00:28:08 UTC (rev 87) +++ trunk/lib/ror/depcheckerplugins/ror_jpg.py 2007-07-08 01:37:54 UTC (rev 88) @@ -1,9 +1,14 @@ import os, os.path, re import subprocess +from deptools import * def getDependencies(filename): return { - "provide":{ - "file":[os.path.basename(filename)] - } + OPTIONAL:{ + }, + REQUIRES:{ + }, + PROVIDES:{ + FILE:[filename], + }, } Modified: trunk/lib/ror/depcheckerplugins/ror_material.py =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_material.py 2007-07-06 00:28:08 UTC (rev 87) +++ trunk/lib/ror/depcheckerplugins/ror_material.py 2007-07-08 01:37:54 UTC (rev 88) @@ -1,5 +1,6 @@ import os, os.path, re import subprocess +from deptools import * RE1 = r"^\s*texture.?([a-zA-Z0-9_\-]*\.[a-zA-Z0-9]*)\s?.*" RE2 = r"\s?material\s?([a-zA-Z0-9_/\-\\]*).?" @@ -30,10 +31,13 @@ print "no material found in material file " + filename else: return { - "depends":{ - "file":dep - }, - "provide":{ - "materials":prov - } - } + OPTIONAL:{ + }, + REQUIRES:{ + FILE:dep, + }, + PROVIDES:{ + MATERIAL:prov, + FILE:[filename], + }, + } \ No newline at end of file Modified: trunk/lib/ror/depcheckerplugins/ror_mesh.py =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_mesh.py 2007-07-06 00:28:08 UTC (rev 87) +++ trunk/lib/ror/depcheckerplugins/ror_mesh.py 2007-07-08 01:37:54 UTC (rev 88) @@ -1,6 +1,8 @@ import sys, os, os.path, re import subprocess +from deptools import * + # todo remove this hardcoded stuff here! CONVERTERBIN = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..\\..\\..\\tools\\OgreCommandLineTools\\OgreXmlConverter.exe")) REs = [r".*material\s?=[\"\']([a-zA-Z0-9_/\-\\]*)[\"\'].*"] @@ -43,7 +45,13 @@ print "no material found for file " + filename else: return { - "depends":{ - "materials":dep - } + OPTIONAL:{ + }, + REQUIRES:{ + MATERIAL:dep, + }, + PROVIDES:{ + FILE:[filename], + }, } + Modified: trunk/lib/ror/depcheckerplugins/ror_png.py =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_png.py 2007-07-06 00:28:08 UTC (rev 87) +++ trunk/lib/ror/depcheckerplugins/ror_png.py 2007-07-08 01:37:54 UTC (rev 88) @@ -1,9 +1,15 @@ import os, os.path, re import subprocess +from deptools import * + def getDependencies(filename): return { - "provide":{ - "file":[os.path.basename(filename)] - } + OPTIONAL:{ + }, + REQUIRES:{ + }, + PROVIDES:{ + FILE:[filename], + }, } Modified: trunk/lib/ror/depcheckerplugins/ror_truck.py =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_truck.py 2007-07-06 00:28:08 UTC (rev 87) +++ trunk/lib/ror/depcheckerplugins/ror_truck.py 2007-07-08 01:37:54 UTC (rev 88) @@ -1,5 +1,6 @@ import os, os.path from ror.truckparser import * +from deptools import * def getDependencies(filename): p = rorparser() @@ -9,13 +10,25 @@ truckfilename = os.path.basename(filename) truckname, ext = os.path.splitext(truckfilename) matname = p.tree['globals'][0]['data'][2] + + # collect props + props = [] + if 'props' in p.tree.keys(): + for prop in p.tree['props']: + props.append(prop['data'][-1]) + #print props + #print truckname return { - "depends":{ - "materials":[matname], - #"file":[truckname+'-mini.png'] - }, - "provide":{ - "file":[truckfilename] - } + OPTIONAL:{ + MATERIAL:["tracks/"+truckname+'help'], + FILE:[truckname+'-mini.png'], + }, + REQUIRES:{ + MATERIAL:[matname], + FILE:props, + }, + PROVIDES:{ + FILE:[filename], + }, } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-08 04:31:14
|
Revision: 93 http://roreditor.svn.sourceforge.net/roreditor/?rev=93&view=rev Author: rorthomas Date: 2007-07-07 21:31:12 -0700 (Sat, 07 Jul 2007) Log Message: ----------- minors Modified Paths: -------------- trunk/lib/ror/depchecker.py Added Paths: ----------- trunk/lib/ror/031amd5.txt Added: trunk/lib/ror/031amd5.txt =================================================================== --- trunk/lib/ror/031amd5.txt (rev 0) +++ trunk/lib/ror/031amd5.txt 2007-07-08 04:31:12 UTC (rev 93) @@ -0,0 +1,593 @@ +island.cfg 37a53a2d0719b48b09b3c0f830cddf6d +radiobox.png b38ecc8fb5ad75e016797fbf783bee59 +RenderSystem_Direct3D9.dll 4aaf585c9496bfacde549f08c1b669a1 +nhelens-0h.jpg 23c5a7a87c973a7857faf2418b4f33fc +semi.truck e19d61fed92db367d44ca994ad7773e4 +derooyrwheelface.png f1f0f5ae9417e286e3b7cafb6c5694ea +road-runway-middle.mesh 0c46c887a71e2aafa6b6fe1e4229026d +hangardoor.png 93dbedc7727003affe6d1759b02a43e7 +road-slab.odef db9d63cb14af62a282effd4e7b2dd551 +sign-dir-cold-cast.mesh 26fa62bd0593ade544f7153383503f34 +nhelens-10h.jpg eea130e8288935b349297c8260eaa5d5 +C1.material 12d5857656ebe02add37d9a003ea26de +caliber.png 9ffc3ecf5f2a57078f315f18c7902ac4 +road-block1.mesh a4a6cda330df47b225be5d11d9b34506 +OgrePlatform.dll 7c21a81989c77606a1cf157c87c911ec +nhelens.jpg 8493beabc36ab508ec07759c7549ad4b +medium.wav 5b73153687162a2f755c63c36b25c495 +clutch-off.png dfe0cfbd49cb38aad2221f311b1c7ee4 +dodgepolice.truck e62bf2e727d3ff76a00d64597604ad32 +redbeaconflare.png 3d642eed8572431d87d994749f6131d3 +brake.wav 4a2094702d668c35d2d2dad01fb55431 +flatdaf-mini.png 9b7c8523e710d2a64e9fb0eaf10d433d +AE86.truck e937c93f69561ea8feec51b945d1a79c +3d_dashboard.material 795811d8468bbd73e23d3972389e968d +Blur_ps.glsl 223dbbe3de3343a78843013dc768bb45 +bluehouse.png d63c4321a3b532a575e9a1f3efead4b0 +zlib1.dll 3ecfe1baeab591769664567c4e653e6f +ttwinwheelband.png aff73861aa1028f5559766dae1466f98 +nhelens-7h.jpg ba5a226dd3fa6ecf83bd26f7f27fb231 +myhangar2.png d16b03c89cb60d641f2d60a40bdaefb5 +Plugin_ParticleFX.dll 1f4bfae8ab97b3b9bc292aa90ac9c57a +dashbar.png 62bd47c4ff9f6ccdee23574a5b292c0c +whiteobs.png ac5106827190a4dce79bff3b48e50dca +altimeter.png 551b2689c287f03ccdc4340b070caf21 +road-park.odef dd2f5a727eb9e5950c062b87e16c375a +nhelens-16h.jpg 3d3a9a632df98fc14f563882ec055139 +aspen-11h.jpg 0dc2abfa83940f41512b5ba1493283c8 +redbeacon.mesh e60e53960fbbe0c801b989c7703ace06 +Sunburn.material 381a87a3190874d7a8fb809a8c803926 +ampliroll.png f4555711f56826739f3f18e29adeb65b +C1.jpg 446e4959501900381876fc64cc8adc07 +chapel.material f07b66c106b5bd471acf500f52efce74 +prop.png 985161fbf152125a9daeb4fed297d8a4 +sign-rightturn.png 32524dc2dc4592a40f2ac1885249b96c +hornstop.wav 65acfa9613af805b8d936584cdbc53aa +aspen-17h.jpg 2b70e06566307f2bcd90bc9624e478d5 +multibenne.material ec572a0ec17ee23e8abd807f36a2ce0b +an12fairing-right.mesh 9f6b1fe8e3f1fe705c996b3939386f27 +Blur0_ps20.hlsl db9d527f2bee3989a5cff0d5d57517b4 +ampliroll_emissive.png 0c9fcab3c70fbf26c10039795da12f96 +road-block2.mesh 7a87837a27fa34709c40e28a9a7ef308 +flatdaf.truck 7a1bdcf3a1b2f89b0837c84e4e37576a +dafrwheelface.png f1f0f5ae9417e286e3b7cafb6c5694ea +dafwheelband.png 787aa1bbe2dbbfaff3f10ab9fb5becb9 +pbrake-on.png dc1798a002350c56c152f7cde9b229d5 +C1.truck 9b8ec7c71f4586d9c1c94cfd9c1828b3 +myobs.odef a6303e4e703e9e77f515fde800394e95 +Example_Fresnel.cg 1a3e69c7dea2e5d83cde299c27e54b2a +ae86wheelband.png 7564991a91a23beaf12a32a12603e232 +road-slab1.odef ec1713d49079f07eb8db82fbc444dad7 +road-slab2.mesh 2e39890bf442f338000b839b84db19bc +seat.mesh 21f4da10514233acf7bba1da9a5a6ab2 +nhelens-9h.jpg f97146588397cac7e46c164132d25479 +wheelprop.mesh d318ead34b5b1601c33dfbcf8be34508 +Plugin_CgProgramManager.dll 8e7e6b2068d1c5ab15a92bba87885356 +sign-rocks.mesh bae37b68c00885d07f673fc288251566 +redneedle.png ca0eadf0510fef288ecf65b2200a78db +ampliroll.material 943aa619b194cff2f1afbae48feebedb +OpenAL32.dll 989a44283a84ac1b99aeff5bf7461af4 +agoras.truck 0c233e955805c5382b5da831613df9fc +sign-bump.odef 5ec21719c7fb30f27668f734f6e23903 +island-8h.jpg 4d4177686bf73b4ec9e65a19c90b97fd +beaconflare.png 16db5138f7e2ca552017a924a1fefb46 +force.wav a9079ad3d8725e69b9d7568b351e02f7 +3d_dashboard_needles.overlay 931ab010667ef8f49ae9aac15e669e41 +lab.mesh 8ab560df1552941ef8c6ac05f200bef0 +roadborderright.odef 6fa1ad42f94205012894125a80c9c2a0 +beam.mesh eca5570b2469fa187c973d3ce29816a2 +horn.wav 5f4306d681e8ddf42d82caedac0b5414 +flatdaf.material bf0af31dcf7fb683f6dfea6d365074ce +sign-pos-coldwater.mesh 9b5e6f2c9387a9318b1b15681e7cfb3d +hangardoor.mesh 9b3d3f7bf5e7fba4df30c415f1e13823 +liebherrwheelface.png 53b690fb4fee71500ac48d7db973fbf4 +ttwinwheelface.png efc95e640f053bf567a79929a397d571 +hydrostop.wav 9cc492e5d659b6566722430fc9b96f50 +pedal.png dbc4ae080ab06aa842068401b97b4fa5 +turbotwin.png 3999c3a4899af0cd03913907ff7652e4 +NACA64.1.412.afl f13e1c53e367408d1a94d1170f588dc3 +sign-fall.mesh afdbdb13f422ceace941d1283a17419d +road-street.odef bff7bd13c1191d1c7ef096325e65b6be +resources.cfg 241ca437b1f011c9ccf348744cdba784 +terrain_detail-old.jpg 7e5db3060401496bf132b053b14a0164 +smallhouse.jpg ec02be41f096d2423aef4c0c0af7808e +island-12h.jpg 9a8bb1ff4ccf632a9709b63d1729144c +aspen.jpg 40c45d418c8aef5d815a42504bd32448 +road-tee.odef 3db7a7fab4e619c5f37abe1318228f64 +boxtrailer.load 73506570bd504a8a91a62b6b85ebaed8 +park.wav bb53d3e7593f40d0941c89e3357d19b3 +Toyota86mat.material cbace6f1e3194b5ad069d0d877f5679f +SkyLightAbsorption.cg 574861cf4f49b8655748a41c7150c3d0 +needles.overlay 288cc87dbf4a6ef08441d41d7a3b1db6 +EarthClearSkyFog.png 6c21d661362c53f330473932b5979cde +credits.overlay 73d074f6aeaf4b2e108ee43db310bfa3 +t813.truck 677757582710bd4183aea082bee6a153 +starter.wav 6d01bf908c2ce0341e901787f83c0083 +tatrawheelband.png 03699cb787c9846adf10ae22e221f3d5 +Clark-Y.afl f0a11aa827713846d8e0d78d84c830bb +dust.png 94a08ca544b36c30db3b49c6a09f314d +truckshop.material b5fa3ec6b15fb8c5440245b9043ac1d0 +beacon.mesh 6d1fb3ba01a4f80c6875112b468685e7 +island.raw e0634004e84955b700500e29f8f04f89 +batt-off.png 74cfde1867fa7f2193b060a847fd2f19 +lights-on.png b2d58b7dfdae5e216a0ee8c920c45516 +multibenne.truck 75d431f8f9e01e26d2dad44bab0aa39f +road-runway-middle.odef 3c67e9848ab4dac5c81c6e36905a77a8 +dashboard.material dd3f2236e2097ac6abb13f4343ccc89a +sphere.mesh 0b2ac7cac218e5f24e9197eb02c11fbe +nedlloyd.png 83d18bc6286ff871470c878e0b734d94 +various.overlay a55fb31dd39c5b27174704689275d0d8 +sign-warning.odef a24135cfa049abc07e90392e6d839399 +tunapicker.odef ef4ce499dea41d9b655245fef4ddfa06 +road-park.mesh a1c5f3d5cc983858a5ca96aa48bcd2b6 +lights-off.png 0481f6ca97671546cb05498d4da64a70 +semi.material 99050dca1caae729464f1838e5d824eb +agoras-mini.png ee18c0ce303430929ad14ff861023e9a +low.wav 93e0ef2a558ddb2c95b229578d5556cf +roadquay.mesh 8bdfba2e2408bac95072b1491042df03 +radiochecked.png 7e61aceaf416883dc1b5bab8f6b1c29b +roadborderright.mesh 8f24b09e15dde7615540f484b47cbfc2 +sign-fall.odef fce809fab7640b58a0230b397b2626db +multibenne_emissive.png b6393085104d0ced9cbe8002437ad85c +selectbeamicon.png d5955cceb6e766c5d2a36678eb871a44 +turbotwin.truck 6899663ed025b9bde4dfa11df7514c1d +sign-dir-stud-cast.mesh d174faa705b0897ac9bf790a3c44e315 +stand2.material 8d74154173d7dc53bb8295773f1c77c5 +high.wav cc2c993691a47efc01446102a9bf11e7 +aoa.png 6274f1d41d36dcaaed401558efaa7fa3 +creak.wav 93e79a6e535b80ea40607f0967bb6f4a +MotionBlur.material 2db7237d3269c943a25290cd0fd78e60 +EarthClearSky.psd 1ebb8c9577fc3ae9f5233c2e2edf75d4 +challenger.truck 7500c9f94709b88e07c2e45873e18b6d +wahoo-mini.png da90fa94262f5ebcdbd50e0d606444bc +daf.material c666f397bfc203d052883527a8e99c0b +sign-dir-john-cast.mesh e6c0c987c34303ac20f8e8ca589945e3 +nedlloyd.mesh d44ec959aa879b3fc09bd1c0e682f1ba +airrpm.png b61525c9a9cd3e532d70e4561b7d7716 +batt-on.png 83baeb768cb7a418c0a298a4cd06b5b7 +sign-rocks.odef df8a31edff53df3e86388de40f789f15 +clutch-on.png acb83ccc810cdad35db7d84c6efe741f +mirror.png 294365f3f71136d66fb6974293cfa210 +wrap_oal.dll 8ada06c5270912b4a383815f5be1e669 +liebherr.png 06461ddd6502e7390520ec5e6b90ef69 +agora.material 068b06a3e805232da0cab7e7c8cc813a +road-slab1.mesh 89187c0520b23b4fdc44e5cc8b04f787 +nedlloyd.material 7381446c0b5760957543986a59a68d57 +valve.wav d29298d7ea956e4a9630128a68dfccee +Scanialoader-mini.png 6132949e5c78ae792635e4f8c3dbbdc3 +caliberwheelface.jpg 3d70dc502844bc44208e46aad72fad1a +aspen-16h.jpg 9f159daf78ef5232d45bb500a7471b4f +OgreCore.zip 81fb5297b956144790991d1797e3c164 +smallhouse.material cfdfcb924610c59242315da4b04b2d4c +turbotwin_emissive.png 49a4cbbc36d2c8325477401e88ae2be1 +chapel.mesh 84a665990f33935e9c45e13285cbcf05 +crate.load 6ec00209f51e0eca2af3543a059afc8b +SideBar.material 9ab896eba1ae1c9d9f16cdfb3ceffab7 +moveicon.png d624c9f15df535c3739777b18a59ad1a +barge.load 8248d4e193173113fe326b240efad149 +fl6-volvo-plain.png d4de976691ff5ba7343092a153e43c81 +island-9h.jpg 6070b2d9b3cdc484085571e419975082 +dashboard.png 4f2a70dcbfd9ff25b738a2c4561f064d +rollmaskblink.png f02b021938181a3aeaa1f443502da3e4 +redflare.png f9bc8f90ad7412c6294087f0460ff97f +dodge-police.png 0d6804d55bfded6999a08b98f3dafbd4 +renault-mini.png a8149f703f6e524bb760229d3829f490 +SideBar.mesh 30f8d1bca35049704ab483e9942e32f1 +checksemichecked.png b9f5c3eaa0879d029db047eca5dd8e84 +spinprop.mesh 82b1bab48e75af7631b6eba97decad20 +perlinvolume.dds 858c9694bff2f8bf0f3ee5eb8b9c64d8 +challenger-emissive.png 8c15a566f5b5ec1c07fa0c635799a13b +aflatbed.png 4137c8f9e732f06fe827c0351379a2eb +myhangar2.mesh e6cdfda0cc6783dca0af2425e132d268 +airpitch.png 7f1e5ad3f77e1744b6b01d898d6151b8 +aspen.raw 4cb4846fa0c9a12a9c24005df27fc31f +Bloom_vs11.hlsl c0b803f5a31b9a3b05c9d59c9971248c +island-7h.jpg 1097347fc1e02c81e12c105875da7b4a +wheelface.jpg 8ef91d77e0c2cf4e1bd5f13a041d8474 +aspen-10h.jpg 0bd918b9e0a433ca23f4bbab1da107ab +selecticon.png a75129ffd2e6f51dce0ef5f9ff61133d +fl6-volvo.truck 729dd02d2c82e52f978eff3eaaa8c02e +pitchmask.png 77823edcf06dddd761060653aa26dddf +water.jpg 6ab7d0026eae80ccf67c9cc76b06ee0d +an12nacelle.mesh 8b8fb48fc5c3060fe7d663e5c54cbb1f +schoolbus.material cd3d24320eaeddc19c830ede1dcf0bb4 +aflatbed.load ec03ff2a0753e6baeb289cfff470e749 +leftmirror.mesh 06d73ca36841163b78054bffd5cbe379 +amplirollhelp.png ce5b315492f916c6cdbd9c6a7ce88be7 +up.png 6ec03028e96a37b1e3cf497714f685ae +aspen-13h.jpg 22399090ecb1e8b271608730249c9fc2 +wavefield.cfg cb565e34b61f884b86668f9798899a31 +down.png 61112131e2ea91ffe342ca1531c31b0d +sign-rightturn.mesh e959492837595d1c986e365ed6e14e17 +splash.png 1405ce9c2268ba672d014d9caf547f38 +semi.png 0ef678c13085287e2dcf51c8a5d1c12e +terrain_detail.jpg f97414a90fc9767ba659949881445c0e +sign-pos-coldwater.odef 5ed8f023ed2af76b07e030b257144d84 +turbo.wav 5fd594864e3a74fabfd4bf015ace7b18 +starterstop.wav ad5726129b9d0b7c9a671a3b8a4232ec +road-taxiway.mesh d16fffd5e6c189382936cb68db4f89d0 +chp.material e14dc544e62989297298f90d37f2ed2a +fl6-volvo.png fdf16fec7432674145314055a8347fb4 +wrecker.material e2e4be1fef46c755a55c489047cc4c51 +sign-warning.mesh 965d17be21820230042abbd4d3df987a +credits.png faff03e4936acea81c8dd474a3d57e43 +iddle.wav 051f8e44c3bb537fb85316ad42344042 +wahoo.truck e15de7a6140abdaff438a8b68cc27e70 +robot.mesh 66abc6387e9096cb121983ea30ef1bd1 +liebherrhelp.png 5f068587627cff646134a0e6bc123ab4 +road-turn.odef 803141c6bb41c8f9772edb1da70a03f0 +nhelens.cfg 6227827ca37b762c3d69527cb4ff4b25 +reddot.png d03679dc67f3973a551c6d78fd6e21db +checkunchecked.png faf3e9a0879b972dae9b500d9a38e002 +myhangar2.material d76bf84f7f8c12b84c01c9ef78c28f18 +map.overlay cf16c8055395c89b997efff7354007d1 +nodeselected.png e77269e4240ad7d9307fbd1a88b74fe8 +hydrostart.wav cd1b555cb34fe7e369b5fbea39dfbabe +AE86-mini.png f5e6fd591f280a4b5867bf8d6e7991f4 +dashboard-small.mesh f2cfc9c9638707ab373e6a4996f38b82 +smit.png 36352e1d5b3b85b95b51edccf3f22115 +C1beam.jpg 1e7af600253c896a274497522a855c27 +wheelband2.jpg 31d01f10dc08441a3815024d2d9b7f69 +caliber_emissive.png 07f2170b48d6775cfe9abe52a8d9bc0f +road-crossing.mesh 53ceefbb630c238686016d528787998f +truckshop.png 6ff497a737e61a7ed45d769842711461 +nedlloyd.odef 1f655198e54051984193c2147376d6ff +sign-pos-castle.odef ae5f3a99a5e6619b281c6eb3b110cfd4 +roadbridge.mesh 94ae53811b6b8ee9b46b84c4feaa81c9 +daf-mini.png 88c60fa5319822ab07890b5d5ed5e590 +road.material b0d8764a771b43684f3804b5cd3bed99 +roadborderleft.odef 5254ae4a9ab75aab7ba0e562bd97dc31 +aspen-12h.jpg d6bc79c11175dd47bff7c606999adc45 +dodgewheelface.png 1cf5d68d4551ff05977959cb0d705997 +liebherr-mini.png 3faccacfcc8354e8d766c8dc0e44b63b +Bloom.material 97c4c54fd77e547f661b804137400116 +bus2.png 7d3a94f4a9ec521c7b3c8e46186d78f4 +acontainer.load 2228b9c91dad7cf5e9ce391a6f7aaf97 +flatdaf.png 916d8f77c8080c510d821ad942973029 +t813.material 8fd53a99cde9c98f5db92ae6c71ae416 +roadborderboth.odef 12475f426a84965271dd79e5d5803c26 +semiflat.png f555dd10c2599826f4e681e42dd8b566 +Chrome.jpg 204ccbd8347395df2ff09a1e5844d493 +an12fairing-left.mesh 0c05b626d86af1ce01b67fd94ef28e1d +NACA64.3.618.afl 0b8e427e201d2e4edb7a1db31abf2d11 +myobs.material 9c717a616b3c826c0f862b076f658992 +spshi.wav 05b22fce95d238eb1bdefcd77a05639b +runway.png d7410987816a0fba8d42e1a314bf4939 +dirt.png 68b87966a6e3524fbf27a99b4c1d36c0 +sign-dir-elk-left.mesh 44b88c2c965e372bb93872ea9db062db +island-17h.jpg 2e67fd713b2fd5d73211d8b9525eaa4b +semi-mini.png 3ecdfcc56d3fce80fa1ccff23d2dcf7b +roadquay.odef 7150be3a217ea68e4eb8b98638a7f647 +smit-mini.png 973422bd3ff586a8cfb0ac2b50e82be9 +dolly.load e069410a8ceadcb741a94b9f0e655910 +unknown.png b0ddbd39adfeb6546db4b2d5ffc4b10d +fl6-volvo.material e0620e401dfe8dba705e87c7d2169c44 +flatdafrwheelface.png ebd86967619974aef77480900be7dc49 +daf_emissive.png 89d0a498135c423469f4e2bcc34f7469 +pthreadVC2.dll 5eeba1afeb9a050acb0ef64a4ec6c736 +Scanialoader.truck e0eda133b60f03e07051246d86d00ce9 +vvi.png d1a1f28e52e5bfad81735c51e7f569e3 +road-runway-band.odef ae9d730b857e5cbbedb5c3380c88db74 +sign-nhelens.png ca608c235909e02fe5ab8eb3d2b72a20 +road-block1.odef cab7de4f8edfe87c509798e76a513f6d +wrecker_emissive.png 70b8731abf7d4e1514e7c6e42813e44e +idle.wav 5a3e154c3ed121ecdcc74b564f38de4e +smallhouse2.material e01e37ec70de554c193c30c551692b5e +sign-warning.png 79525880cb5594ba27bd0d0d6927ae30 +door.wav 57760ccec8d748659bbcf208d479ac02 +sign-bump.mesh 71ebd57c4d1fed68f94e2dce72e85b18 +engfire-off.png ec596b7d08fd5cb5a4194322d77f61c0 +multibenne.png 15a6ddeca482781bf89cd91736858964 +hangardoor.material 38330c027c01a886782642d4493b3022 +airtorque.png 388c1c587822ca205c56845ff7fc4c64 +clack.wav 1bca24f6896efb327a3cd6152049faf8 +island.terrn 763efc524f5528088fca03dec9c9c42e +wahoo.material ac05c7eca3061439be97a5fb085e4e4b +Sunburn.cg bbf39aca25740fc3ddfcbf6e82cca318 +sign-dir-fish.odef 4834b1ef73855925c77136c5e2341a4e +turbotwin.material 81dfb3df76640b112d6ade67f1dea6e4 +smoke.png 5dcac3b6d02461975ecc3bdac192eabc +agoral.truck c3b29a7f2ce29dc1b2db472f2aee80e3 +cg.dll a9e7f5bfd826fe624b753749e70c0fdd +lopress-off.png 1382a874af08366bcc138add1aaa9c4b +dashboard.overlay 17a79aa26ac58ffe21d6d88fe8159c29 +derooywheelband.png 787aa1bbe2dbbfaff3f10ab9fb5becb9 +crate.material 210b0e3b36cbd44c130580a79aa47591 +sign-leftturn.mesh 12f2c490edb942751e46cd4a573de981 +derooyhelp.png 1eb9f482a95489e70a03fee2a2f80976 +chapel.odef 91f1b59b88d385bbf39bbd6705b07890 +Example_FresnelPS.asm c885dc74b9a540793c844030bfed0ba0 +multibennehelp.png 597ce0337129da445d61f9735b899661 +road-crossing.odef b472cea66c75d9e275bcb9643b170fc4 +editor.overlay c54e40f2b24a6bc5f8b572e2763665ce +dust.particle ad20a24146b71b449f597a38ffd832b0 +DevIL.dll e9994021d989ac9ac650f16d5012ba6f +dashblend.png 19f97cc9d8150a0dfbaab85a05d6c505 +ae86wheelface.png e3bdf44214bc686148a5e09864d5beae +smit.material f9e5d45060b1d3b4efbe1bd87709b1f6 +smallhouse2.odef 14965f1ccf5f3cb2cc0f820b359215b0 +chp-checkpoint.odef fe8a7370a3dc33e79cb29d57a235365c +tacho.png 89be4c0f1650785497fea7aa4cd1aeb2 +sign-bump.png 0a6a821b15aae14b6ca5ed69cad583e6 +signs.material 59e6520fce40a35c8c2d7b42cd392698 +chp-start.mesh f61972de1abade652cc3da8dcf8010bb +ILU.dll 7896cc89dbe38c8e4455deb839cc339d +README.txt 2678d34d1ac3c91773bb4b0046d8b874 +renault.truck d7f487282358aee8c3db5e75ac61f76c +sign-descent.odef 52c4d69acf7c29c80ed8eb04d1741605 +smallhouse2.jpg 761a955a88e64871a3370313edc14137 +flare.png 6cfd43aef9caceddd4b75290b87fbeea +aspen-14h.jpg bbc9b6ab5ff678552532d72502883d6e +ampliroll-mini.png cc7de65c67c52e74f1324fb23193aefb +ILUT.dll 086f8940007b2c0a9f26a09f788b849b +engstart-off.png 782314c45d30abe2bf0e75c8c07a91a5 +aspen.terrn 7d227b5d2c901960e1d0d3c7f914c2a3 +sign-dir-fish.mesh 2fa05ad3582775f974065dad950b9358 +Blur1_vs11.hlsl a9845551253e43ec1e352c6731cac508 +road-runway-end.mesh 65c51f3ff9331897a11015b63191f3d1 +dodgepolice-mini.png b33f77598ceabbddae9923c76abd1788 +kwhale.mesh 42167a1bdb210667561a4b5ea8005831 +sign-dir-cargo.mesh e4c9ec89ccf4f36461408721b46b9069 +myhangar2.odef 991817d5c95403c419f7594ecfe8972b +tracks.material a176bd6597d4a43735208e6b1aedab4b +road-slab.mesh b4b011e9db11a569531eb2349a7b72b0 +break.wav 844f96353c1ad5a8f6e328957b2e603a +hangardoor.odef b88f7f10ddbc24196cb4d5ce549145a5 +smit.truck 26702a917d93c6f11a2041984ede37f9 +semiflat.material d229bec2cdf45375e764b604120f3bbe +an-12-mini.png 0c8be87725845a925a4f101993a29b02 +island-16h.jpg cbaf7e9930bf4053f731df13930b4901 +nhelens-17h.jpg fabef8d0498764d808a67a793f0f1204 +dashboard-rh.mesh d11d678a2c897a2a6fac70738a98bae7 +roadborderleft.mesh 525d1af1ba0f86a425ad3db0d46879f8 +NACA0009.afl d62add87683f40ece9ac3d5bf051b9f3 +rollmask.png 39cf678b6ad1339c56deb3ac547ca062 +semihelp.png 69e73d9ef3ab9a64edc394865f196baa +road-block5.mesh 8c103eb01ccb27f0c928e57df8d3de87 +boatspeed.png 1b08bb44baffda65fffdd74c7931c8bc +dodge-police-emissive.png d6be99b54971c19e42841edac93fcbe5 +start.wav c8cca528d12714c3944e39fb12ffb834 +smallhouse2.mesh be9344233c7acefea739c198891c411a +3d_dashboard.overlay 3ea88a22461b5e60676939fea9ee69da +airneedles.overlay 4389bcf4c97722bb19f21191ce568d0d +smoke.particle 09b0892939c8da5d240cab10e1dcfdd4 +road-street.mesh 0dedc24b1896dcb3d5c5ee85f802a55b +flatdaf_emissive.png 378ea5b613f92bd690f232060044819c +an12wheelface.png 8860202f365a502b49ed6b6e95520a6f +common.material 06bbf8f6dbb62b09e61e8f216253bd3b +config.bmp 8319ff715dd1a0f4755c91be66334998 +screetch.wav 976fb416f711bddbab08be2c65475128 +RoR.cfg d41d8cd98f00b204e9800998ecf8427e +airspeed.png 0227993e856bf2de6dc467cedbe57ff1 +engine.overlay 5aebb32557b8f910fbeb313611710d9b +challywheelband.png e7391e734ddd6a0ec23fbcc30dc69b4a +mouse.overlay 53a895e1ce0768c08a2e7afc4534dec0 +renault.material 8568662a772a296c948a518e04864802 +secured-off.png 1b9cdc0a46b20335fc1d3025c9f57d7a +largediesel.wav dd92621e051c50ac2be44d8fff01b08e +Blur0_vs11.hlsl cdb697a1422ee54f531ef3efb982e3a8 +tunapicker.material 18fb22877881505619ecd1a3ae9a0ac4 +adi.png 09a43b908c1d249e099d7570f8740ad3 +mouse.png 44f61bc77b2a52b6d588bdcf3a27c45c +stand2.odef c3d7e6a1d1a153612159214601dba033 +t813-mini.png 02d1a7b03f496dee690b48f6d2a4a611 +dashboard.mesh 53c1127518299d9b16b009471bdb8b7e +turbotwin-mini.png 91d52abed6a01504575a3af030fe0d14 +t813.png d9266a870afbbed14c6d10c0f3a2139f +whiteneedle.png 76858effc8055ace709c31b3a20e9eee +nhelens.terrn af114f156282224f16078de724d97426 +robot.material 176ad62349af2313e1c2989c886de575 +road-turn.mesh ab7c0e3f2ffc4d22f8915e32cae8af59 +locked-on.png 112afa5cbab2053b6716719d5bca00bb +caliber.material 845ce628410a479cb046f723c81bf682 +r2skin.jpg 88707fa8a235ace6eb6ad159e3425c8b +nhelens-13h.jpg d0375d3a5be759ea5f480054f0387499 +checkchecked.png 1653da6dbb4690810166e4182845c67c +nhelens.raw 61b237a44c59ab43dcafafd8f88db2cc +lightbar.png 1ccff8609d66df833acb6bf67ddc2506 +pbrake-off.png adbedec08c4e02ebbce1a1b35e755944 +semiflat.load f8884bddbcfe442b6f4ef800f31e941c +speedo.png 606bb58f0c3c46431ea79d2bf5d5d131 +instructions.png 261f9c08d78b3e33be16281eae0a78f2 +road-slab5.odef e57a7286ab4d93775bace68f2b74dcb1 +port.mesh 197450c6e72322fedd32978255534389 +nhelens-12h.jpg fe256d1dd4d4296dc8692d4b096507c6 +challenger.png 7ce963f9fc301b3dac64fe07e05b25ab +smallhouse.mesh 587ebb5efac5d49774125deed796a06a +crane.load 4e4d9668f0e433e750c1dbeca93ee769 +nhelens-15h.jpg 326c5294241afd838ec8ea8a5a9e585f +sign-dir-elk-left.odef 6d395f038692ee28f7d5ad549c8bd05a +island-11h.jpg eeaae3bd7447ba83348602f52c55c6b3 +aspen-0h.jpg 1691b370d62d7d4c52c45fec78b5ee79 +virtualdashboard.png bb89f0eae939e6fc25af7fe8ec7c19d1 +Blur1_ps20.hlsl 97dc7ad484b71e45752ad059e29d851a +airdashboard.overlay 1bf4f959893d57fab8e6e9704ac256c9 +sign-dir-cold-left.mesh d5e4eaa9935b4811382568facb619993 +road.mesh a19397f452c855cb80c330330b962ee8 +daffwheelface.png 16bcb82e24b59a28572d7ca1517b465c +road-taxiway.odef d857acac7d230b1029cfe958b0775edd +sign-leftturn.png 89ba5902f83bf4a88e43e67c6232575b +sign-descent.mesh a32f6a81d251e3eed9ec34dedcd7935d +flatdaffwheelface.png b09274d477b3e7efa1c77f046cf2a33f +road-block2.odef 473fa59623cfea8b5338fc8be65d04bc +fl6-volvo-mini.png ea828700c0e0f6754b039877d9dc3089 +caliber-mini.png 9b6eacb2536b308981276310e6172640 +fl6-volvo-help.png 255ffa3f358fec469ba6aadbba1a509f +wrecker.truck 3323885fcbaf7841d2f8f850f0a6860d +multibenne.load 3339a362ffcdc2a48d75bf2e6d6becb2 +sign-dir-cargo.odef 3875a1688b9514e970352c885639be9a +kwhale.odef 254bd68ab398b3343b338cc791f59909 +chp.png a670a3e356177c46cdba04c64f6f3c3e +challenger.material 7a96476ba98b17532761c330d9204536 +challywheelface.png 8e7ce19a69d73d7435fcea8ff5023f8c +airhelp.png 779936d9d1ddfbb1328b06936848a11e +police.wav 5a71b8659bd72246501b557942925874 +nhelens-8h.jpg 680608e99ce3896de659ee2d1b5c9cb5 +sign-fall.png e38afff3accaa8362a81072b43d23222 +lab.odef 153e8f310adb2b737382ecb06161b472 +an-12.truck 2151a3fc95d6be546c16fe4179e4fa51 +radiosemichecked.png 156af6c973311823ff82ac52ae60b8c9 +caliber.truck 1d283c6e74f696bf46d41a1f40aed43f +agoral-mini.png 48dec6aae18e248f6df912225f693c18 +derooyfwheelface.png 16bcb82e24b59a28572d7ca1517b465c +caliberhelp.png f1ca2a11c1929a5fda26eabb2cc8f550 +aspen-mini.png ae389a5be1539c09f061cd78da6e474b +aspen-7h.jpg 88999b4b193caef16dc39624f218115a +sign-dir-john-cast.odef c28e78558b1489ecbe7afe9b596042a2 +RustySteel.jpg 1491e68a6b2d9f7b1816fbdca6af9ae6 +alut.dll 93cda701a019be29343fd9891c30e8f3 +rockeaterSXL2.truck 77cba13c09c61581abb5662f7d6daf8e +loader.overlay f76cda7054361a5bd952bba0627ea4b4 +tatrawheelface.png 46f2b09cbe60ea6a13645da06a054248 +thrusttrack.png 4f2125626abb4173150bbfbe28c060b1 +acontainer.png 2491c98f77e85770c900464001899c94 +chp-checkpoint.mesh 10a19864b18c23bdd8915251f1202ece +island-15h.jpg 4f3fefe361e5b6f2e1e9011fde7a3ad6 +road-slab5.mesh 892e9b512d59aacd57fbc05c17e4dcc1 +Combine_fp.cg 57fd09e6e3d50b851b45604d142c0d29 +lab.png 8ffdd15bff8b3ff437d88311e8da25f0 +seat.png 1799e5d99562d7d937003d919c79ca2e +sign-pos-castle.mesh 36be4b2db235d62bcc1343a082fad4fb +radiounchecked.png 8946d0f56442f5b084cccb61693c807b +smitmast.mesh 82091f1161e9a8604ddb1e177765b3d6 +beacon.png 006e2d2c4a30235882d1a6c68c4eeed1 +lopress-on.png 3a47688d7a25b208163f3f3d11da42be +boatneedles.overlay 54f3b832174580c1d70173519663da5f +smitsmoke.mesh 0c05268442b73ae78e112b2278080083 +multibenne-mini.png b7fb7d09967ec81cdc016a0934d00f51 +redarrow.png 0e93ea813f3fcca51ee7b44ff07d9eb0 +brightblueflare.png ab83ae93e89d53aed147637335f8eb49 +island-14h.jpg b2c5eafdfd3398f1372288ef949dc10a +tunapicker.png 7b8fbc87d5321a9599533da5b3142075 +daf.png e9d0d880275cf8cb0b43fcc0e3049e99 +wrecker-mini.png 6fb5651401757ae5ed9f35b541298887 +an-12.png 8f1cd7b2ad0d715ce72d692cf657c7c4 +dirwheel.mesh 6c0639bd473b8858782196a7c1ffc168 +dafhelp.png 1eb9f482a95489e70a03fee2a2f80976 +truckshop.odef 4cd0c8e44fbb72d9bd2ba39ae3a81238 +boatdashboard.overlay acab48a0171d8bc845ea0fd249acf20e +buildicon.png f4b8036e13ce53d2006ee31d71965115 +wheelband1.jpg d8409f7f1451fccc77e4f3a704065cba +myobs.jpg e6d9f8f93fa90ab948aac50f60936719 +kwhale.png a963ae88d35181707b1db089b3a75dd3 +Bloom_ps20.hlsl 6f004c6c68c1fd4dd21de30fe12963a0 +aspen-8h.jpg d746cb12980bed9ae72f5dfd073b2c1e +blackdot.png 2cbf3481eb87f1e38734c767f816752c +secured-on.png b4b524a75b6ed0340708ef5da78a35e4 +hipower.wav 06e32e2d519a0dfce4d6970b9dc7e079 +daf.truck 404e60ab7a41762d1f20b12f61ca3cd9 +kwhale.material f8f4e95a53d713152f76e0644609c904 +truckshop.mesh 4b776d3449ef9a22d6c0d173aacc2999 +dirwheel.png d89d27c3bb023e08a52548f0ba3de87e +editor.cfg 3b96db0fb8738194b02db92d27ff90d8 +tunapicker.mesh 462b6879a537821a304323e97ddb4d68 +road-runway-band.mesh 43b5501bdd7426974f2c91c8be1fe808 +rockeaterSXL2-mini.png 805a79f1987deb1b54f83508edec7461 +smalldiesel.wav 4dbc4805fb0a4ad64fda6d5f7de67946 +RoRconfig.exe 28f55bcb6b4aeecdabc77d7a89835aad +chapel.png 266374d18ca6579d89c4f57c265b0c94 +ripple.png bc1c1f76120e8b4a64dfc147b06e1dd6 +challenger-mini.png 9a769987c9ff143007084d00b82b2ef4 +wreckerhelp.png fa9fa4b668ca2977f227eb75e3a2c94f +hornstart.wav e689b0b41fe257de0d4409bfbd7aa099 +sign-descent.png 3390dd3bd5ceb24ce2b109d9b0350628 +island-13h.jpg 232bf2ab0e20c68161ca106b3c45daa3 +sign-crossing.png 4f75b8f8e9422ce5b5ab1a00413d62e3 +blueneedle.png e9a886dbe4e7e3330f76dacccf94850f +ae86emissive.png 0235aa99dfd4bb903073141e8b9bd1cc +vccrt.msi d942350b8521e5d40bde1a8b0e887aa9 +stand2.mesh 354f09f9a48b861c8ecc10206db4f28e +bridge.load 58324fdd8ab5b3e1f144ffae1618b458 +hsi.png 2a90e56f4d43707f12aff9a9ca2fa1e1 +dodge.material 6596e0ba1f6fda514fe7046c963ba6ce +sign-leftturn.odef 2e1ddae5d20c5b010327066f59b805b7 +spinprop.png 969a1df505f12d1cfe2af7596d4f818f +island-0h.jpg af9f9c83e4348680ec1db7d44ecaa540 +smallhouse.odef ff587ccf6aae6b98e1c76543897cc588 +aspen.cfg 493796144893853f212b96f304aa667a +acontainer.material ea6b391b00009a17a1327d924bdf67ac +renaulthelp.png dd3ff65e22732f5f0895dc8e342b73d0 +engfire-on.png 1c1c4bf5d465b04bd0ab0d1c6aaed4a0 +airintake.mesh 26f215467eefc4f8eafe3126be8c81b0 +sky.png 7c263b3038fff0af019dde6561734886 +liebherr.truck 14ccf4c83276eaf7ec2c92b5faf4b972 +nhelens-14h.jpg f82b786fc9c78d21a8a561fe7dc9802e +road-block5.odef f61bf9c614d773f7e1e5f3d98e18b102 +crate.png d33ab13dae480b93a45e40ca7140ded4 +wahoo.png 2a2aa71eaa2db311bbc5c9b8e8a3441a +Blur1_vs.glsl e2b930053a079a1b5a6da48b34fb7a24 +Examples.compositor 6b5e74399cf7350008f422e07358c3f5 +RoR.exe 54ccd61d6f24a6767b4427da204e9742 +renault.png 9f5e7ef0b9c17f9646307b3f50e9d28c +an-12.material c45f0630eb0d7bbc054b1022decbf3cf +turbotwintrans.png 9e5aafdc009473f5c67ca73644aab9ce +OgreMain.dll 58c0c3ccaa7e6f94eb8d43d63e9003c0 +sign-dir-stud-cast.odef 02be9edb0135a3954a0930a75950bf3c +wrecker.png f54fa1a54d5c01ed58ff5e174ade0ef4 +road-slab2.odef 67fccf56852e6095d43e5da5047dfaea +ampliroll.truck 608ee3b6170af9bbf40b85048f60d91e +EarthClearSky.png c94f5a37ffecbecbd25dd75e0e502604 +island-10h.jpg b1b3b4b9f2313a2bc4df8c7c60b2b4d6 +nhelens-mini.png 15d92bc6789be314af550e274919ec58 +mirrorlayer.png e9f680dd23aada3a1300d870ca292648 +pshi.wav 98b62d383d9686ae7f2b52b0ab648348 +redbeacon.png 4ff98f24fb8d9bc4964a65bea0274847 +plugins.cfg 5f0f8668d96fb85eb52a82e94b86273c +sign-crossing.mesh 208172ce27efbac951c0cb0e9e805906 +editor_dot.png 4576b8366285b4031b3de103a3b4ed4f +road-runway-end.odef 429f125218f89c4296a691c2f381cb61 +thrusthandle.png c3fd75252d859e7885fa6baf695d2015 +hydro.wav 8c107b733c4beb68e4f1c7bc76ee35a7 +repair.wav 6a10719471c3be693f4ae733aa8827a8 +rightmirror.mesh f1ec67e2aa7e8fbda94eb87f165e4856 +island-mini.png 1876bae0d1dc14af09052dcde1a895c0 +Blur0_vs.glsl 4879ef7e5bbafe04baf932d111c6875d +engstart-on.png 85082d7d2c583de041adebb0a70c373d +flatdafhelp.png d438d3144521552d832ceb302c472b14 +chp-start.odef 640bc084fba84f7607e11f40f1a3b6e5 +truck_editor.overlay b7f075317a4dd87c26ca898cc2bc2e9c +island.jpg 1f0461262196bdd92980f4900ba90a98 +port.odef 9eefcd94b6fed768510c521699edc52b +ign-on.png 84f05868e711aaff96d5bf9b833e39d4 +sign-crossing.odef 81c1744045fb5055e6962798520470c5 +pale.mesh 585c4186869b3cd5afe96a11844e9fce +pinksquare.png d1a684085360a947af24a619a2f286fe +brightredflare.png 3d642eed8572431d87d994749f6131d3 +greenflare.png 5c56c2a804c2bdac1c5dc1df6a5b6ef5 +nhelens-11h.jpg c864909e50c21c430b40e7d7060214cd +roadbridge.odef 9330e1b61259f269ec166f457556a7d9 +3d_dashblend.overlay 977f23ea512fa41a218f873165cf3709 +aspen-15h.jpg 156e4eb5b97970982b2371deeab43135 +fl6-volvo_emissive.png 418eeeac3c6cff801d7a88d3d3f66242 +truck_editor.material 9d7fef973236a29f7d7c2dac555a9f90 +sign-rocks.png 5823d6d6fbe0c9ae1995d081f435d7db +semi.load 77fc0cb510262acd5265dfe7f5585cc6 +locked-off.png 9307006ada0ca9f285808a6fef67c0d3 +anglo.png 5479fa805d6a779c95fe14465d4d6871 +robot-Armature.skeleton 80a8b0efd3a90c5afb7ef529f1a630be +EarthClearSkyFog.psd bf3d3856f4f7ee96fd526038b3cabcf7 +roadborderboth.mesh 247c45756d161705b63ab1201b50b76c +starterstart.wav 48ffc384d380872d14d2738e71bd62d3 +ign-off.png 109a294b9d9654f1e5546dbb9fbe2556 +lab.material f74e0e0014048d62695a38fff3157466 +dodgewheelband.png 6e084f51a802e5e2341922a5c81a569d +road.odef bc79131ec82a3e98f554fad51cdc52a6 +bus2_emissive.png b82f7f8008dd2b76078e1e45470a59cd +Plugin_OctreeSceneManager.dll a822ee904e3bec33862365e94bfbb29d +needlesmask.overlay 77895dc4cc7feaad9e2d22d494f69e18 +lopower.wav 9bb1caeb599a4efd4b34ebdd8672a9fa +sign-rightturn.odef 24370aad4f06442f9b4f85b26c18c324 +craa.wav f2c1318512b3c8a862807b11236e977b +an12wheelband.png 473c0f5cfa335dea758542552d371698 +an12turret.mesh aab0a39bdc89d0edfce414ddc1b45574 +Caelum.dll 5aee43a659ca1637733b70f3ffde89ee +sign-dir-cold-cast.odef 5db767e21fd14d1b6275dc626ca30825 +myobs.mesh de31f2e47817f2a2f9ae2be4fef956ac +road.png 25e93204cd931896ba5cb3897fc3f3df +liebherr.material 680dad0bfceeef6e80f4d405f496699c +lightbar.mesh d359381f8c3d7ab96580338988aeb745 +road-tee.mesh 071972f2344e2b38bf9fec4e4243978b +ae86.png ad2669aef97504a9ed20e38e97b1e685 +sign-dir-cold-left.odef 22cf54f2ccc1cd114b4339b57efeed4a +aspen-9h.jpg d8d1ce55760a278f9fc3e608ef7b4206 +t813_emissive.png 74e4cb8f1ee0bb47bcb8954df415b21f Modified: trunk/lib/ror/depchecker.py =================================================================== --- trunk/lib/ror/depchecker.py 2007-07-08 04:20:11 UTC (rev 92) +++ trunk/lib/ror/depchecker.py 2007-07-08 04:31:12 UTC (rev 93) @@ -14,14 +14,30 @@ self.filedeps = {} self.dir = path self.dependfilename = dependfilename - self.getfiles() + + + if mode == "md5sum": + self.getfiles(True) + self.savemd5() + sys.exit(0) + else: + self.getfiles() + + self.createDeps() self.generateCrossDep() if dependfilename != "": self.generateSingleDep() - #self.tryGraph() - + #self.tryGraph() + def savemd5(self): + lines = [] + for fn in self.files.keys(): + lines.append(os.path.basename(fn)+" "+self.files[fn]['md5']+"\n") + f=open("md5sums.txt", 'w') + f.writelines(lines) + f.close() + def getSingleDepRecursive(self, filename, depth = 0): file = self.filedeps[filename] req = [[depth, filename]] @@ -63,7 +79,7 @@ for t in tree: t.append(self.md5Sum(t[2])) for t in tree: - print "%-50s %-30s" % ("+"*t[0]+t[2], t[3]) + print "%-60s %-30s" % ("+"*t[0]+t[2], t[3]) #for f in self.filedeps.keys(): # print str(self.filedeps[f][REQUIRES]) # print str(self.filedeps[f][REQUIREDBY]) @@ -202,12 +218,14 @@ if os.path.basename(f) == filename: return f - def getfiles(self): + def getfiles(self, md5 = False): fl = {} for root, dirs, files in os.walk(self.dir): for f in files: fn = os.path.join(root, f) fl[fn] = {} + if md5: + fl[fn]['md5'] = self.md5Sum(fn) for fk in fl.keys(): print "%10s %s" % ("", fk) print "found %d files!" % (len(fl.keys())) @@ -255,13 +273,14 @@ print " 'missing' displays only unfulfilled dependencies" print " 'unused' displays resources that are not in use" print " 'dtree <resourcename>' displays the dependency tree of the given resource name" + print " 'md5sum' creates the md5sums of all files" sys.exit(0) def main(): if not os.path.isdir(sys.argv[1]): print "%s is not a valid directory!" % sys.argv[1] usage() - if (len(sys.argv) == 3 and sys.argv[2] in ['all', 'missing', 'unused']) or (len(sys.argv) == 4 and sys.argv[2] in ['dtree']): + if (len(sys.argv) == 3 and sys.argv[2] in ['all', 'missing', 'unused', 'md5sum']) or (len(sys.argv) == 4 and sys.argv[2] in ['dtree']): pass else: print "%s is not a valid mode, or incorrect arguments!" % sys.argv[2] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-08 18:57:28
|
Revision: 94 http://roreditor.svn.sourceforge.net/roreditor/?rev=94&view=rev Author: rorthomas Date: 2007-07-08 11:57:27 -0700 (Sun, 08 Jul 2007) Log Message: ----------- * added graph tool to starter menu Modified Paths: -------------- trunk/lib/ror/depchecker.py trunk/lib/ror/starter.py Modified: trunk/lib/ror/depchecker.py =================================================================== --- trunk/lib/ror/depchecker.py 2007-07-08 04:31:12 UTC (rev 93) +++ trunk/lib/ror/depchecker.py 2007-07-08 18:57:27 UTC (rev 94) @@ -7,8 +7,9 @@ REMOVE_UNUSED_MATERIALS = True +MD5FILENAME = "031amd5.txt" #0.31a md5 .txt +MD5FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), MD5FILENAME) - class RoRDepChecker: def __init__(self, path, mode, dependfilename): self.filedeps = {} @@ -28,33 +29,65 @@ self.generateCrossDep() if dependfilename != "": self.generateSingleDep() - #self.tryGraph() + self.tryGraph() def savemd5(self): lines = [] for fn in self.files.keys(): lines.append(os.path.basename(fn)+" "+self.files[fn]['md5']+"\n") - f=open("md5sums.txt", 'w') + f=open(MD5FILE, 'w') f.writelines(lines) f.close() def getSingleDepRecursive(self, filename, depth = 0): file = self.filedeps[filename] - req = [[depth, filename]] + req = [{'depth':depth, 'filename':filename}] #print file for r in file[REQUIRES][FILE]: try: for rr in self.getSingleDepRecursive(r, depth + 1): duplicate = False - for a in req: - if rr[1] in a: + for rsub in req: + if rr['filename'] == rsub['filename']: duplicate = True if not duplicate: - req.append([rr[0], rr[1]]) + req.append(rr) except: pass return req + + def generateSingleDep(self): + if not self.dependfilename in self.filedeps.keys(): + print "file not found in the dependency tree!" + sys.exit(0) + tree = self.getSingleDepRecursive(self.dependfilename) + #print tree + for t in tree: + t['fullpath'] = self.getFullPath(t['filename']) + t['md5sum'] = self.md5Sum(t['fullpath']) + print "%-30s %-30s" % ("+"*t['depth']+t['filename'], t['md5sum']) + #self.removeOriginalFilesFromSingleDep + #for f in self.filedeps.keys(): + # print str(self.filedeps[f][REQUIRES]) + # print str(self.filedeps[f][REQUIREDBY]) + # print "---------------------------------" + self.tryGraph(tree) + def removeOriginalFilesFromSingleDep(self, tree): + self.readMD5File() + + + + def readMD5File(self): + md5s = {} + f=open(MD5FILE, 'r') + content = f.readlines() + f.close() + for line in content: + l = line.split(" ") + md5s[l[0]] = l[1] + self.orgMD5s = md5s + def readFile(self, filename): f=open(filename, 'rb') content = f.read() @@ -68,73 +101,63 @@ except: return return md5.new(content).hexdigest() - - def generateSingleDep(self): - if not self.dependfilename in self.filedeps.keys(): - print "file not found in the dependency tree!" - sys.exit(0) - tree = self.getSingleDepRecursive(self.dependfilename) - for t in tree: - t.append(self.getFullPath(t[1])) - for t in tree: - t.append(self.md5Sum(t[2])) - for t in tree: - print "%-60s %-30s" % ("+"*t[0]+t[2], t[3]) - #for f in self.filedeps.keys(): - # print str(self.filedeps[f][REQUIRES]) - # print str(self.filedeps[f][REQUIREDBY]) - # print "---------------------------------" - - def tryGraph(self): + def tryGraph(self, tree = None): try: import pydot print "pydot found, drawing graphs! beware this can take some time with big graphs!" - self.drawGraph() + self.drawGraph(tree) except ImportError: print "pydot not found, not drawing graphs" pass - def drawGraph(self): + def drawGraph(self, tree = None): import pydot edges = [] - for filenameA in self.filedeps.keys(): - fileA = self.filedeps[filenameA] - for rel in fileA[REQUIRES][FILE]: - e = (filenameA, rel) - edges.append(e) + if tree is None: + for filenameA in self.filedeps.keys(): + fileA = self.filedeps[filenameA] + for rel in fileA[REQUIRES][FILE]: + e = (filenameA, rel) + edges.append(e) + else: + pass #edges = [(1,2), (1,3), (1,4), (3,4)] graph = pydot.graph_from_edges(edges) graph.set_type('digraph') graph.simplify = True #graph.set("resolution", "320") - graph.set("overlap", "0") + #graph.set("overlap", "0") #graph.set("shape", "box") for n in graph.get_node_list(): n.set('fontsize', 8) n.set('style', 'filled') onlyfilename, ext = os.path.splitext(n.get_name()) - if ext == ".truck": - n.set('fillcolor', 'gold') - elif ext == ".load": - n.set('fillcolor', 'lightyellow') - elif ext == ".material": - n.set('fillcolor', 'lightseagreen') - elif ext == ".mesh": - n.set('fillcolor', 'lightsalmon') - elif ext == ".png" or ext == ".jpg" or ext == ".bmp": - n.set('fillcolor', 'lightblue') + fp = self.getFullPath(n.get_name()) + if fp is None: + n.set('fillcolor', 'red') + else: + if ext == ".truck": + n.set('fillcolor', 'gold') + elif ext == ".load": + n.set('fillcolor', 'lightyellow') + elif ext == ".material": + n.set('fillcolor', 'lightseagreen') + elif ext == ".mesh": + n.set('fillcolor', 'lightsalmon') + elif ext == ".png" or ext == ".jpg" or ext == ".bmp": + n.set('fillcolor', 'lightblue') program = "dot" # dot or twopi - if len(self.filedeps) > 100: - program = "twopi" + #if len(self.filedeps) > 100: + # program = "twopi" - graph.write('dependencies.jpg', prog = program, format='jpeg') - print "graph successfull written to dependencies.jpg" + graph.write('dependencies.png', prog = program, format='png') + print "graph successfull written to dependencies.png" def generateCrossDep(self): @@ -217,6 +240,7 @@ for f in self.files: if os.path.basename(f) == filename: return f + return None def getfiles(self, md5 = False): fl = {} Modified: trunk/lib/ror/starter.py =================================================================== --- trunk/lib/ror/starter.py 2007-07-08 04:31:12 UTC (rev 93) +++ trunk/lib/ror/starter.py 2007-07-08 18:57:27 UTC (rev 94) @@ -60,6 +60,9 @@ self.btnUpdate = wx.Button(self.panel, wx.ID_ANY, "Update") self.Bind(wx.EVT_BUTTON, self.OnUpdate, self.btnUpdate) + self.btnDepGraph = wx.Button(self.panel, wx.ID_ANY, "Create dependency Graph") + self.Bind(wx.EVT_BUTTON, self.OnDepGraph, self.btnDepGraph) + self.btnExit = wx.Button(self.panel, wx.ID_ANY, "Exit") self.Bind(wx.EVT_BUTTON, self.OnExit, self.btnExit) @@ -113,6 +116,13 @@ f.writelines(content) f.close() + def OnDepGraph(self, event=None): + import depchecker + depchecker.RoRDepChecker(self.rordir, "all", "") + dlg = wx.MessageDialog(self, "If everything went fine, you should find the graph in the RoRToolkit Directory under dependencies.png!", "Info", wx.OK | wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() + def OnUpdate(self, event=None): import svngui gui = svngui.svnUpdate() @@ -223,6 +233,7 @@ sizer_panel.Add(self.btnStartTruckEditor, 0, wx.EXPAND, 0) sizer_panel.Add(self.btnBugReport, 0, wx.EXPAND, 0) sizer_panel.Add(self.btnUpdate, 0, wx.EXPAND, 0) + sizer_panel.Add(self.btnDepGraph, 0, wx.EXPAND, 0) sizer_panel.Add(self.btnExit, 0, wx.EXPAND, 0) self.panel.SetSizer(sizer_panel) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-08 19:09:34
|
Revision: 97 http://roreditor.svn.sourceforge.net/roreditor/?rev=97&view=rev Author: rorthomas Date: 2007-07-08 12:09:32 -0700 (Sun, 08 Jul 2007) Log Message: ----------- * minor corrections Modified Paths: -------------- trunk/lib/ror/depchecker.py trunk/lib/ror/starter.py trunk/lib/ror/svngui.py Modified: trunk/lib/ror/depchecker.py =================================================================== --- trunk/lib/ror/depchecker.py 2007-07-08 19:01:38 UTC (rev 96) +++ trunk/lib/ror/depchecker.py 2007-07-08 19:09:32 UTC (rev 97) @@ -3,6 +3,7 @@ DEPCHECKPATH = "depcheckerplugins" sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), DEPCHECKPATH)) +print os.path.join(os.path.dirname(os.path.abspath(__file__)), DEPCHECKPATH) from deptools import * REMOVE_UNUSED_MATERIALS = True Modified: trunk/lib/ror/starter.py =================================================================== --- trunk/lib/ror/starter.py 2007-07-08 19:01:38 UTC (rev 96) +++ trunk/lib/ror/starter.py 2007-07-08 19:09:32 UTC (rev 97) @@ -120,9 +120,9 @@ dlg = wx.MessageDialog(self, "to get this working, you must install tools/pyparsing*.exe and tools/graphviz*.exe!", "Info", wx.OK | wx.ICON_INFORMATION) dlg.ShowModal() dlg.Destroy() - import depchecker - depchecker.RoRDepChecker(self.rordir, "all", "") - dlg = wx.MessageDialog(self, "If everything went fine (and you got the correct tools installed), you should find the graph in the RoRToolkit Directory under dependencies.png!", "Info", wx.OK | wx.ICON_INFORMATION) + from depchecker import * + RoRDepChecker(self.rordir, "all", "") + dlg = wx.MessageDialog(self, "If everything went fine (and you got the correct tools installed), you should find the graph in the RoRToolkit Directory under dependencies.png!\n it is best viewed in firefox.\nred means missing/nout found.", "Info", wx.OK | wx.ICON_INFORMATION) dlg.ShowModal() dlg.Destroy() Modified: trunk/lib/ror/svngui.py =================================================================== --- trunk/lib/ror/svngui.py 2007-07-08 19:01:38 UTC (rev 96) +++ trunk/lib/ror/svngui.py 2007-07-08 19:09:32 UTC (rev 97) @@ -41,7 +41,7 @@ def notify(self, event_dict): self.changes += 1 - msg = str(event_dict['action']) + ", " + event_dict['path'] + msg = str(event_dict['action']) + ", " + os.path.basename(event_dict['path']) #self.pr.Update(self.changes % 100, msg) self.pr.Pulse(msg) \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-08 19:53:21
|
Revision: 99 http://roreditor.svn.sourceforge.net/roreditor/?rev=99&view=rev Author: rorthomas Date: 2007-07-08 12:53:20 -0700 (Sun, 08 Jul 2007) Log Message: ----------- * added error prevention to svn update Modified Paths: -------------- trunk/lib/ror/starter.py trunk/lib/ror/svn.py Modified: trunk/lib/ror/starter.py =================================================================== --- trunk/lib/ror/starter.py 2007-07-08 19:13:57 UTC (rev 98) +++ trunk/lib/ror/starter.py 2007-07-08 19:53:20 UTC (rev 99) @@ -117,7 +117,7 @@ f.close() def OnDepGraph(self, event=None): - dlg = wx.MessageDialog(self, "to get this working, you must install tools/pyparsing*.exe and tools/graphviz*.exe!", "Info", wx.OK | wx.ICON_INFORMATION) + dlg = wx.MessageDialog(self, "to get this working, you must install tools/pyparsing*.exe and tools/graphviz*.exe (relative to the installation directory)!", "Info", wx.OK | wx.ICON_INFORMATION) dlg.ShowModal() dlg.Destroy() from depchecker import * Modified: trunk/lib/ror/svn.py =================================================================== --- trunk/lib/ror/svn.py 2007-07-08 19:13:57 UTC (rev 98) +++ trunk/lib/ror/svn.py 2007-07-08 19:53:20 UTC (rev 99) @@ -77,6 +77,11 @@ changes = 0 try: client = pysvn.Client() + + # try to restore previous broken updates + client.unlock(path) + client.cleanup(path) + revision_before = getRevision(client, path) print "updating from revision %d ..." % revision_before if callback is None: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-16 05:35:07
|
Revision: 103 http://roreditor.svn.sourceforge.net/roreditor/?rev=103&view=rev Author: rorthomas Date: 2007-07-15 22:35:01 -0700 (Sun, 15 Jul 2007) Log Message: ----------- * added terrain and odef file support Modified Paths: -------------- trunk/lib/ror/depchecker.py Added Paths: ----------- trunk/lib/ror/depcheckerplugins/ror_odef.py trunk/lib/ror/depcheckerplugins/ror_terrn.py Modified: trunk/lib/ror/depchecker.py =================================================================== --- trunk/lib/ror/depchecker.py 2007-07-16 04:51:21 UTC (rev 102) +++ trunk/lib/ror/depchecker.py 2007-07-16 05:35:01 UTC (rev 103) @@ -30,7 +30,9 @@ self.generateCrossDep() if dependfilename != "": self.generateSingleDep() - #self.tryGraph() + + if mode == "all": + self.tryGraph() def savemd5(self): lines = [] @@ -171,6 +173,8 @@ n.set('fillcolor', 'lightyellow') elif ext == ".material": n.set('fillcolor', 'lightseagreen') + elif ext == ".terrn": + n.set('fillcolor', 'forestgreen') elif ext == ".mesh": n.set('fillcolor', 'lightsalmon') elif ext == ".png" or ext == ".jpg" or ext == ".bmp": Added: trunk/lib/ror/depcheckerplugins/ror_odef.py =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_odef.py (rev 0) +++ trunk/lib/ror/depcheckerplugins/ror_odef.py 2007-07-16 05:35:01 UTC (rev 103) @@ -0,0 +1,23 @@ +import os, os.path, re +import subprocess +from deptools import * + +def readFile(filename): + f=open(filename, 'r') + content = f.readlines() + f.close() + return content + +def getDependencies(filename): + content = readFile(filename) + dep = content[0].strip() + return { + OPTIONAL:{ + }, + REQUIRES:{ + FILE:[dep], + }, + PROVIDES:{ + FILE:[filename], + }, + } \ No newline at end of file Added: trunk/lib/ror/depcheckerplugins/ror_terrn.py =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_terrn.py (rev 0) +++ trunk/lib/ror/depcheckerplugins/ror_terrn.py 2007-07-16 05:35:01 UTC (rev 103) @@ -0,0 +1,55 @@ +import os, os.path, re +import subprocess +from deptools import * +#540, 55, 1690, 0, 43, 0, truck wahoo.truck +RE1 = r"^.*,.*,.*,.*,.*,.*,(.*)$" + +def readFile(filename): + f=open(filename, 'r') + content = f.readlines() + f.close() + return content + +def parseRE(content, r): + vals = [] + i = 0 + for line in content: + i += 1 + m = re.match(r, line) + if not m is None and len(m.groups()) > 0: + valname = m.groups()[0] + valname = valname.replace("\t", " ") + valnameg = valname.strip().split(" ") + valname = valnameg[0].strip() + if valname == "truck": + valname = valnameg[-1].strip() + if not valname in vals: + if valname.find("observatory") > 0: + print valnameg + import time + time.sleep(10) + vals.append(valname) + # remove position info + del vals[0] + for i in range(0, len(vals)): + if vals[i].find(".") == -1: + vals[i] += ".odef" + #print vals + return vals + +def getDependencies(filename): + content = readFile(filename) + dep = parseRE(content, RE1) + if len(dep) == 0: + print "no objects found in terrain file " + filename + else: + return { + OPTIONAL:{ + }, + REQUIRES:{ + FILE:dep, + }, + PROVIDES:{ + FILE:[filename], + }, + } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-16 12:37:27
|
Revision: 107 http://roreditor.svn.sourceforge.net/roreditor/?rev=107&view=rev Author: rorthomas Date: 2007-07-16 05:37:26 -0700 (Mon, 16 Jul 2007) Log Message: ----------- * dependency image is now opened after creation Modified Paths: -------------- trunk/lib/ror/depcheckerplugins/ror_mesh.py trunk/lib/ror/starter.py Modified: trunk/lib/ror/depcheckerplugins/ror_mesh.py =================================================================== --- trunk/lib/ror/depcheckerplugins/ror_mesh.py 2007-07-16 12:10:52 UTC (rev 106) +++ trunk/lib/ror/depcheckerplugins/ror_mesh.py 2007-07-16 12:37:26 UTC (rev 107) @@ -16,6 +16,7 @@ def convertToXML(filename): # try to convert to .msh.xml first! cmd = CONVERTERBIN + " " + filename + print "calling " + cmd p = subprocess.Popen(cmd, shell = False, cwd = os.path.dirname(CONVERTERBIN), stderr = subprocess.PIPE, stdout = subprocess.PIPE) p.wait() print "mesh converted: " + filename Modified: trunk/lib/ror/starter.py =================================================================== --- trunk/lib/ror/starter.py 2007-07-16 12:10:52 UTC (rev 106) +++ trunk/lib/ror/starter.py 2007-07-16 12:37:26 UTC (rev 107) @@ -3,6 +3,7 @@ from ror.RoROgreWindow import * from ror.rorcommon import * from subprocess import Popen +import subprocess from ror.logger import log from ror.settingsManager import getSettingsManager @@ -117,14 +118,17 @@ f.close() def OnDepGraph(self, event=None): - dlg = wx.MessageDialog(self, "to get this working, you must install tools/pyparsing*.exe and tools/graphviz*.exe (relative to the installation directory)!", "Info", wx.OK | wx.ICON_INFORMATION) - dlg.ShowModal() - dlg.Destroy() from depchecker import * RoRDepChecker(self.rordir, "all", "") - dlg = wx.MessageDialog(self, "If everything went fine (and you got the correct tools installed), you should find the graph in the RoRToolkit Directory under dependencies.png!\n it is best viewed in firefox.\nred means missing/nout found.", "Info", wx.OK | wx.ICON_INFORMATION) - dlg.ShowModal() - dlg.Destroy() + file = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..\\..\\dependencies.png")) + print file + if os.path.isfile(file): + dlg = wx.MessageDialog(self, "Graph successfully created:\n"+file, "Info", wx.OK | wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() + cmd = file + p = subprocess.Popen(cmd, shell = True, stderr = subprocess.PIPE, stdout = subprocess.PIPE) + def OnUpdate(self, event=None): import svngui This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-20 10:00:15
|
Revision: 110 http://roreditor.svn.sourceforge.net/roreditor/?rev=110&view=rev Author: rorthomas Date: 2007-07-20 03:00:13 -0700 (Fri, 20 Jul 2007) Log Message: ----------- * freeing of objects now working for terraineditor --> open multiple terrains * fixed bug within terrainparser.py Modified Paths: -------------- trunk/lib/ror/terrainparser.py trunk/lib/rorterraineditor/MainFrame.py trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py Modified: trunk/lib/ror/terrainparser.py =================================================================== --- trunk/lib/ror/terrainparser.py 2007-07-20 00:31:37 UTC (rev 109) +++ trunk/lib/ror/terrainparser.py 2007-07-20 10:00:13 UTC (rev 110) @@ -34,7 +34,6 @@ TerrainName = "" TerrainConfig = "" filename = "" - comments = {} trucks = [] loads = [] @@ -62,6 +61,9 @@ def __init__(self, filename): self.filename = filename content = self.loadFile(filename) + self.trucks = [] + self.loads = [] + self.objects = [] log().info("processing terrain file: %s" % filename) self.processTerrnFile(content) self.FixTerrainConfig(os.path.join(os.path.dirname(filename), self.TerrainConfig)) Modified: trunk/lib/rorterraineditor/MainFrame.py =================================================================== --- trunk/lib/rorterraineditor/MainFrame.py 2007-07-20 00:31:37 UTC (rev 109) +++ trunk/lib/rorterraineditor/MainFrame.py 2007-07-20 10:00:13 UTC (rev 110) @@ -214,6 +214,8 @@ self.terrainOgreWin.stickCurrentObjectToGround = self.btnStickToGround.GetValue() def updateObjPosRot(self, event=None): + if self.terrainOgreWin.terrain is None: + return if self.terrainOgreWin.selectedEntry is None: self.statusbar.SetStatusText("", 1) return @@ -242,12 +244,13 @@ # pass def OnChangeTerrainNameChange(self, event=None): - self.terrainOgreWin.TerrainName = self.terrainNamectrl.GetValue() + self.terrainOgreWin.terrain.TerrainName = self.terrainNamectrl.GetValue() def OnChangeWaterLevel(self, event=None): - self.terrainOgreWin.terrain.WaterHeight = self.waterlevelctrl.GetValue() - self.waterLevelText.Label = "Water Level: %0.1f" % (self.terrainOgreWin.terrain.WaterHeight) - self.terrainOgreWin.updateWaterPlane() + if not self.terrainOgreWin.terrain is None: + self.terrainOgreWin.terrain.WaterHeight = self.waterlevelctrl.GetValue() + self.waterLevelText.Label = "Water Level: %0.1f" % (self.terrainOgreWin.terrain.WaterHeight) + self.terrainOgreWin.updateWaterPlane() def OnChangeOgreSettings(self, event): getOgreManager().getRoot().showConfigDialog() @@ -290,7 +293,7 @@ dialog = wx.FileDialog(self, "Open Terrain", default, "", "Terrain Files (*.terrn)|*.terrn", wx.FD_OPEN | wx.FD_FILE_MUST_EXIST) res = dialog.ShowModal() if res == wx.ID_OK: - self.fileopenmenu.Enable(False) + #self.fileopenmenu.Enable(False) self.filesavemenu.Enable(True) self.filesaveasmenu.Enable(True) filename = dialog.GetPath() @@ -305,11 +308,11 @@ #self.sharedOgreWin2 = RoRTerrainSelectedObjectTopOgreWindow(self.viewsplitterdown, wx.ID_ANY, self.terrainOgreWin) self.terrainOgreWin.LoadTerrain(filename) - - #update some controls if finished loading - self.waterlevelctrl.SetValue(self.terrainOgreWin.terrain.WaterHeight) - self.waterLevelText.Label = "Water Level: %0.1f" % (self.terrainOgreWin.terrain.WaterHeight) - self.terrainNamectrl.SetValue(self.terrainOgreWin.terrain.TerrainName) + if not self.terrainOgreWin.terrain is None: + #update some controls if finished loading + self.waterlevelctrl.SetValue(self.terrainOgreWin.terrain.WaterHeight) + self.waterLevelText.Label = "Water Level: %0.1f" % (self.terrainOgreWin.terrain.WaterHeight) + self.terrainNamectrl.SetValue(self.terrainOgreWin.terrain.TerrainName) def onViewObjectDetails(self, event=None): Modified: trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py =================================================================== --- trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py 2007-07-20 00:31:37 UTC (rev 109) +++ trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py 2007-07-20 10:00:13 UTC (rev 110) @@ -17,6 +17,7 @@ node = None entity = None data = None + manual = None class RoRTerrainOgreWindow(wxOgreWindow): @@ -219,6 +220,8 @@ self.RotateNode.setPosition(entity.getParentNode().getPosition()) def createArrows(self): + if not self.TranslateNode is None: + return #translation nodes n = self.sceneManager.getRootSceneNode().createChildSceneNode("movearrowsnode") nx = n.createChildSceneNode("movearrowsnodeX") @@ -307,7 +310,42 @@ self.arrowScale = self.selectedEntry.entity.getBoundingRadius() / 100 def free(self): - self.sceneManager.clearScene() + #self.sceneManager.clearScene() + self.sceneManager.destroyAllManualObjects() + + # try to clear things up + #try: + for key in self.entries.keys(): + entry = self.entries[key] + if not entry.node is None: + try: + entry.node.detachAllObjects() + self.sceneManager.destroySceneNode(entry.node.getName()) + except: + print "A" + pass + if not entry.entity is None: + try: + self.sceneManager.destroyEntity(entry.entity) + except: + print "B" + pass + if not entry.data is None: + del entry.data + del self.entries[key] + + + try: + self.waternode.detachAllObjects() + self.sceneManager.destroySceneNode(self.waternode) + self.sceneManager.destroyEntity(self.waterentity) + except: + pass + + self.terrain = None + self.entries = {} + #except: + # pass def updateDataStructures(self): for uuid in self.entries.keys(): @@ -327,7 +365,9 @@ if not self.terrain is None: self.free() + print filename self.terrain = RoRTerrain(filename) + print len(self.terrain.objects) cfgfile = os.path.join(os.path.dirname(filename), self.terrain.TerrainConfig) self.sceneManager.setWorldGeometry(cfgfile) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-23 13:44:27
|
Revision: 116 http://roreditor.svn.sourceforge.net/roreditor/?rev=116&view=rev Author: rorthomas Date: 2007-07-23 06:44:24 -0700 (Mon, 23 Jul 2007) Log Message: ----------- * fixed dependency graph function Modified Paths: -------------- trunk/lib/ror/depchecker.py trunk/lib/ror/starter.py Modified: trunk/lib/ror/depchecker.py =================================================================== --- trunk/lib/ror/depchecker.py 2007-07-23 13:40:41 UTC (rev 115) +++ trunk/lib/ror/depchecker.py 2007-07-23 13:44:24 UTC (rev 116) @@ -157,7 +157,7 @@ for rel in fileA[REQUIRES][FILE]: e = (filenameA, rel) edges.append(e) - os.path.join(GRAPHPATH, 'alldependencies.png') + fn = os.path.join(GRAPHPATH, 'alldependencies.png') else: od = -1 parents = [] Modified: trunk/lib/ror/starter.py =================================================================== --- trunk/lib/ror/starter.py 2007-07-23 13:40:41 UTC (rev 115) +++ trunk/lib/ror/starter.py 2007-07-23 13:44:24 UTC (rev 116) @@ -120,7 +120,7 @@ def OnDepGraph(self, event=None): import ror.depchecker ror.depchecker.RoRDepChecker(self.rordir, "all", "") - file = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..\\..\\dependencies.png")) + file = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..\\..\\graphs\\alldependencies.png")) print file if os.path.isfile(file): dlg = wx.MessageDialog(self, "Graph successfully created:\n"+file, "Info", wx.OK | wx.ICON_INFORMATION) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |