ID:160426
 
Okay, I don't want a pixel offset thing, I just want multiple tiles for a mob. However there's just so many issues and problems with it. There must be a better way of approaching this, would anyone know how?

mob
var
owner
list
parts=new



mob
proc
multi_tile(mob/m,mob/object,x,y)
m.parts+=object
object.owner=m
object.loc=locate(m.x+x,m.y+y,m.z)
object.dir=m.dir



verb
add_body()
multi_tile(src,new/mob/body/head,0,1)
multi_tile(src,new/mob/body/middle,-1,0)
multi_tile(src,new/mob/body/middle,1,0)
multi_tile(src,new/mob/body/bottom,0,-1)


mob
body
head //all the front parts
icon='head.dmi'
middle //the in-between
icon='body.dmi'
bottom
icon='bottom.dmi'

Move()
var/movement_succesful_x=src.x
var/movement_succesful_y=src.y
var/canobjectmove
..()
if(src.x!=movement_succesful_x||src.y!=movement_succesful_y)
if(src.parts)
for(var/mob/body/head/v in src.parts)
step(v,src.dir)
for(var/mob/body/middle/v in src.parts)
step(v,src.dir)
There are libraries to handle this: