Mini Map 4.2 - color codes
## Send Targets
import bge
def main():
cont = bge.logic.getCurrentController()
own = cont.owner
scene = bge.logic.getCurrentScene()
TList =[]
if 'init' not in own:
print('Checking')
own['init']=True
for objects in scene.objects:
if 'Tracked' in objects:
TList.append(objects)
own['TList']=TList
else:
SList=[['Player',[own.worldPosition.x,own.worldPosition.y,own.worldPosition.z],[own.worldOrientation.col[0].x,own.worldOrientation.col[0].y,own.worldOrientation.col[2].z]]]
for objects in own['TList']:
#print(objects.name)
if own.getDistanceTo(objects)<50:
Store = objects.worldPosition-own.worldPosition
Store = own.worldOrientation.inverted()*Store
D = objects.worldPosition.z-own.worldPosition.z
if abs(D) <.5:
SList.append([objects.name,[Store.x,Store.y,Store.z],'Green'])
else:
if objects.worldPosition.z>own.worldPosition.z:
SList.append([objects.name,[Store.x,Store.y,Store.z],'Red'])
else:
SList.append([objects.name,[Store.x,Store.y,Store.z],'Blue'])
own.sendMessage('Map',str(SList))
#print(SList)
main()
## Receive Targets
import bge
from mathutils import Vector
def main():
cont = bge.logic.getCurrentController()
own = cont.owner
Message = cont.sensors['Message']
if 'init' not in own:
own['init']=True
own['TList']=[]
if Message.positive:
own['Text']=Message.bodies[0]
Info = eval(Message.bodies[0])
for Data in Info:
if Data[0]!="Player":
Added = bge.logic.getCurrentScene().addObject('Token',own,1)
if Data[2]=='Red':
Added.color = [1,0,0,1]
if Data[2]=='Blue':
Added.color = [0,0,1,1]
if Data[2]=='Green':
Added.color = [0,1,0,1]
Added.worldPosition=own.worldPosition+Vector([Data[1][0]*.1,Data[1][1]*.1,Data[1][2]*.1])
main()
Attachments
MiniMapV4_2.blend (512 KB)