Fix grouped region updating. Will need to account for re-adding StaticObjects after they have been removed from the game world. Also commented out some broken functionality in bootstrap involving first/second/third/etc message handlers. Should revisit with fix.

This commit is contained in:
Steve
2015-04-05 20:18:58 -04:00
parent f4c181c0f9
commit 6bffd5c0a1
7 changed files with 38 additions and 42 deletions
+10 -9
View File
@@ -177,15 +177,16 @@ def on_message(args, proc)
numbers = [ 'first', 'second', 'third', 'fourth', 'fifth' ]
message = args[0]; option = 0
numbers.each_index do |index|
number = numbers[index]
if message.to_s.start_with?(number)
option = index + 1
message = message[number.length + 1, message.length].to_sym
break
end
end
# TODO
# numbers.each_index do |index|
# number = numbers[index]
#
# if message.to_s.start_with?(number)
# option = index + 1
# message = message[number.length + 1, message.length].to_sym
# break
# end
# end
class_name = message.to_s.camelize.concat('Message')
+4 -3
View File
@@ -13,12 +13,12 @@ class OpenDoorAction < DistancedAction
def executeAction
mob.turn_to(@door.position)
DoorUtil::toggle(@door, mob)
DoorUtil::toggle(@door)
stop
end
def equals(other)
return (get_class == other.get_class && @door_object == other.door_object)
return (get_class == other.get_class && @door == other.door)
end
end
@@ -28,6 +28,7 @@ on :message, :first_object_action do |player, message|
if DoorUtil::is_door?(message.id)
puts "Player: #{player.position}, door: #{message.position}"
door = DoorUtil::get_door_object(message.position, message.id)
player.start_action(OpenDoorAction.new(player, door)) unless door.nil?
DoorUtil::toggle(door) unless door.nil?
# player.start_action(OpenDoorAction.new(player, door)) unless door.nil?
end
end
+2 -2
View File
@@ -46,7 +46,7 @@ module DoorUtil
end
# Toggles the given door.
def self.toggle(door, player)
def self.toggle(door)
position = door.position
region = $world.region_repository.from_position(position)
region.remove_entity(door)
@@ -59,7 +59,7 @@ module DoorUtil
else
toggled_position = translate_door_position(door)
toggled_orientation = translate_door_orientation(door)
toggled_door = DynamicGameObject.createPublic(door.id, toggled_position, door.type, toggled_orientation)
toggled_door = DynamicGameObject.createPublic($world, door.id, toggled_position, door.type, toggled_orientation)
toggled_region = $world.region_repository.from_position(toggled_position)
toggled_region.add_entity(toggled_door)