Instantly share code, notes, and snippets.

@Niadel /1.7-1.8 Changes Secret
Last active Jul 22, 2016

What would you like to do?
Obvious Changes From Minecraft 1.7 To 1.8 Codewise
- Block metadata is now largely replaced with BlockStates, but metadata code still exists, implying metadata is deprecated. Items appear to still use metadata.
BlockStates allow for more variants of blocks and, according to Dinnerbone, a performance optimisation.
- Block sides are now decided via EnumFacing.
- You now apparently register blocks with resource locations instead of string ids. However, you can still use strings in the registration method, they just get
wrapped in a ResourceLocation and registered that way.
- Blast resistance is now always block resistance divided by 5 by default. However, this is changeable by overriding getExplosionResistance, and has the added bonus of allowing a block to only be destroyed by certain entities. setExplosionResistance also works it seems.
- Pressure plate sensitivity is decided by a inner class in BlockPressurePlate called Sensitivity.
- Two new Vec classes in util, Vec3i and Vec4b.
- New way of defining how mobs spawn - EntitySpawnPlacementRegistry. Three options for spawn placement exist in EntityLiving.SpawnPlacementType - ON_GROUND,
- World border customisable from code with WorldBorder in world/border package.
- Bootstrap sets System.out and System.err to LoggingPrintStreams. This means that you can now use the logger with System.out.println, however basic. I still
recommend you use custom Loggers as it will print with the name STDOUT/STDERR depending on whether you use System.out or System.err.
- You can now register ItemBlocks with Item.
- Particle spawned is now defined via an Enum.
- FactoryBlockPattern can be used to add block structures like the Wither. For usage, see
- No more RenderBlocks, use Block models like those used in resource packs as of 1.8.
- Cartesian class in util.
- Rotations class, used with the Armour Stand.
- MapPopulator class, takes two Iterables and returns a map with the two Iterables contents (first Iterable equals key set, second Iterable equals entry set),
alternatively populating a 3rd parameter that is a map. Can't think of an obvious use beyond sort of merging two Lists. If the 3rd parameter is not used,
Minecraft will provide a LinkedList with the contents of the two Iterables as stated before.
- Trades are now defined in EntityVillager as a THREE (I s*** thee not) dimensional array of ITradeLists. Note that in Forge, this will likely be moved according
to LexManos's twitter.
- Game args are now stored in a class known as GameInformation.
- GLStateManager class added. USE THIS TO DO YOUR OPENGL CALLS! Do not directly GL11.blendFunc(), etc., use GLStateManager.blendFunc() etc. Failure to do this causes visual artifacts and problems. For more info see:

This comment has been minimized.

Copy link

benaubin commented Oct 6, 2014


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment