Module utils
[hide private]
[frames] | no frames]

Source Code for Module utils

 1  ''' 
 2  utils.py 
 3  global util functions that compute distance, size, etc 
 4  ''' 
 5  import os 
 6  import math 
 7  from pyglet.resource import media  
 8  from cocos import collision_model, euclid 
 9  from music import theme_player 
10  from constants import SLOT_RADIUS, ANGLE_MULTIPLIER 
11  import constants 
12   
13  # a set of utility methods 
14   
15   
16 -def aabb_to_aa_rect(rect):
17 half_width = abs(rect.left - rect.right) / 2 18 half_height = abs(rect.top - rect.bottom) / 2 19 return collision_model.AARectShape(euclid.Vector2(*rect.center), half_width, half_height)
20 21
22 -def get_action_button_clicked(clicked_units):
23 # Returns an action button if one was clicked. Else, returns False. 24 pass
25 26
27 -def set_slots(num, x, y):
28 return [euclid.Vector2(x + SLOT_RADIUS * math.cos(ANGLE * math.pi / ANGLE_MULTIPLIER), y + SLOT_RADIUS * math.sin(ANGLE * math.pi / ANGLE_MULTIPLIER)) for ANGLE in range(3, 3 + num)]
29
30 -def get_action_menu_slots(num, x, y):
31 # num should be 4 32 # return [euclid.Vector2(x - 133,y - 40*(slot - 1) + 10) for slot in range(num)] 33 34 if num == 4: 35 return [euclid.Vector2(x - 104, y + 67), 36 euclid.Vector2(x - 127, y + 22), 37 euclid.Vector2(x - 127, y - 27), 38 euclid.Vector2(x - 108, y - 72)] 39 elif num == 8: 40 return [euclid.Vector2(x - 104, y + 67), 41 euclid.Vector2(x - 127, y + 22), 42 euclid.Vector2(x - 127, y - 27), 43 euclid.Vector2(x - 108, y - 72), 44 euclid.Vector2(x - 88, y - 90), 45 euclid.Vector2(x + 118, y - 78), 46 euclid.Vector2(x + 148, y - 30), 47 euclid.Vector2(x + 158, y + 8)]
48 49 50 # return [euclid.Vector2(x + SLOT_RADIUS * math.cos(ANGLE * math.pi / ANGLE_MULTIPLIER), y + SLOT_RADIUS * math.sin(ANGLE * math.pi / ANGLE_MULTIPLIER)) for ANGLE in range(3, 3 + num)] 51 52
53 -def play_sound(filename):
54 if constants.SOUND and not constants.MULTIPLAYER: 55 sound = media(os.path.join('sounds', filename), streaming=False) 56 sound.play()
57 58
59 -def play_theme_song():
60 theme_player.play()
61
62 -def get_ip():
63 import netifaces 64 65 for i in netifaces.interfaces(): 66 a = netifaces.ifaddresses(i) 67 if 2 in a.keys() and 'addr' in a[2][0].keys(): 68 if a[2][0]['addr'][:3] == "137": 69 return a[2][0]['addr'] 70 return None
71