Building mode & saving

hello :slight_smile:

I have another problem with cPickle :blush:

right now, when i save one objects, cPickle load two objects o_O .

for exemple, if i just save a taepot, and i load it, i have a teapot and a panda in the same place.

here is the code :

import direct.directbase.DirectStart 
import cPickle, sys
from pandac.PandaModules import * 
from direct.showbase.DirectObject import DirectObject
from pandac.PandaModules import PandaNode,NodePath,Camera,TextNode
from pandac.PandaModules import Filename
from direct.gui.DirectGui import * 

class World (DirectObject) :
    def __init__ (self)  : 
     self.allobjects = []    
     self.GUI () 
    def GUI (self) :
     self.ButtonFile = DirectOptionMenu(text="File", scale=0.05,items=["File", "Save", "Load"],
     initialitem=0,highlightColor=(0.65,0.65,0.65,1),command=self.File )
     self.ButtonFile.setPos (-1.33, 0, 0.963)

     self.ButtonPanda = DirectButton(text = ("Teapot", "click!"),scale=.05,command = self.Panda )
     self.ButtonPanda.setPos (1, 0, -0.9) 

     self.ButtonRalph = DirectButton(text = ("Ralph", "click!"),scale=.05,command = self.Teapot )
     self.ButtonRalph.setPos (1, 0, -0.4)    
    def File (self, arg) :# pour changer de temps (ensoleillé,neige, etc.)
     if (arg == "Save") : self.savePickle ()
     if (arg == "Load") : self.loadPickle ()

    def Panda (self) :
        self.panda = loader.loadModel ("models/panda-model.egg.pz")
        self.panda.reparentTo (render)
        self.panda.setPos(0,0,0) 
        self.panda.setScale (0.1,0.1,0.1)
        self.allobjects.append(self.panda)      
    def Teapot (self) :
        self.teapot = loader.loadModel ("models/teapot.egg.pz")
        self.teapot.reparentTo (render)
        self.teapot.setPos(35,0,0) 
        self.allobjects.append(self.teapot) 

    def loadPickle(self):
     data = cPickle.load(open('nodepaths.pickle','rb'))
     for nodepath in data:
        self.teapot = loader.loadModel ("models/teapot.egg.pz")
        self.teapot.reparentTo (render)
        pos = nodepath        
        self.teapot.setPos(*pos)    

        self.panda = loader.loadModel ("models/panda-model.egg.pz")
        pos = nodepath       
        self.panda.setPos (*pos) 
        self.panda.setScale (0.1,0.1,0.1)
        self.panda.reparentTo (render)
    def savePickle (self):
     data = []           
     for nodepath in self.allobjects:
        pos = nodepath.getPos()[0],nodepath.getPos()[1],nodepath.getPos()[2]  # pos = a,b,c -> pos = (a,b,c) ; another tupple
        data.append((pos))
     cPickle.dump(data,open('nodepaths.pickle','wb'))

w = World () 
run () 

how can i do to resolve this problem ?

thanks in advance