<commit_before>0.17.0
-------------------
Fix: Stopped mobs spawing illegally (#280)
New: Added has_mission_begun flag to world state, to solve problems with short missions (#118, #236)
Fix: [BREAKING CHANGE] Rewards now sent as simple strings rather than XML, for speed - changes recorded rewards format (#261)
New: ALEAgentHost.setSeed allows ALE experiments to be seeded (#254)
Fix: No longer need a fresh MissionRecordSpec for each call to startMission (#256)
New: [BREAKING CHANGE] MissionRecordSpec.getTemporaryDirectory() now moved to AgentHost.getRecordingTemporaryDirectory()
New: MALMO_TEMP_PATH environment variable now used to determine where temp recording files are created (#21)
New: TimestampedFrame now includes xPos,yPos,zPos,yaw and pitch information. (#257, #250, #231)

0.16.1 (2016-08-03)
-------------------
New: Simple "craft" command now works with smelting recipes - eg "craft cooked_rabbit" to cook raw rabbit meat. (#177)
Fix: [BREAKING CHANGE] Malmo java bindings now use pacakge com.microsoft.msr.malmo (#232)

0.16.0 (2016-07-29)
-------------------
New: DiscreteCommandHandler now supports AgentQuitFromTouchingBlockType and RewardForTouchingBlockType. (#241)
New: MissionSpec has get/setSummary, getListOfCommandHandlers, getAllowedCommands. (#217)
New: DiscreteCommandHandler now supports attack and use commands. (#219)
New: Bonus - added AllowedMobs to ServerInitialConditions to control which mobs are allowed to spawn (does not affect mob_spawners)
New: Bonus - can now draw mob_spawner blocks and specify the entity they spawn as a variant.
New: ObservationFromRay returns info about nearest block/item/entity in the agent's direct line of sight. (#184)
Fix: RewardForDiscardingItem/RewardForCollectingItem now work with variations, colours etc.
Fix: Inventory and Entity observations now return information in the same format we use to specify things (eg Type, Variation, Colour)
New: More types supported in BlockDrawing, Inventory initialisation etc - see FlowerTypes, EntityTypes, MonsterEggTypes
New: AgentQuitFromCollectingItem (#171)
New: ObservationsFromFullStats now additionally returns Air (#214)
New: Cross-platform Human Action Component

0.15.0 (2016-07-18)
-------------------
New: Added ObservationFromNearbyEntities (#89) and updated reward_for_items_test.py to demonstrate it.
New: Simplified inventory movement with swapInventoryItems command (#148).
New: Can combine inventory slots using new combineInventoryItems command (#189).
New: Free-floating blocks can now be placed using DrawItem, and used in RewardForDiscardingItem/RewardForCollectingItem.
New: Crafting now triggers RewardForDiscardingItem/RewardForCollectingItem.
New: Python bindings changed for videoframe pixels - now returns a native python array, for faster use in numpy/PIL etc. (#187)

0.14.0 (2016-07-07)
-------------------
New: Basic, first stage crafting support added (issue #11).
New: ObservationsFromMazeOptimalPath has been turned into general purpose ObservationFromSubgoalPositionList
New: Maze generator can now take care of quitting mission when agent reaches goal (issue #103)
New: AgentQuitFromReachingCommandQuota (issue #109).
Rewards are now only sent when triggered (issue #120).
Multi-dimensional rewards are now possible, using a 'dimension' parameter on each RewardProducer.
Pitch command had positive as up, which was inconsistent with Minecraft and Placement section.

0.13.0 (2016-07-01)
-------------------
New: tp x y z command (issue #112).
Fix: Hotbar commands moved from ContinuousMovementCommands to InventoryCommands.
Fix: Client quit producers are now queried between executing commands, in cases where commands get clustered.
New: Test for AgentQuitFromReachingPosition.
Some MissionSpec calls now take float coordinates to match XML (issue #107). If you want to start in the middle of a block,
  make sure that the x and z coordinates end in 0.5.
MissionSpec::endAt now takes tolerance parameter.
peekWorldState and getWorldState now return WorldState instances rather than smart pointers (issue #124).
New: API call MissionSpec::setViewpoint to change the camera viewpoint.
Fix: ALE_HAC.py was broken (issue #114).

0.12.0 (2016-06-24)
-------------------
New: Issue 55 (added forceReset flag to FlatWorldGenerator, DefaultWorldGenerator and FileWorldGenerator).
New: Issue 84 (added seed to FlatWorldGenerator and DefaultWorldGenerator).
Add: Issue 82 (new RewardForDiscardingItem mission handler).
Add: Issue 73 (added new DiscardCurrentItem command to InventoryCommands).
Add: Issue 4 (Overclocking) - can set tick length, and limit onscreen render.
Fix: Issue 48 (Grid observer crippled by bad TCP string sending method).
Fix: Issue 52 (Malmo's internal Minecraft client/server messages limited to 64k data per message).
Fix: Issue 40 (added tostring() methods to Lua and Python classes).
Fix: Issue 7 (requesting depth map would break the recorded video).
Fix: Issue 81 (changing video size between missions could crash the platform).
Fix: Issue 2 (XSDs no longer need to be in the current folder).
Add: New API call: MissionSpec::requestVideoWithDepth.
Add: New API call: AgentHost::peekWorldState.

0.11.2 (2016-06-06)
-------------------
Fix: Issue 22 (attack auto-repeat not working if Minecraft hasn't had focus).
Fix: Issue 33 (framerate slowdown after 500+ missions).
Fix: Issue 37 (occasional messages lost because two servers listening on same port).

0.11.1 (2016-05-20)
-------------------
Add: Login feature and UI required for authentication in multi-agent missions
Fix: Render size set correctly, avoiding aspect ratio distortion.
Add: Support for multi-agent missions. New sample: MultiMaze.py

0.11.0 (2016-05-12)
-------------------
Change: All project code renamed to 'Malmo'.
Add: New ALEAgentHost, to use the Atari Learning Environment as a back-end instead of Minecraft.
Add: Chat commands and observations now supported.
Fix: MissionSpec::observeGrid and ::observeDistance were broken.

0.10.4 (2016-04-20)
-------------------
Fix: discrete movement had interpolation when rendering and offsetting in the Mod when bumping against walls.
Fix: tabular_q_learning.py was using deprecated API.

0.10.3 (2016-04-01)
-------------------
Change: replaced MissionSpec::useDiscreteActions() with allowContinuousMovementCommand() etc. to control allow- and deny-lists through the API.
Fix: 64-bit build now supported on Windows.
Fix: Human Action Component now supports discrete actions again.
Add: New visualization tool for heatmaps of agent movement.

0.10.2 (2016-03-22)
-------------------
Fix: ffmpeg now a runtime dependency instead of an installation requirement.
Fix: pitch and yaw speed now render-speed independent.

0.10.1 (2016-03-03)
-------------------
Add: Tutorial pdf and scripts
Fix: DefaultWorldGenerator wasn't generating if a flatworld was already running.
Fix: ObservationFromGrid was never returning observations.
Fix: Hotbar keys were broken for both agent and human.
Fix: Initial yaw and pitch were being stomped on by ContinuousCommandHandler.
Fix: The order of draw objects in the DrawingDecorator is now preserved.
Fix: Command handler modifiers now called "allow-list" and "deny-list".
Add: AI/Human toggle now bound to enter key and state is displayed in info text.
Fix: Mouse can no longer move the AI in the gap between missions.
Fix: AI/Human toggling of control fixed (no longer need to press toggle key twice).
Fix: Empty JSON observations filtered out.
Add: Tutorial in Python_Examples.

0.10.0 (2016-02-26)
------------------
Add: WorldDecorators can now throw to cleanly abort missions.
Fix: Mod error message lists weren't getting reset between missions.
Add: New python example for DefaultWorldGenerator, timestamps etc.
Fix: MissionSpec::useDiscreteActions() was broken.
Fix: Timestamps weren't accessible in Python and Lua.
Fix: Player now no longer remains on fire from the end of a previous mission.
Fix: Player placement yaw and pitch were being ignored.
Add: New python example for tabular Q learning.
Add: ClassroomDecorator, providing random sampling from a parameterized mission space.

0.9.9 (2016-02-12)
------------------
Fix: When running multiple missions, video/PNGs would only be saved in the first one.

0.9.8 (2016-02-11)
------------------
Fix: Attempting to run without saving mission file (empty MissionRecordSpec) would cause crash.
Fix: Torch support was missing.
Add: Debian 7 support now available.

0.9.7 (2016-02-09)
------------------
Fix: Reuses TCP connections to avoid leaving too many ports in TIME_WAIT.

0.9.6 (2016-02-05)
------------------
Fix: getTorchTensorFromPixels now takes an allocated tensor, avoids memory leak.

0.9.5 (2016-01-28)
------------------
Fix: Final reward now sent in MissionEnded message to guarantee arrival.

0.9.4 (2016-01-27)
------------------
Add: RewardProducer for mission end.
Add: XSD documentation in Schemas folder.

0.9.3 (2016-01-20)
------------------
Add: Discrete movement handlers.

0.9.1 (2016-01-07)
------------------
Add: Improved installation instructions.

0.9.0 (2016-01-05)
------------------
Change: Rewrite of platform API to be cross-platform, multi-language and easier to use.
Change: Large XML changes.
Change: Removed ExperimentLauncher and ExperimentStudio.

0.8 (2015-11-20)
----------------
Fix: Exceptions now passed on to Python agents - user should catch.
Change: Malmo.StartListeningForMissionControlMessages() now doesn't take the port parameter.
Change: Malmo.SendMissionEnded() now doesn't take the port parameter.
Add: New ObservationsProducer: ObservationFromRecentCommands.
Add: Can specify game mode in WorldFromBaseMapFile.
Add: Can now specify a motor scaling for turning.
Add: New VideoProducer: RGBDVideoGenerator gives RGB and depth.

0.7 (2015-09-11)
----------------
Change: StartTime node in XML has changes.
Change: Discrete.WorldFromGrid mission handler has been removed.
Change: Malmo.saveUri is no longer available.
Change: Malmo.logVideoEnabled is no longer available.
Add: Malmo.StartListeningForVideo() now takes an optional parameter, to request raw image buffer instead of PIL image.
Add: Communication between Python and Lua/Torch is now supported.
Add: Communication between C# and Lua/Torch is now supported.
Add: Malmo.SendMissionInitString() now validates the MissionInit string before sending, for easier debugging.
Add: Malmo.GetMissionInitString() now allows the video size and save location to be specified.

0.6 (2015-08-26)
----------------
Change: No longer saves mission file by default - call Malmo.SaveSession manually in OnMissionEndedMessage().
Python agents no longer require bat files to launch from the launcher/experiment studio, and can train.
Fix: timeout issue when launching missions from python ("no agent available" error)
Fix: Sample Python agents were giving an error saying no module named malmo.
Mod's observations now report agent's position using floats rather than ints.
Mod shouldn't grab mouse pointer anymore (mostly).
Fix: yaw and pitch should be set to sensible defaults at the start of each mission (fix weird camera angle error)
Fix: XML block drawing no longer requires co-ords to be specified in low->high order.
Additions to Mission XML: (full documentation of these is pending)
  Inventory - can control exactly what blocks/items appear in which slots of player's inventory at start of each mission
  Weather - can specify rain/thunder/clear weather for initial mission conditions
  StartTime - can specify the Minecraft world time at the start of the Mission (will stop repeated runs of missions entering the night time)
  AllowSpawning - can switch mob spawning on/off
  Initial pitch and yaw can be specified.

0.5 (2015-08-17)
----------------
Python agents can be run in the cloud
HumanInstanceDownload - command line program to download human instance recordings
DatasetCreation - create datasets from human instance data
New missionhandler for teleport commands: CommandForAbsoluteMovement

0.4.1 (2015-08-11)
------------------
Mod now quits the mission and returns to dormant state when it detects that its TCP video or reward signals are not being received by anything.
New commands added to the Discrete.CommandForGridWalking handler.
New whitelisting/blacklisting of individual commands in the command handlers

0.3.1 (2015-07-27)
------------------
Change: In Python agents, the OnVideo callback now takes a PIL (Python Imaging Library) Image, instead of a raw buffer of bytes. See the sample scripts for usage hints.
Change: Needs 'requests': pip install requests
Change: You need an Experiment Studio human account created in order to log into Human Action.
Change: OutputUri is now required in MissionInit nodes
Add: Parameterisation added to the grid observation producer (the one that produces the hull of blocks around the player).
Add: Parameterisation added to the discrete world builder (produces a flat maze-like grid of stained glass over lava).
New MissionHandlers available (see the md files for details):
  WorldBuilder: "WorldFromDefaultGame" - basically loads a default world.
  ObservationProducers: "ObservationFromHotBar" and "ObservationFromFullInventory"
  CommandHandler: "CommandForInventoryToHotBar" - allows basic manipulation of inventory.
Fixes to Discrete MissionHandlers: Discrete.RewardForGridWalking should now give a negative reward for attempting to move, even if the move was unsuccessful (eg the agent tried to walk into a wall).
Stabilisation - hopefully the Mod can now cope with thousands of missions without crashing, hanging, or otherwise doing weird things.

0.2 (2015-07-15)
----------------
Change: XML files in new version cannot be used in old versions of the software.
Change: For loading a base map, WorldFromBaseMapFile must be one of the WorldBuilder mission handlers. See notes below.
Add: Mod now crashes far less often.
Add: New world builders mean that there is no need to manually enter a world when launching minecraft.
Add: Python agents now save out Malmo files with the session contents. Frames are timestamped png files.
Add: XML files now include a SchemaVersion attribute, to help with future changes.

0.1.1 (2015-07-07)
------------------
Change: Mission handlers now separate XML nodes, with ClassName attribute. See samples in ExperimentDefinitions.
Change: MalmoStartListeningForMissionControlMessages now takes 3 parameters. See samples in NonPsiAgents.
Change: Python scripts now require PyXB. See Tutorials.
Add: Support for discrete action experiments. The D-Pad on the XBox controller can be used to navigate through the provided cliffWalkingTask.xml mission for example.
Add: Lots of bugfixes. The Mod now crashes less often.
<commit_msg>Added reward doubling fix to changelog.<commit_after>0.17.0
-------------------
Fix: Rewards would occasionally get doubled. (#275)
Fix: Stopped mobs spawing illegally. (#280)
New: Added has_mission_begun flag to world state, to solve problems with short missions. (#118, #236)
Fix: [BREAKING CHANGE] Rewards now sent as simple strings rather than XML, for speed - changes recorded rewards format. (#261)
New: ALEAgentHost.setSeed allows ALE experiments to be seeded. (#254)
Fix: No longer need a fresh MissionRecordSpec for each call to startMission. (#256)
New: [BREAKING CHANGE] MissionRecordSpec.getTemporaryDirectory() now moved to AgentHost.getRecordingTemporaryDirectory().
New: MALMO_TEMP_PATH environment variable now used to determine where temp recording files are created. (#21)
New: TimestampedFrame now includes xPos,yPos,zPos,yaw and pitch information. (#257, #250, #231)

0.16.1 (2016-08-03)
-------------------
New: Simple "craft" command now works with smelting recipes - eg "craft cooked_rabbit" to cook raw rabbit meat. (#177)
Fix: [BREAKING CHANGE] Malmo java bindings now use pacakge com.microsoft.msr.malmo. (#232)

0.16.0 (2016-07-29)
-------------------
New: DiscreteCommandHandler now supports AgentQuitFromTouchingBlockType and RewardForTouchingBlockType. (#241)
New: MissionSpec has get/setSummary, getListOfCommandHandlers, getAllowedCommands. (#217)
New: DiscreteCommandHandler now supports attack and use commands. (#219)
New: Bonus - added AllowedMobs to ServerInitialConditions to control which mobs are allowed to spawn (does not affect mob_spawners).
New: Bonus - can now draw mob_spawner blocks and specify the entity they spawn as a variant.
New: ObservationFromRay returns info about nearest block/item/entity in the agent's direct line of sight. (#184)
Fix: RewardForDiscardingItem/RewardForCollectingItem now work with variations, colours etc.
Fix: Inventory and Entity observations now return information in the same format we use to specify things (eg Type, Variation, Colour).
New: More types supported in BlockDrawing, Inventory initialisation etc - see FlowerTypes, EntityTypes, MonsterEggTypes.
New: AgentQuitFromCollectingItem. (#171)
New: ObservationsFromFullStats now additionally returns Air. (#214)
New: Cross-platform Human Action Component.

0.15.0 (2016-07-18)
-------------------
New: Added ObservationFromNearbyEntities (#89) and updated reward_for_items_test.py to demonstrate it.
New: Simplified inventory movement with swapInventoryItems command. (#148)
New: Can combine inventory slots using new combineInventoryItems command. (#189)
New: Free-floating blocks can now be placed using DrawItem, and used in RewardForDiscardingItem/RewardForCollectingItem.
New: Crafting now triggers RewardForDiscardingItem/RewardForCollectingItem.
New: Python bindings changed for videoframe pixels - now returns a native python array, for faster use in numpy/PIL etc. (#187)

0.14.0 (2016-07-07)
-------------------
New: Basic, first stage crafting support added. (#11)
New: ObservationsFromMazeOptimalPath has been turned into general purpose ObservationFromSubgoalPositionList.
New: Maze generator can now take care of quitting mission when agent reaches goal. (#103)
New: AgentQuitFromReachingCommandQuota. (#109)
Rewards are now only sent when triggered. (#120)
Multi-dimensional rewards are now possible, using a 'dimension' parameter on each RewardProducer.
Pitch command had positive as up, which was inconsistent with Minecraft and Placement section.

0.13.0 (2016-07-01)
-------------------
New: tp x y z command. (#112)
Fix: Hotbar commands moved from ContinuousMovementCommands to InventoryCommands.
Fix: Client quit producers are now queried between executing commands, in cases where commands get clustered.
New: Test for AgentQuitFromReachingPosition.
Some MissionSpec calls now take float coordinates to match XML (#107). If you want to start in the middle of a block,
  make sure that the x and z coordinates end in 0.5.
MissionSpec::endAt now takes tolerance parameter.
peekWorldState and getWorldState now return WorldState instances rather than smart pointers. (#124)
New: API call MissionSpec::setViewpoint to change the camera viewpoint.
Fix: ALE_HAC.py was broken. (#114)

0.12.0 (2016-06-24)
-------------------
New: Issue 55 (added forceReset flag to FlatWorldGenerator, DefaultWorldGenerator and FileWorldGenerator).
New: Issue 84 (added seed to FlatWorldGenerator and DefaultWorldGenerator).
Add: Issue 82 (new RewardForDiscardingItem mission handler).
Add: Issue 73 (added new DiscardCurrentItem command to InventoryCommands).
Add: Issue 4 (Overclocking) - can set tick length, and limit onscreen render.
Fix: Issue 48 (Grid observer crippled by bad TCP string sending method).
Fix: Issue 52 (Malmo's internal Minecraft client/server messages limited to 64k data per message).
Fix: Issue 40 (added tostring() methods to Lua and Python classes).
Fix: Issue 7 (requesting depth map would break the recorded video).
Fix: Issue 81 (changing video size between missions could crash the platform).
Fix: Issue 2 (XSDs no longer need to be in the current folder).
Add: New API call: MissionSpec::requestVideoWithDepth.
Add: New API call: AgentHost::peekWorldState.

0.11.2 (2016-06-06)
-------------------
Fix: Issue 22 (attack auto-repeat not working if Minecraft hasn't had focus).
Fix: Issue 33 (framerate slowdown after 500+ missions).
Fix: Issue 37 (occasional messages lost because two servers listening on same port).

0.11.1 (2016-05-20)
-------------------
Add: Login feature and UI required for authentication in multi-agent missions
Fix: Render size set correctly, avoiding aspect ratio distortion.
Add: Support for multi-agent missions. New sample: MultiMaze.py

0.11.0 (2016-05-12)
-------------------
Change: All project code renamed to 'Malmo'.
Add: New ALEAgentHost, to use the Atari Learning Environment as a back-end instead of Minecraft.
Add: Chat commands and observations now supported.
Fix: MissionSpec::observeGrid and ::observeDistance were broken.

0.10.4 (2016-04-20)
-------------------
Fix: discrete movement had interpolation when rendering and offsetting in the Mod when bumping against walls.
Fix: tabular_q_learning.py was using deprecated API.

0.10.3 (2016-04-01)
-------------------
Change: replaced MissionSpec::useDiscreteActions() with allowContinuousMovementCommand() etc. to control allow- and deny-lists through the API.
Fix: 64-bit build now supported on Windows.
Fix: Human Action Component now supports discrete actions again.
Add: New visualization tool for heatmaps of agent movement.

0.10.2 (2016-03-22)
-------------------
Fix: ffmpeg now a runtime dependency instead of an installation requirement.
Fix: pitch and yaw speed now render-speed independent.

0.10.1 (2016-03-03)
-------------------
Add: Tutorial pdf and scripts
Fix: DefaultWorldGenerator wasn't generating if a flatworld was already running.
Fix: ObservationFromGrid was never returning observations.
Fix: Hotbar keys were broken for both agent and human.
Fix: Initial yaw and pitch were being stomped on by ContinuousCommandHandler.
Fix: The order of draw objects in the DrawingDecorator is now preserved.
Fix: Command handler modifiers now called "allow-list" and "deny-list".
Add: AI/Human toggle now bound to enter key and state is displayed in info text.
Fix: Mouse can no longer move the AI in the gap between missions.
Fix: AI/Human toggling of control fixed (no longer need to press toggle key twice).
Fix: Empty JSON observations filtered out.
Add: Tutorial in Python_Examples.

0.10.0 (2016-02-26)
------------------
Add: WorldDecorators can now throw to cleanly abort missions.
Fix: Mod error message lists weren't getting reset between missions.
Add: New python example for DefaultWorldGenerator, timestamps etc.
Fix: MissionSpec::useDiscreteActions() was broken.
Fix: Timestamps weren't accessible in Python and Lua.
Fix: Player now no longer remains on fire from the end of a previous mission.
Fix: Player placement yaw and pitch were being ignored.
Add: New python example for tabular Q learning.
Add: ClassroomDecorator, providing random sampling from a parameterized mission space.

0.9.9 (2016-02-12)
------------------
Fix: When running multiple missions, video/PNGs would only be saved in the first one.

0.9.8 (2016-02-11)
------------------
Fix: Attempting to run without saving mission file (empty MissionRecordSpec) would cause crash.
Fix: Torch support was missing.
Add: Debian 7 support now available.

0.9.7 (2016-02-09)
------------------
Fix: Reuses TCP connections to avoid leaving too many ports in TIME_WAIT.

0.9.6 (2016-02-05)
------------------
Fix: getTorchTensorFromPixels now takes an allocated tensor, avoids memory leak.

0.9.5 (2016-01-28)
------------------
Fix: Final reward now sent in MissionEnded message to guarantee arrival.

0.9.4 (2016-01-27)
------------------
Add: RewardProducer for mission end.
Add: XSD documentation in Schemas folder.

0.9.3 (2016-01-20)
------------------
Add: Discrete movement handlers.

0.9.1 (2016-01-07)
------------------
Add: Improved installation instructions.

0.9.0 (2016-01-05)
------------------
Change: Rewrite of platform API to be cross-platform, multi-language and easier to use.
Change: Large XML changes.
Change: Removed ExperimentLauncher and ExperimentStudio.

0.8 (2015-11-20)
----------------
Fix: Exceptions now passed on to Python agents - user should catch.
Change: Malmo.StartListeningForMissionControlMessages() now doesn't take the port parameter.
Change: Malmo.SendMissionEnded() now doesn't take the port parameter.
Add: New ObservationsProducer: ObservationFromRecentCommands.
Add: Can specify game mode in WorldFromBaseMapFile.
Add: Can now specify a motor scaling for turning.
Add: New VideoProducer: RGBDVideoGenerator gives RGB and depth.

0.7 (2015-09-11)
----------------
Change: StartTime node in XML has changes.
Change: Discrete.WorldFromGrid mission handler has been removed.
Change: Malmo.saveUri is no longer available.
Change: Malmo.logVideoEnabled is no longer available.
Add: Malmo.StartListeningForVideo() now takes an optional parameter, to request raw image buffer instead of PIL image.
Add: Communication between Python and Lua/Torch is now supported.
Add: Communication between C# and Lua/Torch is now supported.
Add: Malmo.SendMissionInitString() now validates the MissionInit string before sending, for easier debugging.
Add: Malmo.GetMissionInitString() now allows the video size and save location to be specified.

0.6 (2015-08-26)
----------------
Change: No longer saves mission file by default - call Malmo.SaveSession manually in OnMissionEndedMessage().
Python agents no longer require bat files to launch from the launcher/experiment studio, and can train.
Fix: timeout issue when launching missions from python ("no agent available" error)
Fix: Sample Python agents were giving an error saying no module named malmo.
Mod's observations now report agent's position using floats rather than ints.
Mod shouldn't grab mouse pointer anymore (mostly).
Fix: yaw and pitch should be set to sensible defaults at the start of each mission (fix weird camera angle error)
Fix: XML block drawing no longer requires co-ords to be specified in low->high order.
Additions to Mission XML: (full documentation of these is pending)
  Inventory - can control exactly what blocks/items appear in which slots of player's inventory at start of each mission
  Weather - can specify rain/thunder/clear weather for initial mission conditions
  StartTime - can specify the Minecraft world time at the start of the Mission (will stop repeated runs of missions entering the night time)
  AllowSpawning - can switch mob spawning on/off
  Initial pitch and yaw can be specified.

0.5 (2015-08-17)
----------------
Python agents can be run in the cloud
HumanInstanceDownload - command line program to download human instance recordings
DatasetCreation - create datasets from human instance data
New missionhandler for teleport commands: CommandForAbsoluteMovement

0.4.1 (2015-08-11)
------------------
Mod now quits the mission and returns to dormant state when it detects that its TCP video or reward signals are not being received by anything.
New commands added to the Discrete.CommandForGridWalking handler.
New whitelisting/blacklisting of individual commands in the command handlers

0.3.1 (2015-07-27)
------------------
Change: In Python agents, the OnVideo callback now takes a PIL (Python Imaging Library) Image, instead of a raw buffer of bytes. See the sample scripts for usage hints.
Change: Needs 'requests': pip install requests
Change: You need an Experiment Studio human account created in order to log into Human Action.
Change: OutputUri is now required in MissionInit nodes
Add: Parameterisation added to the grid observation producer (the one that produces the hull of blocks around the player).
Add: Parameterisation added to the discrete world builder (produces a flat maze-like grid of stained glass over lava).
New MissionHandlers available (see the md files for details):
  WorldBuilder: "WorldFromDefaultGame" - basically loads a default world.
  ObservationProducers: "ObservationFromHotBar" and "ObservationFromFullInventory"
  CommandHandler: "CommandForInventoryToHotBar" - allows basic manipulation of inventory.
Fixes to Discrete MissionHandlers: Discrete.RewardForGridWalking should now give a negative reward for attempting to move, even if the move was unsuccessful (eg the agent tried to walk into a wall).
Stabilisation - hopefully the Mod can now cope with thousands of missions without crashing, hanging, or otherwise doing weird things.

0.2 (2015-07-15)
----------------
Change: XML files in new version cannot be used in old versions of the software.
Change: For loading a base map, WorldFromBaseMapFile must be one of the WorldBuilder mission handlers. See notes below.
Add: Mod now crashes far less often.
Add: New world builders mean that there is no need to manually enter a world when launching minecraft.
Add: Python agents now save out Malmo files with the session contents. Frames are timestamped png files.
Add: XML files now include a SchemaVersion attribute, to help with future changes.

0.1.1 (2015-07-07)
------------------
Change: Mission handlers now separate XML nodes, with ClassName attribute. See samples in ExperimentDefinitions.
Change: MalmoStartListeningForMissionControlMessages now takes 3 parameters. See samples in NonPsiAgents.
Change: Python scripts now require PyXB. See Tutorials.
Add: Support for discrete action experiments. The D-Pad on the XBox controller can be used to navigate through the provided cliffWalkingTask.xml mission for example.
Add: Lots of bugfixes. The Mod now crashes less often.

{'fraction_non_alphanumeric': 0.09670195439739414, 'fraction_numerical': 0.032471498371335505, 'mean_word_length': 4.030380611025772, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1144047', 'n_tokens_mistral': 8304, 'n_tokens_neox': 7523, 'n_words': 3792}