Permalink
Commits on Sep 9, 2018
  1. Added missing Bedrock blocks

    gentlegiantJGC committed Sep 9, 2018
  2. quick fix for Bedrock 1.6 entity loading and saving

    gentlegiantJGC committed Sep 9, 2018
    Note this will break filters that look for the "id" key in an entity
Commits on Aug 19, 2018
Commits on Aug 9, 2018
  1. Fix for chunks not being removed in the editor when deleting/pruning …

    gentlegiantJGC committed Aug 9, 2018
    …chunks
    
    When deleteing or pruning chunks in MCEdit, chunks that existed but were not currently loaded would be deleted from the database but would not be removed from the allChunks object. This caused a lot of ChunkNotPresent errors and the only way to fix was reloading the world
  2. Fix for #936

    gentlegiantJGC committed Aug 9, 2018
    Dictionary changed size during iteration errors were popping up. This should hopefully fix those issues
Commits on Jul 31, 2018
  1. Removed write options

    gentlegiantJGC committed Jul 31, 2018
  2. MCedit will now only write the tile entity key and entity key if data…

    gentlegiantJGC committed Jul 31, 2018
    … is present
    
    Before MCedit was writing the key even if no data is present. Now MCedit will just delete the key if no data is present (the game will regerate it if needed)
    
    Also fixed entity data being written to the wrong key in non-batch mode (should be \x32 rather than \x33)
  3. Hopefully solved the issue with chunks saved in MCedit causing assert…

    gentlegiantJGC committed Jul 31, 2018
    …s in game
    
    The string id is aquired from pocketMaterials.idStr which contains a list of all the id strings however air is listed as '' so a catch for it was included.
    Also added a catch for blockstates with string id '' when importing to convert to air
Commits on Jul 30, 2018
  1. Implemented "CB Commands" button for Bedrock worlds

    gentlegiantJGC committed Jul 30, 2018
    The "CB Commands" button allows commands in a selection to be dumped to a text file for easy editing and writing back to the world. This has now been implemented for use with Bedrock format worlds
Commits on Jul 29, 2018
  1. Cleaned and added new blockstates

    gentlegiantJGC committed Jul 29, 2018
    Added a very quick framework for each block id including the numerical id, string id and name in the lang files
    Restructured the files to make formatting more consistent
  2. Collapsed and cleaned Bedrock 1.2 blocks.json

    gentlegiantJGC committed Jul 29, 2018
    Collapsed all lists to make the data more readable and take up less space on a screen
    Restructured each entry such that "id" always appears first followed by "idStr" with "data" at the end if present. This makes finding entries easier
  3. Lever base fix

    gentlegiantJGC committed Jul 29, 2018
Commits on Jul 28, 2018
  1. Better block definitions and materials

    gentlegiantJGC committed Jul 28, 2018
    Added a number of blocks that were missing or textured incorrectly
    Fixed a number of blocks that were labeled incorrectly
    Moved blocks introduced in version 1.4 to their own folder as recent changes now allow this
  2. Fixed the negative time in saving and accidentally also the chunk grid

    gentlegiantJGC committed Jul 28, 2018
    This function was not defined that gets the number of chunks in the world to give an approximate time until saving is complete. This has been improved to return the number of loaded chunks to give a better time estimate.
    
    This accidentally also caused the chunk grid to work so I guess there is that as well
Commits on Jul 26, 2018
  1. Numerious performance improvements (#935)

    gentlegiantJGC authored and Podshot committed Jul 26, 2018
    * masively simplify lighting calculations
    
    * significantly faster chunk saving for Bedrock V8 subchunks
    
    this function previously took about 0.5 seconds to run for all the subchunks in a chunk. It now takes about 0.005 seconds (100 times faster)
    
    * slightly improved getAllPlayerData speed
    
    for a large world reduced the runtime of getAllPlayerData from 10.6 seconds to 6.7 seconds
    
    * Revert "slightly improved getAllPlayerData speed"
    
    This reverts commit 247d269.
    
    * removed unnecessary while loop and changed if requirement
    
    the length of the terrain should be based on num_of_storages not the length of the actual data. If further storages are made accessible a for loop can be added
    
    * Improved the efficiency of getAllChunks
    
    Previously this function iterated through literally every key in the database and tested each one if it was the base chunk key. Now it skips over all the keys with the same first 8 characters (the location marker). This seems to about half the runtime of the function
    
    * Converted allChunks to use a set rather than a list
    
    In large worlds the list returned by allChunks is very long and takes a little while to test if a value is contained within. Sets take fractionally longer to build but are far quicker at testing if a value is contained within them
    
    * get => idStr and merged into one for loop
    
    Performance optimisation. The get method was quite slow so has been replaced with just looking for the id in the idStr list. 4.47ms per call down to 0.72ms per call
    
    * significantly sped up chunk creation (__init__)
    
    Changed to use other existing data sets that can be iterated over quicker
    Old code : 15.6ms per call
    New code : 0.76ms per call
    
    * Removed line intended to be removed in the last commit and old code
    
    The top line was supposed to be part of the previous commit
    The lower block is old redundant code
    
    * Fixed bug with getAllChunks
    
    getAllChunks was catching keys not indended to be caught due to db.Get working in a different way to as thought
    
    * Removed line indented to be part of the last commit
    
    * Removed .lower() as some string names contain capitals
    
    * Fixed bug saving blocks not in the JSON files
    
    The old code was looking in the blocksByID dictionary. If the id:data pair was not defined in the JSON files but another data value was defined it would not exist so would be replaced with air. This allows any data value to be saved regardless of its presence in the JSON files. (Note: This allows you to save invalid states which at best the game will replace with air or at worst cause the game to crash.  This is however the cost to allow valid states that are not in the JSON files)
    
    * Moved light calculation to chunk setup
Commits on Jul 20, 2018
Commits on Jul 19, 2018
Commits on Jul 14, 2018
  1. quick fix to dynamically load blocks that are not in the json files

    gentlegiantJGC committed Jul 14, 2018
    If the block is not defined in the mcver json files the game will remove the block. This should allow the game to assign a dynamic id to any blocks that are not in the json files allowing it to be written back to the game
  2. Fixes properties being shadowed and optimisations

    gentlegiantJGC committed Jul 14, 2018
    gameVersion was being replaced by that from each respective format. This has been fixed to allow the depreciation warning message.
    
    Made the variable names have single underscores as they were inaccessable with double underscores. This means most of the code is passed on the second execution.
    
    Also simplified the gameVersion code
  3. updated mcver_updater

    gentlegiantJGC committed Jul 14, 2018
    The previous commit moved versions under their respective platforms in the mcver directory. This fixes the updater to use the new formatting
  4. nested versions under gamePlatform

    gentlegiantJGC committed Jul 14, 2018
    modified the mcver directory so that versions are first stored under their gamePlatform and then gameVersionNumber. This will allow versioning of Bedrock (PE) blocks as well as Java blocks
Commits on Jul 13, 2018
  1. removed gameVersion from the codebase and replaced with gamePlatform …

    gentlegiantJGC committed Jul 13, 2018
    …and gameVersionNumber
    
    the behaviour of level.gameVersion was inconsistent so this has been depreciated and superseeded by gamePlatform and gameVersionNumber where applicable
  2. typo

    gentlegiantJGC committed Jul 13, 2018
  3. added gameVersionNumber, depreciated gameVersion and improved gamePla…

    gentlegiantJGC committed Jul 13, 2018
    …tform
    
    gamePlatform now shows the platform for all platforms
    gameVersionNumber shows the game version for Java and Bedrock
    gameVersion has been depreciated. Use one (or both) of the above
Commits on Jul 7, 2018
  1. improving checking if empty

    gentlegiantJGC committed Jul 7, 2018
    noar suggested moving this down and I realised there was a much more efficient way of doing it
  2. removed try: except:

    gentlegiantJGC committed Jul 7, 2018
    the code reviewer was complaining about this and it doesn't even seem like it is needed