예제 #1
0
def makeDMI():
    dmi = DMI('state_limit.dmi')
    #
    for i in range(513):
        # Make a new tile
        img = Image.new('RGBA', (32, 32))
        # Set up PIL's drawing stuff
        draw = ImageDraw.Draw(img)
        # Define a font.
        font = ImageFont.truetype('arial.ttf', 10)
        # Draw the tile number
        draw.text((10, 0), str(i + 1), (0, 0, 0), font=font)
        # Make state
        state_name='state {0}'.format(i+1)
        state=State(state_name)
        state.dirs=1
        state.frames=1
        state.icons=[img]
        # Add state to DMI
        dmi.states[state_name]=state
    #save
    dmi.save('state_limit.dmi', sort=False)
예제 #2
0
 base = floors.getFrame(tileDef['base'],directions.SOUTH,0)
 for color in tileDef['colors']:
     for arrangement in tileDef['arrangements']:
         arrname=''
         arrange=[False,False,False,False]
         if isinstance(arrangement,str):
             arrange=arrangements[arrangement]
             arrname=arrangement
         elif isinstance(arrangement,list):
             arrange=arrangement[1:]
             arrname=arrangement[0]
         state='{base} {color} {arrangement}'.format(base=tileDef['base'],color=color,arrangement=arrname)
         nstate=State(state)
         nstate.dirs=len(arrange)
         nstate.frames=1
         nstate.icons=[None for _ in range(nstate.dirs)]
         #statedebug = DMI(state+'.dmi')
         nfloors.states[state]=nstate
         for d in range(len(arrange)):
             cmap = arrange[d]
             dirf = 0
             dirn = 'SOUTH'
             if len(arrange) > 1:
                 dirf = directions.IMAGE_INDICES[d]
                 dirn = directions.getNameFromDir(dirf)
             print(' Generating state {0} ({1})...'.format(repr(state),dirn))
             #print(repr(arrange))
             img=Image.new('RGBA',(32,32))
             img.paste(base)
             for i in range(len(cmap)):
                 bbox=quadDefs[i]