From b9ac73b0f1ac10b6d4cca8ac3771f2e0034597e4 Mon Sep 17 00:00:00 2001 From: LexManos Date: Wed, 18 May 2016 03:29:10 -0700 Subject: [PATCH 01/45] 1.9.4 Update. Major things to note: Class renames: https://gist.github.com/LexManos/44dd211f90f498ad4015279b103dff86 Tile Entities are now packed in the ChunkData packet. Forge intends to work around this to better support large moded worlds, but for the time being modders should implement the new function carefully and only send what data they need to! Minecraft's codebase now has annotations, these are directly from Mojang and should be adheared to! Added support for package-info.java's containing @Nullable information for all MC code base. --- .gitignore | 1 + build.gradle | 11 +- jsons/1.9.4-dev.json | 92 +++ jsons/1.9.4-rel.json | 138 +++++ jsons/1.9.4.json | 551 ++++++++++++++++++ .../net/minecraft/block/Block.java.patch | 48 +- .../minecraft/block/BlockBanner.java.patch | 4 +- .../net/minecraft/block/BlockBush.java.patch | 8 +- .../minecraft/block/BlockButton.java.patch | 2 +- .../net/minecraft/block/BlockChest.java.patch | 2 +- .../net/minecraft/block/BlockCrops.java.patch | 6 +- .../minecraft/block/BlockDeadBush.java.patch | 8 +- .../net/minecraft/block/BlockDoor.java.patch | 4 +- .../block/BlockDoublePlant.java.patch | 14 +- .../minecraft/block/BlockDragonEgg.java.patch | 4 +- .../minecraft/block/BlockDropper.java.patch | 2 +- .../minecraft/block/BlockFarmland.java.patch | 2 +- .../net/minecraft/block/BlockFire.java.patch | 70 +-- .../minecraft/block/BlockFlowerPot.java.patch | 4 +- .../net/minecraft/block/BlockGrass.java.patch | 6 +- .../block/BlockHugeMushroom.java.patch | 2 +- .../net/minecraft/block/BlockIce.java.patch | 4 +- .../minecraft/block/BlockLeaves.java.patch | 10 +- .../net/minecraft/block/BlockLever.java.patch | 2 +- .../block/BlockMobSpawner.java.patch | 2 +- .../minecraft/block/BlockMycelium.java.patch | 4 +- .../block/BlockNetherWart.java.patch | 6 +- .../minecraft/block/BlockNewLeaf.java.patch | 6 +- .../net/minecraft/block/BlockNote.java.patch | 18 +- .../minecraft/block/BlockOldLeaf.java.patch | 2 +- .../net/minecraft/block/BlockOre.java.patch | 2 +- .../net/minecraft/block/BlockPane.java.patch | 6 +- .../block/BlockPistonBase.java.patch | 12 +- .../block/BlockPistonMoving.java.patch | 6 +- .../minecraft/block/BlockPumpkin.java.patch | 2 +- .../minecraft/block/BlockRailBase.java.patch | 42 +- .../block/BlockRedstoneComparator.java.patch | 4 +- .../block/BlockRedstoneOre.java.patch | 2 +- .../block/BlockRedstoneWire.java.patch | 28 +- .../net/minecraft/block/BlockReed.java.patch | 6 +- .../net/minecraft/block/BlockSkull.java.patch | 17 +- .../net/minecraft/block/BlockSnow.java.patch | 16 +- .../minecraft/block/BlockStairs.java.patch | 2 +- .../net/minecraft/block/BlockStem.java.patch | 6 +- .../minecraft/block/BlockTallGrass.java.patch | 14 +- .../net/minecraft/block/BlockTorch.java.patch | 8 +- .../minecraft/block/BlockTrapDoor.java.patch | 2 +- .../block/BlockTripWireHook.java.patch | 14 +- .../net/minecraft/block/BlockVine.java.patch | 8 +- .../block/state/BlockStateBase.java.patch | 2 +- .../state/BlockStateContainer.java.patch | 10 +- .../block/state/IBlockProperties.java.patch | 4 +- .../net/minecraft/client/Minecraft.java.patch | 72 +-- .../entity/AbstractClientPlayer.java.patch | 2 +- .../client/entity/EntityPlayerSP.java.patch | 8 +- .../minecraft/client/gui/GuiChat.java.patch | 10 - .../minecraft/client/gui/GuiIngame.java.patch | 6 +- .../client/gui/GuiOverlayDebug.java.patch | 2 +- .../gui/ServerListEntryNormal.java.patch | 2 +- .../achievement/GuiAchievements.java.patch | 4 +- .../inventory/GuiContainerCreative.java.patch | 32 +- .../ChunkProviderClient.java.patch | 6 +- .../multiplayer/GuiConnecting.java.patch | 4 +- .../multiplayer/PlayerControllerMP.java.patch | 22 +- .../client/multiplayer/WorldClient.java.patch | 4 +- .../network/NetHandlerPlayClient.java.patch | 14 +- ....java.patch => ParticleManager.java.patch} | 14 +- .../renderer/BlockModelRenderer.java.patch | 4 +- .../client/renderer/EntityRenderer.java.patch | 32 +- .../renderer/ItemModelMesher.java.patch | 2 +- .../client/renderer/ItemRenderer.java.patch | 12 +- .../client/renderer/RenderGlobal.java.patch | 24 +- .../client/renderer/RenderItem.java.patch | 16 +- .../block/model/FaceBakery.java.patch | 20 +- .../block/model/IBakedModel.java.patch | 2 +- .../block/model/ItemOverrideList.java.patch | 8 +- .../block/model/ModelBakery.java.patch | 26 +- .../model/ModelBlockDefinition.java.patch | 2 +- .../block/statemap/StateMap.java.patch | 2 +- .../renderer/chunk/RenderChunk.java.patch | 44 +- .../renderer/color/BlockColors.java.patch | 8 +- .../renderer/entity/RenderManager.java.patch | 4 +- .../entity/layers/LayerArmorBase.java.patch | 6 +- .../renderer/texture/TextureMap.java.patch | 30 +- .../TileEntityRendererDispatcher.java.patch | 6 +- .../resources/AbstractResourcePack.java.patch | 2 +- ...SimpleReloadableResourceManager.java.patch | 6 +- .../client/settings/GameSettings.java.patch | 12 +- .../command/CommandEnchant.java.patch | 2 +- .../minecraft/command/CommandFill.java.patch | 6 +- .../command/CommandHandler.java.patch | 4 +- .../command/EntitySelector.java.patch | 4 +- .../command/server/CommandSetBlock.java.patch | 4 +- .../server/CommandTestForBlock.java.patch | 2 +- .../minecraft/crash/CrashReport.java.patch | 2 +- .../crash/CrashReportCategory.java.patch | 2 +- .../enchantment/Enchantment.java.patch | 6 +- .../enchantment/EnchantmentHelper.java.patch | 8 +- .../net/minecraft/entity/Entity.java.patch | 33 +- .../minecraft/entity/EntityHanging.java.patch | 2 +- .../minecraft/entity/EntityList.java.patch | 10 +- .../minecraft/entity/EntityLiving.java.patch | 8 +- .../entity/EntityLivingBase.java.patch | 48 +- .../entity/boss/EntityDragon.java.patch | 2 +- .../entity/boss/EntityWither.java.patch | 2 +- .../entity/item/EntityFallingBlock.java.patch | 2 +- .../entity/item/EntityItem.java.patch | 18 +- .../entity/item/EntityItemFrame.java.patch | 2 +- .../entity/item/EntityMinecart.java.patch | 33 +- .../EntityMinecartCommandBlock.java.patch | 4 +- .../item/EntityMinecartContainer.java.patch | 2 +- .../item/EntityMinecartEmpty.java.patch | 4 +- .../item/EntityMinecartFurnace.java.patch | 4 +- .../item/EntityMinecartHopper.java.patch | 4 +- .../entity/monster/EntityEnderman.java.patch | 4 +- .../entity/monster/EntityMagmaCube.java.patch | 2 +- .../entity/monster/EntitySlime.java.patch | 6 +- .../entity/monster/EntityZombie.java.patch | 8 +- .../entity/passive/EntityHorse.java.patch | 8 +- .../entity/passive/EntityMooshroom.java.patch | 12 +- .../entity/passive/EntityOcelot.java.patch | 2 +- .../entity/passive/EntitySheep.java.patch | 13 +- .../entity/passive/EntityVillager.java.patch | 26 +- .../entity/player/EntityPlayer.java.patch | 82 +-- .../entity/player/EntityPlayerMP.java.patch | 16 +- .../entity/player/InventoryPlayer.java.patch | 6 +- .../net/minecraft/init/Bootstrap.java.patch | 2 +- .../minecraft/inventory/Container.java.patch | 2 +- .../inventory/ContainerBeacon.java.patch | 4 +- .../ContainerBrewingStand.java.patch | 6 +- .../inventory/ContainerEnchantment.java.patch | 10 +- .../inventory/ContainerPlayer.java.patch | 4 +- .../inventory/ContainerRepair.java.patch | 10 +- .../net/minecraft/inventory/Slot.java.patch | 4 +- .../inventory/SlotCrafting.java.patch | 2 +- .../inventory/SlotFurnaceOutput.java.patch | 2 +- .../net/minecraft/item/Item.java.patch | 16 +- .../net/minecraft/item/ItemArmor.java.patch | 8 +- .../net/minecraft/item/ItemBlock.java.patch | 2 +- .../net/minecraft/item/ItemBow.java.patch | 6 +- .../net/minecraft/item/ItemBucket.java.patch | 2 +- .../minecraft/item/ItemBucketMilk.java.patch | 2 +- .../net/minecraft/item/ItemDye.java.patch | 32 +- .../net/minecraft/item/ItemMap.java.patch | 4 +- .../item/ItemMonsterPlacer.java.patch | 23 +- .../net/minecraft/item/ItemRecord.java.patch | 6 +- .../net/minecraft/item/ItemStack.java.patch | 34 +- .../item/crafting/FurnaceRecipes.java.patch | 4 +- .../item/crafting/RecipeFireworks.java.patch | 6 +- .../item/crafting/RecipeRepairItem.java.patch | 8 +- .../item/crafting/RecipesArmorDyes.java.patch | 2 +- .../item/crafting/RecipesBanners.java.patch | 12 +- .../crafting/RecipesMapCloning.java.patch | 2 +- .../item/crafting/ShapedRecipes.java.patch | 2 +- .../item/crafting/ShapelessRecipes.java.patch | 2 +- .../minecraft/nbt/NBTTagCompound.java.patch | 4 +- .../network/NetworkManager.java.patch | 10 +- .../net/minecraft/potion/Potion.java.patch | 6 +- .../minecraft/potion/PotionType.java.patch | 2 +- .../minecraft/realms/RealmsConnect.java.patch | 4 +- .../server/MinecraftServer.java.patch | 42 +- .../dedicated/DedicatedServer.java.patch | 16 +- .../integrated/IntegratedServer.java.patch | 4 +- .../management/PlayerChunkMapEntry.java.patch | 117 ++++ .../PlayerInteractionManager.java.patch | 32 +- .../server/management/PlayerList.java.patch | 36 +- .../management/PlayerManager.java.patch | 121 ---- .../net/minecraft/stats/StatList.java.patch | 12 +- .../tileentity/TileEntity.java.patch | 32 +- .../tileentity/TileEntityBeacon.java.patch | 4 +- .../TileEntityBrewingStand.java.patch | 10 +- .../tileentity/TileEntityChest.java.patch | 11 +- .../tileentity/TileEntityFurnace.java.patch | 30 +- .../tileentity/TileEntityHopper.java.patch | 8 +- .../tileentity/TileEntityLockable.java.patch | 2 +- .../tileentity/TileEntityNote.java.patch | 2 +- .../tileentity/TileEntitySign.java.patch | 2 +- .../net/minecraft/util/EnumFacing.java.patch | 22 +- .../util/IntIdentityHashBiMap.java.patch | 2 +- .../net/minecraft/util/Session.java.patch | 4 +- .../minecraft/util/TabCompleter.java.patch | 6 +- .../minecraft/util/math/BlockPos.java.patch | 11 - .../net/minecraft/util/math/Vec3d.java.patch | 5 +- ...egistryNamespacedDefaultedByKey.java.patch | 2 +- .../net/minecraft/util/text/Style.java.patch | 2 +- .../util/text/TextComponentBase.java.patch | 2 +- .../minecraft/world/BossInfoServer.java.patch | 2 +- .../net/minecraft/world/ChunkCache.java.patch | 10 +- .../minecraft/world/IBlockAccess.java.patch | 2 +- ...tch => ServerWorldEventHandler.java.patch} | 10 +- .../net/minecraft/world/World.java.patch | 382 ++++-------- .../world/WorldEntitySpawner.java.patch | 16 +- .../minecraft/world/WorldProvider.java.patch | 14 +- .../minecraft/world/WorldSavedData.java.patch | 6 +- .../minecraft/world/WorldServer.java.patch | 122 ++-- .../net/minecraft/world/WorldType.java.patch | 2 +- ...omeGenBase.java.patch => Biome.java.patch} | 34 +- .../world/biome/BiomeDecorator.java.patch | 2 +- ...rest.java.patch => BiomeForest.java.patch} | 10 +- ...Hills.java.patch => BiomeHills.java.patch} | 4 +- ...ngle.java.patch => BiomeJungle.java.patch} | 4 +- ...ains.java.patch => BiomePlains.java.patch} | 4 +- .../world/biome/BiomeProvider.java.patch | 14 +- ...Swamp.java.patch => BiomeSwamp.java.patch} | 4 +- .../minecraft/world/chunk/Chunk.java.patch | 51 +- .../chunk/storage/AnvilChunkLoader.java.patch | 33 +- .../chunk/storage/AnvilSaveHandler.java.patch | 2 +- .../world/gen/ChunkProviderEnd.java.patch | 14 +- .../world/gen/ChunkProviderHell.java.patch | 16 +- .../gen/ChunkProviderOverworld.java.patch | 28 +- .../world/gen/ChunkProviderServer.java.patch | 105 ++-- .../world/gen/MapGenCaves.java.patch | 6 +- .../world/gen/MapGenRavine.java.patch | 6 +- .../gen/feature/WorldGenHellLava.java.patch | 2 +- .../gen/feature/WorldGenLiquids.java.patch | 16 +- .../world/gen/layer/GenLayer.java.patch | 6 +- .../world/gen/layer/GenLayerBiome.java.patch | 26 +- .../gen/structure/MapGenStronghold.java.patch | 10 +- .../structure/StructureComponent.java.patch | 2 +- .../StructureVillagePieces.java.patch | 8 +- .../world/storage/MapData.java.patch | 20 +- .../world/storage/SaveFormatOld.java.patch | 2 +- .../world/storage/SaveHandler.java.patch | 8 +- .../world/storage/WorldInfo.java.patch | 4 +- .../storage/loot/LootTableManager.java.patch | 4 +- .../LootConditionManager.java.patch | 7 +- .../client/ForgeHooksClient.java | 4 +- .../client/MinecraftForgeClient.java | 14 +- .../client/model/ModelLoader.java | 4 +- .../common/BiomeDictionary.java | 56 +- .../minecraftforge/common/BiomeManager.java | 28 +- .../common/DimensionManager.java | 4 +- .../common/ForgeChunkManager.java | 48 +- .../net/minecraftforge/common/ForgeHooks.java | 6 +- .../common/chunkio/ChunkIOProvider.java | 5 +- .../common/util/BlockSnapshot.java | 4 +- .../common/util/ChunkCoordComparator.java | 6 +- .../common/util/EnumHelper.java | 8 +- .../event/ForgeEventFactory.java | 8 +- .../entity/player/PlayerSleepInBedEvent.java | 8 +- .../event/terraingen/BiomeEvent.java | 20 +- .../terraingen/DeferredBiomeDecorator.java | 6 +- .../event/world/ChunkWatchEvent.java | 18 +- .../event/world/WorldEvent.java | 2 +- .../minecraftforge/fluids/BlockFluidBase.java | 2 +- .../fluids/TileFluidHandler.java | 5 +- .../fml/client/FMLClientHandler.java | 4 +- .../fml/common/FMLCommonHandler.java | 2 +- .../fml/common/ICrashCallable.java | 6 +- .../fml/common/registry/EntityRegistry.java | 16 +- .../fml/common/registry/ForgeRegistries.java | 4 +- .../fml/common/registry/GameData.java | 12 +- .../fml/server/FMLServerHandler.java | 4 +- src/main/resources/forge.exc | 33 +- src/main/resources/forge_at.cfg | 46 +- .../minecraftforge/debug/DynBucketTest.java | 9 +- .../test/NoBedSleepingTest.java | 6 +- 257 files changed, 2398 insertions(+), 1919 deletions(-) create mode 100644 jsons/1.9.4-dev.json create mode 100644 jsons/1.9.4-rel.json create mode 100644 jsons/1.9.4.json delete mode 100644 patches/minecraft/net/minecraft/client/gui/GuiChat.java.patch rename patches/minecraft/net/minecraft/client/particle/{EffectRenderer.java.patch => ParticleManager.java.patch} (65%) create mode 100644 patches/minecraft/net/minecraft/server/management/PlayerChunkMapEntry.java.patch delete mode 100644 patches/minecraft/net/minecraft/server/management/PlayerManager.java.patch delete mode 100644 patches/minecraft/net/minecraft/util/math/BlockPos.java.patch rename patches/minecraft/net/minecraft/world/{WorldManager.java.patch => ServerWorldEventHandler.java.patch} (80%) rename patches/minecraft/net/minecraft/world/biome/{BiomeGenBase.java.patch => Biome.java.patch} (83%) rename patches/minecraft/net/minecraft/world/biome/{BiomeGenForest.java.patch => BiomeForest.java.patch} (68%) rename patches/minecraft/net/minecraft/world/biome/{BiomeGenHills.java.patch => BiomeHills.java.patch} (95%) rename patches/minecraft/net/minecraft/world/biome/{BiomeGenJungle.java.patch => BiomeJungle.java.patch} (82%) rename patches/minecraft/net/minecraft/world/biome/{BiomeGenPlains.java.patch => BiomePlains.java.patch} (89%) rename patches/minecraft/net/minecraft/world/biome/{BiomeGenSwamp.java.patch => BiomeSwamp.java.patch} (66%) diff --git a/.gitignore b/.gitignore index ee7a997dd5..429a832e08 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,7 @@ #Patch rejects /patches-/ +*.patch.rej # FML changelog changelog.txt diff --git a/build.gradle b/build.gradle index 285a7ea677..cb1a1ed106 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ buildscript { } } dependencies { - classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT' + classpath 'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT' } } @@ -26,11 +26,11 @@ apply plugin: "net.minecraftforge.gradle.patcher" apply plugin: "net.minecraftforge.gradle.launch4j" minecraft { - version = "1.9" + version = "1.9.4" mappings = 'snapshot_nodoc_20160312' //mappings = "snapshot_nodoc_20151122" workspaceDir = "projects" - versionJson = "jsons/1.9-dev.json" + versionJson = "jsons/1.9.4-dev.json" buildUserdev = true buildInstaller = true installerVersion = "1.4" @@ -52,6 +52,7 @@ minecraft { genPatchesFrom "clean" genMcpPatches = false applyMcpPatches = false + s2sKeepImports = true with common } } @@ -66,7 +67,7 @@ extractForgeResources { exclude "**/log4j2.xml" } genGradleProjects { addTestCompileDep "junit:junit:4.12" } processJson { - releaseJson = "jsons/1.9-rel.json" + releaseJson = "jsons/1.9.4-rel.json" addReplacements([ "@minecraft_version@": project.minecraft.version, "@version@": project.version, @@ -380,7 +381,7 @@ task fixParams << { logger.lifecycle('Fixing param names!') def params = new File(extractMcpMappings.destinationDir, 'params.csv') def text = params.text - text = text.replaceAll('p_82499_3_,stack,', 'p_82499_3_,stackIn,') + text = text.replaceAll('p_180276_1_,biome,', 'p_180276_1_,biomeIn,') params.write(text) } fixParams.dependsOn('extractMcpMappings') diff --git a/jsons/1.9.4-dev.json b/jsons/1.9.4-dev.json new file mode 100644 index 0000000000..861b75dc01 --- /dev/null +++ b/jsons/1.9.4-dev.json @@ -0,0 +1,92 @@ +{ + "id": "@minecraft_version@-@project@@version@", + "time": "@timestamp@", + "releaseTime": "1960-01-01T00:00:00-0700", + "type": "release", + "inheritsFrom": "1.9.4", + "minecraftArguments": "--version FML_DEV --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker", + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.12" + }, + { + "name": "jline:jline:2.13", + "children": ["sources"], + "url" : "http://repo.maven.apache.org/maven2" + }, + { + "name": "com.google.code.findbugs:jsr305:1.3.9", + "children": ["sources"], + "url" : "http://repo.maven.apache.org/maven2" + }, + { + "name": "org.ow2.asm:asm-debug-all:5.0.3", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" + }, + { + "name": "com.typesafe.akka:akka-actor_2.11:2.3.3", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" + }, + { + "name": "com.typesafe:config:1.2.1", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" + }, + { + "name": "org.scala-lang:scala-actors-migration_2.11:1.1.0", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" + }, + { + "name": "org.scala-lang:scala-compiler:2.11.1", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" + }, + { + "name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" + }, + { + "name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" + }, + { + "name": "org.scala-lang:scala-library:2.11.1", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" + }, + { + "name": "org.scala-lang.modules:scala-parser-combinators_2.11:1.0.1", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" + }, + { + "name": "org.scala-lang:scala-reflect:2.11.1", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" + }, + { + "name": "org.scala-lang.modules:scala-swing_2.11:1.0.1", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" + }, + { + "name": "org.scala-lang.modules:scala-xml_2.11:1.0.2", + "children" : ["sources"], + "url" : "http://repo.maven.apache.org/maven2" + }, + { + "name": "lzma:lzma:0.0.1" + }, + { + "name": "java3d:vecmath:1.5.2" + }, + { + "name": "net.sf.trove4j:trove4j:3.0.3" + } + ] +} diff --git a/jsons/1.9.4-rel.json b/jsons/1.9.4-rel.json new file mode 100644 index 0000000000..22daa58ed6 --- /dev/null +++ b/jsons/1.9.4-rel.json @@ -0,0 +1,138 @@ +{ +"install": { + "profileName": "@project@", + "target":"@minecraft_version@-@project@@version@", + "path":"@artifact@", + "version":"@project@ @version@", + "filePath":"@universal_jar@", + "welcome":"Welcome to the simple @project@ installer.", + "minecraft":"@minecraft_version@", + "mirrorList" : "http://files.minecraftforge.net/mirror-brand.list", + "logo":"/big_logo.png" +}, +"versionInfo": { + "id": "@minecraft_version@-@project@@version@", + "time": "@timestamp@", + "releaseTime": "1960-01-01T00:00:00-0700", + "type": "release", + "minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker --versionType Forge", + "mainClass": "net.minecraft.launchwrapper.Launch", + "inheritsFrom": "1.9.4", + "libraries": [ + { + "name": "@artifact@", + "url": "http://files.minecraftforge.net/maven/" + }, + { + "name": "net.minecraft:launchwrapper:1.12", + "serverreq":true + }, + { + "name": "org.ow2.asm:asm-all:5.0.3", + "serverreq":true + }, + { + "name": "jline:jline:2.13", + "url" : "http://files.minecraftforge.net/maven/", + "checksums" : [ "2d9530d0a25daffaffda7c35037b046b627bb171" ], + "serverreq":true, + "clientreq":false + }, + { + "name": "com.typesafe.akka:akka-actor_2.11:2.3.3", + "url" : "http://files.minecraftforge.net/maven/", + "checksums" : [ "ed62e9fc709ca0f2ff1a3220daa8b70a2870078e", "25a86ccfdb6f6dfe08971f4825d0a01be83a6f2e" ], + "serverreq":true, + "clientreq":true + }, + { + "name": "com.typesafe:config:1.2.1", + "url" : "http://files.minecraftforge.net/maven/", + "checksums" : [ "f771f71fdae3df231bcd54d5ca2d57f0bf93f467", "7d7bc36df0989d72f2d5d057309675777acc528b" ], + "serverreq":true, + "clientreq":true + }, + { + "name": "org.scala-lang:scala-actors-migration_2.11:1.1.0", + "url" : "http://files.minecraftforge.net/maven/", + "checksums" : [ "dfa8bc42b181d5b9f1a5dd147f8ae308b893eb6f", "8c9aaeeb68487ca519411a14068e1b4d69739207" ], + "serverreq":true, + "clientreq":true + }, + { + "name": "org.scala-lang:scala-compiler:2.11.1", + "url" : "http://files.minecraftforge.net/maven/", + "checksums" : [ "56ea2e6c025e0821f28d73ca271218b8dd04926a", "1444992390544ba3780867a13ff696a89d7d1639" ], + "serverreq":true, + "clientreq":true + }, + { + "name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2", + "url" : "http://files.minecraftforge.net/maven/", + "checksums" : [ "87213338cd5a153a7712cb574c0ddd2edfee0386", "0b4c1bf8d48993f138d6e10c0c144e50acfff581" ], + "serverreq":true, + "clientreq":true + }, + { + "name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2", + "url" : "http://files.minecraftforge.net/maven/", + "checksums" : [ "1f7371605d4ba42aa26d3443440c0083c587b4e9", "1ea655dda4504ae0a367327e2340cd3beaee6c73" ], + "serverreq":true, + "clientreq":true + }, + { + "name": "org.scala-lang:scala-library:2.11.1", + "url" : "http://files.minecraftforge.net/maven/", + "checksums" : [ "0e11da23da3eabab9f4777b9220e60d44c1aab6a", "1e4df76e835201c6eabd43adca89ab11f225f134" ], + "serverreq":true, + "clientreq":true + }, + { + "name": "org.scala-lang:scala-parser-combinators_2.11:1.0.1", + "url" : "http://files.minecraftforge.net/maven/", + "checksums" : [ "f05d7345bf5a58924f2837c6c1f4d73a938e1ff0", "a1cbbcbde1dcc614f4253ed1aa0b320bc78d8f1d" ], + "serverreq":true, + "clientreq":true + }, + { + "name": "org.scala-lang:scala-reflect:2.11.1", + "url" : "http://files.minecraftforge.net/maven/", + "checksums" : [ "6580347e61cc7f8e802941e7fde40fa83b8badeb", "91ce0f0be20f4a536321724b4b3bbc6530ddcd88" ], + "serverreq":true, + "clientreq":true + }, + { + "name": "org.scala-lang:scala-swing_2.11:1.0.1", + "url" : "http://files.minecraftforge.net/maven/", + "checksums" : [ "b1cdd92bd47b1e1837139c1c53020e86bb9112ae", "d77152691dcf5bbdb00529af37aa7d3d887b3e63" ], + "serverreq":true, + "clientreq":true + }, + { + "name": "org.scala-lang:scala-xml_2.11:1.0.2", + "url" : "http://files.minecraftforge.net/maven/", + "checksums" : [ "7a80ec00aec122fba7cd4e0d4cdd87ff7e4cb6d0", "62736b01689d56b6d09a0164b7ef9da2b0b9633d" ], + "serverreq":true, + "clientreq":true + }, + { + "name": "lzma:lzma:0.0.1", + "serverreq":true + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.6", + "serverreq":true + }, + { + "name": "java3d:vecmath:1.5.2", + "clientreq":true, + "serverreq":true + }, + { + "name": "net.sf.trove4j:trove4j:3.0.3", + "clientreq":true, + "serverreq":true + } + ] +} +} diff --git a/jsons/1.9.4.json b/jsons/1.9.4.json new file mode 100644 index 0000000000..ebdf2a248c --- /dev/null +++ b/jsons/1.9.4.json @@ -0,0 +1,551 @@ +{ + "assetIndex": { + "id": "1.9", + "sha1": "8549e8aca91ee8b8d1620e9e8252d477f16a56d5", + "size": 137552, + "url": "https://launchermeta.mojang.com/mc-staging/assets/1.9/8549e8aca91ee8b8d1620e9e8252d477f16a56d5/1.9.json", + "totalSize": 120896362 + }, + "assets": "1.9", + "downloads": { + "client": { + "sha1": "4a61c873be90bb1196d68dac7b29870408c56969", + "size": 8736083, + "url": "https://launcher.mojang.com/mc/game/1.9.4/client/4a61c873be90bb1196d68dac7b29870408c56969/client.jar" + }, + "server": { + "sha1": "edbb7b1758af33d365bf835eb9d13de005b1e274", + "size": 9399053, + "url": "https://launcher.mojang.com/mc/game/1.9.4/server/edbb7b1758af33d365bf835eb9d13de005b1e274/server.jar" + } + }, + "id": "1.9.4", + "libraries": [ + { + "name": "com.mojang:netty:1.6", + "downloads": { + "artifact": { + "size": 7877, + "sha1": "4b75825a06139752bd800d9e29c5fd55b8b1b1e4", + "path": "com/mojang/netty/1.6/netty-1.6.jar", + "url": "https://libraries.minecraft.net/com/mojang/netty/1.6/netty-1.6.jar" + } + } + }, + { + "name": "oshi-project:oshi-core:1.1", + "downloads": { + "artifact": { + "size": 30973, + "sha1": "9ddf7b048a8d701be231c0f4f95fd986198fd2d8", + "path": "oshi-project/oshi-core/1.1/oshi-core-1.1.jar", + "url": "https://libraries.minecraft.net/oshi-project/oshi-core/1.1/oshi-core-1.1.jar" + } + } + }, + { + "name": "net.java.dev.jna:jna:3.4.0", + "downloads": { + "artifact": { + "size": 1008730, + "sha1": "803ff252fedbd395baffd43b37341dc4a150a554", + "path": "net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar", + "url": "https://libraries.minecraft.net/net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar" + } + } + }, + { + "name": "net.java.dev.jna:platform:3.4.0", + "downloads": { + "artifact": { + "size": 913436, + "sha1": "e3f70017be8100d3d6923f50b3d2ee17714e9c13", + "path": "net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar", + "url": "https://libraries.minecraft.net/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar" + } + } + }, + { + "name": "com.ibm.icu:icu4j-core-mojang:51.2", + "downloads": { + "artifact": { + "size": 1634692, + "sha1": "63d216a9311cca6be337c1e458e587f99d382b84", + "path": "com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar", + "url": "https://libraries.minecraft.net/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar" + } + } + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.6", + "downloads": { + "artifact": { + "size": 62477, + "sha1": "306816fb57cf94f108a43c95731b08934dcae15c", + "path": "net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar", + "url": "https://libraries.minecraft.net/net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar" + } + } + }, + { + "name": "com.paulscode:codecjorbis:20101023", + "downloads": { + "artifact": { + "size": 103871, + "sha1": "c73b5636faf089d9f00e8732a829577de25237ee", + "path": "com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar", + "url": "https://libraries.minecraft.net/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar" + } + } + }, + { + "name": "com.paulscode:codecwav:20101023", + "downloads": { + "artifact": { + "size": 5618, + "sha1": "12f031cfe88fef5c1dd36c563c0a3a69bd7261da", + "path": "com/paulscode/codecwav/20101023/codecwav-20101023.jar", + "url": "https://libraries.minecraft.net/com/paulscode/codecwav/20101023/codecwav-20101023.jar" + } + } + }, + { + "name": "com.paulscode:libraryjavasound:20101123", + "downloads": { + "artifact": { + "size": 21679, + "sha1": "5c5e304366f75f9eaa2e8cca546a1fb6109348b3", + "path": "com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar", + "url": "https://libraries.minecraft.net/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar" + } + } + }, + { + "name": "com.paulscode:librarylwjglopenal:20100824", + "downloads": { + "artifact": { + "size": 18981, + "sha1": "73e80d0794c39665aec3f62eee88ca91676674ef", + "path": "com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar", + "url": "https://libraries.minecraft.net/com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar" + } + } + }, + { + "name": "com.paulscode:soundsystem:20120107", + "downloads": { + "artifact": { + "size": 65020, + "sha1": "419c05fe9be71f792b2d76cfc9b67f1ed0fec7f6", + "path": "com/paulscode/soundsystem/20120107/soundsystem-20120107.jar", + "url": "https://libraries.minecraft.net/com/paulscode/soundsystem/20120107/soundsystem-20120107.jar" + } + } + }, + { + "name": "io.netty:netty-all:4.0.23.Final", + "downloads": { + "artifact": { + "size": 1779991, + "sha1": "0294104aaf1781d6a56a07d561e792c5d0c95f45", + "path": "io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar", + "url": "https://libraries.minecraft.net/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar" + } + } + }, + { + "name": "com.google.guava:guava:17.0", + "downloads": { + "artifact": { + "size": 2243036, + "sha1": "9c6ef172e8de35fd8d4d8783e4821e57cdef7445", + "path": "com/google/guava/guava/17.0/guava-17.0.jar", + "url": "https://libraries.minecraft.net/com/google/guava/guava/17.0/guava-17.0.jar" + } + } + }, + { + "name": "org.apache.commons:commons-lang3:3.3.2", + "downloads": { + "artifact": { + "size": 412739, + "sha1": "90a3822c38ec8c996e84c16a3477ef632cbc87a3", + "path": "org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar", + "url": "https://libraries.minecraft.net/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar" + } + } + }, + { + "name": "commons-io:commons-io:2.4", + "downloads": { + "artifact": { + "size": 185140, + "sha1": "b1b6ea3b7e4aa4f492509a4952029cd8e48019ad", + "path": "commons-io/commons-io/2.4/commons-io-2.4.jar", + "url": "https://libraries.minecraft.net/commons-io/commons-io/2.4/commons-io-2.4.jar" + } + } + }, + { + "name": "commons-codec:commons-codec:1.9", + "downloads": { + "artifact": { + "size": 263965, + "sha1": "9ce04e34240f674bc72680f8b843b1457383161a", + "path": "commons-codec/commons-codec/1.9/commons-codec-1.9.jar", + "url": "https://libraries.minecraft.net/commons-codec/commons-codec/1.9/commons-codec-1.9.jar" + } + } + }, + { + "name": "net.java.jinput:jinput:2.0.5", + "downloads": { + "artifact": { + "size": 208338, + "sha1": "39c7796b469a600f72380316f6b1f11db6c2c7c4", + "path": "net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar", + "url": "https://libraries.minecraft.net/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar" + } + } + }, + { + "name": "net.java.jutils:jutils:1.0.0", + "downloads": { + "artifact": { + "size": 7508, + "sha1": "e12fe1fda814bd348c1579329c86943d2cd3c6a6", + "path": "net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar", + "url": "https://libraries.minecraft.net/net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar" + } + } + }, + { + "name": "com.google.code.gson:gson:2.2.4", + "downloads": { + "artifact": { + "size": 190432, + "sha1": "a60a5e993c98c864010053cb901b7eab25306568", + "path": "com/google/code/gson/gson/2.2.4/gson-2.2.4.jar", + "url": "https://libraries.minecraft.net/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar" + } + } + }, + { + "name": "com.mojang:authlib:1.5.22", + "downloads": { + "artifact": { + "size": 64539, + "sha1": "afaa8f6df976fcb5520e76ef1d5798c9e6b5c0b2", + "path": "com/mojang/authlib/1.5.22/authlib-1.5.22.jar", + "url": "https://libraries.minecraft.net/com/mojang/authlib/1.5.22/authlib-1.5.22.jar" + } + } + }, + { + "name": "com.mojang:realms:1.8.19", + "downloads": { + "artifact": { + "size": 1575795, + "sha1": "f7469a9307b962d1097e44713eb1baa087c06e43", + "path": "com/mojang/realms/1.8.19/realms-1.8.19.jar", + "url": "https://libraries.minecraft.net/com/mojang/realms/1.8.19/realms-1.8.19.jar" + } + } + }, + { + "name": "org.apache.commons:commons-compress:1.8.1", + "downloads": { + "artifact": { + "size": 365552, + "sha1": "a698750c16740fd5b3871425f4cb3bbaa87f529d", + "path": "org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar", + "url": "https://libraries.minecraft.net/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar" + } + } + }, + { + "name": "org.apache.httpcomponents:httpclient:4.3.3", + "downloads": { + "artifact": { + "size": 589512, + "sha1": "18f4247ff4572a074444572cee34647c43e7c9c7", + "path": "org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar", + "url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar" + } + } + }, + { + "name": "commons-logging:commons-logging:1.1.3", + "downloads": { + "artifact": { + "size": 62050, + "sha1": "f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f", + "path": "commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar", + "url": "https://libraries.minecraft.net/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar" + } + } + }, + { + "name": "org.apache.httpcomponents:httpcore:4.3.2", + "downloads": { + "artifact": { + "size": 282269, + "sha1": "31fbbff1ddbf98f3aa7377c94d33b0447c646b6e", + "path": "org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar", + "url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar" + } + } + }, + { + "name": "it.unimi.dsi:fastutil:7.0.12_mojang", + "downloads": { + "artifact": { + "size": 522306, + "sha1": "ba787e741efdc425fc5d2ea654b57c15fba27efa", + "path": "it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.jar", + "url": "https://libraries.minecraft.net/it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.jar" + } + } + }, + { + "name": "org.apache.logging.log4j:log4j-api:2.0-beta9", + "downloads": { + "artifact": { + "size": 108161, + "sha1": "1dd66e68cccd907880229f9e2de1314bd13ff785", + "path": "org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar", + "url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar" + } + } + }, + { + "name": "org.apache.logging.log4j:log4j-core:2.0-beta9", + "downloads": { + "artifact": { + "size": 681134, + "sha1": "678861ba1b2e1fccb594bb0ca03114bb05da9695", + "path": "org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar", + "url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar" + } + } + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.4-nightly-20150209", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "downloads": { + "artifact": { + "size": 1047168, + "sha1": "697517568c68e78ae0b4544145af031c81082dfe", + "path": "org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar" + } + } + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.4-nightly-20150209", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "downloads": { + "artifact": { + "size": 173887, + "sha1": "d51a7c040a721d13efdfbd34f8b257b2df882ad0", + "path": "org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar" + } + } + }, + { + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.4-nightly-20150209", + "natives": { + "linux": "natives-linux", + "osx": "natives-osx", + "windows": "natives-windows" + }, + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "downloads": { + "classifiers": { + "natives-linux": { + "size": 578680, + "sha1": "931074f46c795d2f7b30ed6395df5715cfd7675b", + "path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar" + }, + "natives-osx": { + "size": 426822, + "sha1": "bcab850f8f487c3f4c4dbabde778bb82bd1a40ed", + "path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar" + }, + "natives-windows": { + "size": 613748, + "sha1": "b84d5102b9dbfabfeb5e43c7e2828d98a7fc80e0", + "path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar" + } + }, + "artifact": { + "size": 22, + "sha1": "b04f3ee8f5e43fa3b162981b50bb72fe1acabb33", + "path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar" + } + } + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.2-nightly-20140822", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "downloads": { + "artifact": { + "size": 1045632, + "sha1": "7707204c9ffa5d91662de95f0a224e2f721b22af", + "path": "org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar" + } + } + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.2-nightly-20140822", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "downloads": { + "artifact": { + "size": 173887, + "sha1": "f0e612c840a7639c1f77f68d72a28dae2f0c8490", + "path": "org/lwjgl/lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar" + } + } + }, + { + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.2-nightly-20140822", + "natives": { + "linux": "natives-linux", + "osx": "natives-osx", + "windows": "natives-windows" + }, + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "downloads": { + "classifiers": { + "natives-linux": { + "size": 578539, + "sha1": "d898a33b5d0a6ef3fed3a4ead506566dce6720a5", + "path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-linux.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-linux.jar" + }, + "natives-osx": { + "size": 468116, + "sha1": "79f5ce2fea02e77fe47a3c745219167a542121d7", + "path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-osx.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-osx.jar" + }, + "natives-windows": { + "size": 613680, + "sha1": "78b2a55ce4dc29c6b3ec4df8ca165eba05f9b341", + "path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-windows.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-windows.jar" + } + } + } + }, + { + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "osx": "natives-osx", + "windows": "natives-windows" + }, + "downloads": { + "classifiers": { + "natives-linux": { + "size": 10362, + "sha1": "7ff832a6eb9ab6a767f1ade2b548092d0fa64795", + "path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar", + "url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar" + }, + "natives-osx": { + "size": 12186, + "sha1": "53f9c919f34d2ca9de8c51fc4e1e8282029a9232", + "path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar", + "url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar" + }, + "natives-windows": { + "size": 155179, + "sha1": "385ee093e01f587f30ee1c8a2ee7d408fd732e16", + "path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar", + "url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar" + } + } + } + } + ], + "mainClass": "net.minecraft.client.main.Main", + "minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --versionType ${version_type}", + "minimumLauncherVersion": 18, + "releaseTime": "2016-05-10T10:17:16+00:00", + "time": "2016-05-10T14:45:26+00:00", + "type": "release" +} diff --git a/patches/minecraft/net/minecraft/block/Block.java.patch b/patches/minecraft/net/minecraft/block/Block.java.patch index 8e26daf20b..051c24dabe 100644 --- a/patches/minecraft/net/minecraft/block/Block.java.patch +++ b/patches/minecraft/net/minecraft/block/Block.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/Block.java +++ ../src-work/minecraft/net/minecraft/block/Block.java -@@ -43,11 +43,12 @@ +@@ -44,11 +44,12 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -16,7 +16,7 @@ public static final AxisAlignedBB field_185505_j = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); public static final AxisAlignedBB field_185506_k = null; private CreativeTabs field_149772_a; -@@ -83,7 +84,8 @@ +@@ -84,7 +85,8 @@ public static Block func_149729_e(int p_149729_0_) { @@ -26,7 +26,7 @@ } public static IBlockState func_176220_d(int p_176220_0_) -@@ -268,7 +270,7 @@ +@@ -286,7 +288,7 @@ public boolean func_176200_f(IBlockAccess p_176200_1_, BlockPos p_176200_2_) { @@ -35,7 +35,7 @@ } public Block func_149711_c(float p_149711_1_) -@@ -305,9 +307,10 @@ +@@ -324,9 +326,10 @@ return this.field_149789_z; } @@ -46,8 +46,8 @@ + return hasTileEntity(func_176223_P()); } - public AxisAlignedBB func_185496_a(IBlockState p_185496_1_, IBlockAccess p_185496_2_, BlockPos p_185496_3_) -@@ -346,13 +349,13 @@ + @Deprecated +@@ -370,13 +373,13 @@ @SideOnly(Side.CLIENT) public int func_185484_c(IBlockState p_185484_1_, IBlockAccess p_185484_2_, BlockPos p_185484_3_) { @@ -63,7 +63,7 @@ } else { -@@ -415,7 +418,7 @@ +@@ -440,7 +443,7 @@ } } @@ -71,8 +71,8 @@ + return !p_176225_2_.func_180495_p(p_176225_3_.func_177972_a(p_176225_4_)).doesSideBlockRendering(p_176225_2_, p_176225_3_.func_177972_a(p_176225_4_), p_176225_4_.func_176734_d()); } - @SideOnly(Side.CLIENT) -@@ -472,6 +475,10 @@ + @Deprecated +@@ -500,6 +503,10 @@ public void func_180663_b(World p_180663_1_, BlockPos p_180663_2_, IBlockState p_180663_3_) { @@ -83,8 +83,8 @@ } public int func_149745_a(Random p_149745_1_) -@@ -486,8 +493,7 @@ - +@@ -516,8 +523,7 @@ + @Deprecated public float func_180647_a(IBlockState p_180647_1_, EntityPlayer p_180647_2_, World p_180647_3_, BlockPos p_180647_4_) { - float f = p_180647_1_.func_185887_b(p_180647_3_, p_180647_4_); @@ -93,7 +93,7 @@ } public final void func_176226_b(World p_176226_1_, BlockPos p_176226_2_, IBlockState p_176226_3_, int p_176226_4_) -@@ -497,20 +503,16 @@ +@@ -527,20 +533,16 @@ public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_) { @@ -119,7 +119,7 @@ } } } -@@ -518,8 +520,13 @@ +@@ -548,8 +550,13 @@ public static void func_180635_a(World p_180635_0_, BlockPos p_180635_1_, ItemStack p_180635_2_) { @@ -134,7 +134,7 @@ float f = 0.5F; double d0 = (double)(p_180635_0_.field_73012_v.nextFloat() * f) + (double)(1.0F - f) * 0.5D; double d1 = (double)(p_180635_0_.field_73012_v.nextFloat() * f) + (double)(1.0F - f) * 0.5D; -@@ -588,7 +595,7 @@ +@@ -621,7 +628,7 @@ public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_) { @@ -142,8 +142,8 @@ + return p_176196_1_.func_180495_p(p_176196_2_).func_177230_c().func_176200_f(p_176196_1_, p_176196_2_); } - public boolean func_180639_a(World p_180639_1_, BlockPos p_180639_2_, IBlockState p_180639_3_, EntityPlayer p_180639_4_, EnumHand p_180639_5_, ItemStack p_180639_6_, EnumFacing p_180639_7_, float p_180639_8_, float p_180639_9_, float p_180639_10_) -@@ -638,25 +645,35 @@ + public boolean func_180639_a(World p_180639_1_, BlockPos p_180639_2_, IBlockState p_180639_3_, EntityPlayer p_180639_4_, EnumHand p_180639_5_, @Nullable ItemStack p_180639_6_, EnumFacing p_180639_7_, float p_180639_8_, float p_180639_9_, float p_180639_10_) +@@ -674,25 +681,35 @@ p_180657_2_.func_71029_a(StatList.func_188055_a(this)); p_180657_2_.func_71020_j(0.025F); @@ -181,11 +181,11 @@ + return this.func_176223_P().func_185917_h() && !this.hasTileEntity(silk_check_state.get()); } - protected ItemStack func_180643_i(IBlockState p_180643_1_) -@@ -747,9 +764,11 @@ - p_176216_2_.field_70181_x = 0.0D; + @Nullable +@@ -788,9 +805,11 @@ } + @Nullable + @Deprecated // Forge: Use more sensitive version below: getPickBlock public ItemStack func_185473_a(World p_185473_1_, BlockPos p_185473_2_, IBlockState p_185473_3_) { @@ -195,7 +195,7 @@ } @SideOnly(Side.CLIENT) -@@ -844,6 +863,1141 @@ +@@ -887,6 +906,1141 @@ return "Block{" + field_149771_c.func_177774_c(this) + "}"; } @@ -842,11 +842,11 @@ + * @param state The current state + * @param world The current world + * @param target The target the player is looking at {x/y/z/side/sub} -+ * @param effectRenderer A reference to the current effect renderer. ++ * @param manager A reference to the current particle manager. + * @return True to prevent vanilla digging particles form spawning. + */ + @SideOnly(Side.CLIENT) -+ public boolean addHitEffects(IBlockState state, World worldObj, RayTraceResult target, net.minecraft.client.particle.EffectRenderer effectRenderer) ++ public boolean addHitEffects(IBlockState state, World worldObj, RayTraceResult target, net.minecraft.client.particle.ParticleManager manager) + { + return false; + } @@ -859,11 +859,11 @@ + * + * @param world The current world + * @param pos Position to spawn the particle -+ * @param effectRenderer A reference to the current effect renderer. ++ * @param manager A reference to the current particle manager. + * @return True to prevent vanilla break particles from spawning. + */ + @SideOnly(Side.CLIENT) -+ public boolean addDestroyEffects(World world, BlockPos pos, net.minecraft.client.particle.EffectRenderer effectRenderer) ++ public boolean addDestroyEffects(World world, BlockPos pos, net.minecraft.client.particle.ParticleManager manager) + { + return false; + } diff --git a/patches/minecraft/net/minecraft/block/BlockBanner.java.patch b/patches/minecraft/net/minecraft/block/BlockBanner.java.patch index f2e82e73ed..aa5eb1502a 100644 --- a/patches/minecraft/net/minecraft/block/BlockBanner.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockBanner.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockBanner.java +++ ../src-work/minecraft/net/minecraft/block/BlockBanner.java -@@ -104,14 +104,7 @@ +@@ -107,14 +107,7 @@ public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_) { @@ -15,7 +15,7 @@ super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_); } } -@@ -138,6 +131,28 @@ +@@ -141,6 +134,28 @@ } } diff --git a/patches/minecraft/net/minecraft/block/BlockBush.java.patch b/patches/minecraft/net/minecraft/block/BlockBush.java.patch index 1bd0b0e43e..03f7cde2e0 100644 --- a/patches/minecraft/net/minecraft/block/BlockBush.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockBush.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockBush.java +++ ../src-work/minecraft/net/minecraft/block/BlockBush.java -@@ -14,7 +14,7 @@ +@@ -15,7 +15,7 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -9,7 +9,7 @@ { protected static final AxisAlignedBB field_185515_b = new AxisAlignedBB(0.30000001192092896D, 0.0D, 0.30000001192092896D, 0.699999988079071D, 0.6000000238418579D, 0.699999988079071D); -@@ -37,7 +37,8 @@ +@@ -38,7 +38,8 @@ public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_) { @@ -19,7 +19,7 @@ } protected boolean func_185514_i(IBlockState p_185514_1_) -@@ -67,6 +68,11 @@ +@@ -68,6 +69,11 @@ public boolean func_180671_f(World p_180671_1_, BlockPos p_180671_2_, IBlockState p_180671_3_) { @@ -31,7 +31,7 @@ return this.func_185514_i(p_180671_1_.func_180495_p(p_180671_2_.func_177977_b())); } -@@ -90,6 +96,35 @@ +@@ -92,6 +98,35 @@ return false; } diff --git a/patches/minecraft/net/minecraft/block/BlockButton.java.patch b/patches/minecraft/net/minecraft/block/BlockButton.java.patch index 984b01117d..d79d251a10 100644 --- a/patches/minecraft/net/minecraft/block/BlockButton.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockButton.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockButton.java +++ ../src-work/minecraft/net/minecraft/block/BlockButton.java -@@ -89,7 +89,7 @@ +@@ -91,7 +91,7 @@ protected static boolean func_181088_a(World p_181088_0_, BlockPos p_181088_1_, EnumFacing p_181088_2_) { BlockPos blockpos = p_181088_1_.func_177972_a(p_181088_2_); diff --git a/patches/minecraft/net/minecraft/block/BlockChest.java.patch b/patches/minecraft/net/minecraft/block/BlockChest.java.patch index 4141d144f0..bb875f7ab5 100644 --- a/patches/minecraft/net/minecraft/block/BlockChest.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockChest.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockChest.java +++ ../src-work/minecraft/net/minecraft/block/BlockChest.java -@@ -506,7 +506,7 @@ +@@ -514,7 +514,7 @@ private boolean func_176456_n(World p_176456_1_, BlockPos p_176456_2_) { diff --git a/patches/minecraft/net/minecraft/block/BlockCrops.java.patch b/patches/minecraft/net/minecraft/block/BlockCrops.java.patch index bd8c469962..9ecf1fe8e4 100644 --- a/patches/minecraft/net/minecraft/block/BlockCrops.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockCrops.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockCrops.java +++ ../src-work/minecraft/net/minecraft/block/BlockCrops.java -@@ -116,11 +116,11 @@ +@@ -117,11 +117,11 @@ float f1 = 0.0F; IBlockState iblockstate = p_180672_1_.func_180495_p(blockpos.func_177982_a(i, 0, j)); @@ -14,7 +14,7 @@ { f1 = 3.0F; } -@@ -161,7 +161,8 @@ +@@ -162,7 +162,8 @@ public boolean func_180671_f(World p_180671_1_, BlockPos p_180671_2_, IBlockState p_180671_3_) { @@ -24,7 +24,7 @@ } protected Item func_149866_i() -@@ -174,11 +175,33 @@ +@@ -175,11 +176,33 @@ return Items.field_151015_O; } diff --git a/patches/minecraft/net/minecraft/block/BlockDeadBush.java.patch b/patches/minecraft/net/minecraft/block/BlockDeadBush.java.patch index 5ef70af15e..8264ec5290 100644 --- a/patches/minecraft/net/minecraft/block/BlockDeadBush.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockDeadBush.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockDeadBush.java +++ ../src-work/minecraft/net/minecraft/block/BlockDeadBush.java -@@ -16,7 +16,7 @@ +@@ -17,7 +17,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -9,16 +9,16 @@ { protected static final AxisAlignedBB field_185516_a = new AxisAlignedBB(0.09999999403953552D, 0.0D, 0.09999999403953552D, 0.8999999761581421D, 0.800000011920929D, 0.8999999761581421D); -@@ -57,7 +57,7 @@ +@@ -59,7 +59,7 @@ - public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, TileEntity p_180657_5_, ItemStack p_180657_6_) + public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_) { - if (!p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) + if (false && !p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) // Forge: Noop { p_180657_2_.func_71029_a(StatList.func_188055_a(this)); func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Blocks.field_150330_I, 1, 0)); -@@ -67,4 +67,11 @@ +@@ -69,4 +69,11 @@ super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_, p_180657_6_); } } diff --git a/patches/minecraft/net/minecraft/block/BlockDoor.java.patch b/patches/minecraft/net/minecraft/block/BlockDoor.java.patch index 51d575be8a..a97b2f3b91 100644 --- a/patches/minecraft/net/minecraft/block/BlockDoor.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockDoor.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockDoor.java +++ ../src-work/minecraft/net/minecraft/block/BlockDoor.java -@@ -107,7 +107,7 @@ +@@ -108,7 +108,7 @@ { if (this.field_149764_J == Material.field_151573_f) { @@ -9,7 +9,7 @@ } else { -@@ -219,7 +219,7 @@ +@@ -221,7 +221,7 @@ public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_) { diff --git a/patches/minecraft/net/minecraft/block/BlockDoublePlant.java.patch b/patches/minecraft/net/minecraft/block/BlockDoublePlant.java.patch index 1a92f21a62..d9174d4672 100644 --- a/patches/minecraft/net/minecraft/block/BlockDoublePlant.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockDoublePlant.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockDoublePlant.java +++ ../src-work/minecraft/net/minecraft/block/BlockDoublePlant.java -@@ -25,7 +25,7 @@ +@@ -26,7 +26,7 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -9,7 +9,7 @@ { public static final PropertyEnum field_176493_a = PropertyEnum.func_177709_a("variant", BlockDoublePlant.EnumPlantType.class); public static final PropertyEnum field_176492_b = PropertyEnum.func_177709_a("half", BlockDoublePlant.EnumBlockHalf.class); -@@ -88,6 +88,8 @@ +@@ -89,6 +89,8 @@ Block block = (Block)(flag ? this : p_176475_1_.func_180495_p(blockpos).func_177230_c()); Block block1 = (Block)(flag ? p_176475_1_.func_180495_p(blockpos1).func_177230_c() : this); @@ -18,7 +18,7 @@ if (block == this) { p_176475_1_.func_180501_a(blockpos, Blocks.field_150350_a.func_176223_P(), 2); -@@ -96,17 +98,13 @@ +@@ -97,17 +99,13 @@ if (block1 == this) { p_176475_1_.func_180501_a(blockpos1, Blocks.field_150350_a.func_176223_P(), 3); @@ -37,15 +37,15 @@ if (p_180671_3_.func_177229_b(field_176492_b) == BlockDoublePlant.EnumBlockHalf.UPPER) { return p_180671_1_.func_180495_p(p_180671_2_.func_177977_b()).func_177230_c() == this; -@@ -149,7 +147,6 @@ +@@ -151,7 +149,6 @@ - public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, TileEntity p_180657_5_, ItemStack p_180657_6_) + public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_) { - if (p_180657_1_.field_72995_K || p_180657_6_ == null || p_180657_6_.func_77973_b() != Items.field_151097_aZ || p_180657_4_.func_177229_b(field_176492_b) != BlockDoublePlant.EnumBlockHalf.LOWER || !this.func_176489_b(p_180657_1_, p_180657_3_, p_180657_4_, p_180657_2_)) { super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_, p_180657_6_); } -@@ -212,8 +209,6 @@ +@@ -214,8 +211,6 @@ else { p_176489_4_.func_71029_a(StatList.func_188055_a(this)); @@ -54,7 +54,7 @@ return true; } } -@@ -284,6 +279,33 @@ +@@ -286,6 +281,33 @@ return Block.EnumOffsetType.XZ; } diff --git a/patches/minecraft/net/minecraft/block/BlockDragonEgg.java.patch b/patches/minecraft/net/minecraft/block/BlockDragonEgg.java.patch index 2eb9dd2a20..3dd148bd4a 100644 --- a/patches/minecraft/net/minecraft/block/BlockDragonEgg.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockDragonEgg.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockDragonEgg.java +++ ../src-work/minecraft/net/minecraft/block/BlockDragonEgg.java -@@ -48,7 +48,7 @@ +@@ -49,7 +49,7 @@ private void func_180683_d(World p_180683_1_, BlockPos p_180683_2_) { @@ -9,7 +9,7 @@ { int i = 32; -@@ -61,7 +61,7 @@ +@@ -62,7 +62,7 @@ p_180683_1_.func_175698_g(p_180683_2_); BlockPos blockpos; diff --git a/patches/minecraft/net/minecraft/block/BlockDropper.java.patch b/patches/minecraft/net/minecraft/block/BlockDropper.java.patch index e6c1bce0b1..5145575b8f 100644 --- a/patches/minecraft/net/minecraft/block/BlockDropper.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockDropper.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockDropper.java +++ ../src-work/minecraft/net/minecraft/block/BlockDropper.java -@@ -43,7 +43,7 @@ +@@ -44,7 +44,7 @@ { ItemStack itemstack = tileentitydispenser.func_70301_a(i); diff --git a/patches/minecraft/net/minecraft/block/BlockFarmland.java.patch b/patches/minecraft/net/minecraft/block/BlockFarmland.java.patch index 6332eeec8b..902edd0161 100644 --- a/patches/minecraft/net/minecraft/block/BlockFarmland.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockFarmland.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockFarmland.java +++ ../src-work/minecraft/net/minecraft/block/BlockFarmland.java -@@ -87,7 +87,7 @@ +@@ -89,7 +89,7 @@ private boolean func_176529_d(World p_176529_1_, BlockPos p_176529_2_) { Block block = p_176529_1_.func_180495_p(p_176529_2_.func_177984_a()).func_177230_c(); diff --git a/patches/minecraft/net/minecraft/block/BlockFire.java.patch b/patches/minecraft/net/minecraft/block/BlockFire.java.patch index 62f2ba905f..ad30232b3f 100644 --- a/patches/minecraft/net/minecraft/block/BlockFire.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockFire.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockFire.java +++ ../src-work/minecraft/net/minecraft/block/BlockFire.java -@@ -37,7 +37,15 @@ +@@ -38,7 +38,15 @@ public IBlockState func_176221_a(IBlockState p_176221_1_, IBlockAccess p_176221_2_, BlockPos p_176221_3_) { @@ -17,7 +17,7 @@ } protected BlockFire() -@@ -90,6 +98,7 @@ +@@ -91,6 +99,7 @@ public void func_180686_a(Block p_180686_1_, int p_180686_2_, int p_180686_3_) { @@ -25,7 +25,7 @@ this.field_149849_a.put(p_180686_1_, Integer.valueOf(p_180686_2_)); this.field_149848_b.put(p_180686_1_, Integer.valueOf(p_180686_3_)); } -@@ -129,13 +138,8 @@ +@@ -131,13 +140,8 @@ } Block block = p_180650_1_.func_180495_p(p_180650_2_.func_177977_b()).func_177230_c(); @@ -40,7 +40,7 @@ int i = ((Integer)p_180650_3_.func_177229_b(field_176543_a)).intValue(); if (!flag && p_180650_1_.func_72896_J() && this.func_176537_d(p_180650_1_, p_180650_2_) && p_180650_4_.nextFloat() < 0.2F + (float)i * 0.03F) -@@ -156,7 +160,7 @@ +@@ -158,7 +162,7 @@ { if (!this.func_176533_e(p_180650_1_, p_180650_2_)) { @@ -49,7 +49,7 @@ { p_180650_1_.func_175698_g(p_180650_2_); } -@@ -164,7 +168,7 @@ +@@ -166,7 +170,7 @@ return; } @@ -58,7 +58,7 @@ { p_180650_1_.func_175698_g(p_180650_2_); return; -@@ -179,12 +183,12 @@ +@@ -181,12 +185,12 @@ j = -50; } @@ -77,7 +77,7 @@ for (int k = -1; k <= 1; ++k) { -@@ -243,45 +247,53 @@ +@@ -245,22 +249,30 @@ return false; } @@ -102,44 +102,14 @@ + this.tryCatchFire(p_176536_1_, p_176536_2_, p_176536_3_, p_176536_4_, p_176536_5_, EnumFacing.UP); + } -- if (p_176536_4_.nextInt(p_176536_3_) < i) -+ private void tryCatchFire(World worldIn, BlockPos pos, int chance, Random random, int age, EnumFacing face) ++ private void tryCatchFire(World p_176536_1_, BlockPos p_176536_2_, int p_176536_3_, Random p_176536_4_, int p_176536_5_, EnumFacing face) + { -+ int i = worldIn.func_180495_p(pos).func_177230_c().getFlammability(worldIn, pos, face); ++ int i = p_176536_1_.func_180495_p(p_176536_2_).func_177230_c().getFlammability(p_176536_1_, p_176536_2_, face); + -+ if (random.nextInt(chance) < i) + if (p_176536_4_.nextInt(p_176536_3_) < i) { -- IBlockState iblockstate = p_176536_1_.func_180495_p(p_176536_2_); -+ IBlockState iblockstate = worldIn.func_180495_p(pos); - -- if (p_176536_4_.nextInt(p_176536_5_ + 10) < 5 && !p_176536_1_.func_175727_C(p_176536_2_)) -+ if (random.nextInt(age + 10) < 5 && !worldIn.func_175727_C(pos)) - { -- int j = p_176536_5_ + p_176536_4_.nextInt(5) / 4; -+ int j = age + random.nextInt(5) / 4; - - if (j > 15) - { - j = 15; - } - -- p_176536_1_.func_180501_a(p_176536_2_, this.func_176223_P().func_177226_a(field_176543_a, Integer.valueOf(j)), 3); -+ worldIn.func_180501_a(pos, this.func_176223_P().func_177226_a(field_176543_a, Integer.valueOf(j)), 3); - } - else - { -- p_176536_1_.func_175698_g(p_176536_2_); -+ worldIn.func_175698_g(pos); - } - - if (iblockstate.func_177230_c() == Blocks.field_150335_W) - { -- Blocks.field_150335_W.func_176206_d(p_176536_1_, p_176536_2_, iblockstate.func_177226_a(BlockTNT.field_176246_a, Boolean.valueOf(true))); -+ Blocks.field_150335_W.func_176206_d(worldIn, pos, iblockstate.func_177226_a(BlockTNT.field_176246_a, Boolean.valueOf(true))); - } - } - } -@@ -290,7 +302,7 @@ + IBlockState iblockstate = p_176536_1_.func_180495_p(p_176536_2_); +@@ -292,7 +304,7 @@ { for (EnumFacing enumfacing : EnumFacing.values()) { @@ -148,7 +118,7 @@ { return true; } -@@ -311,7 +323,7 @@ +@@ -313,7 +325,7 @@ for (EnumFacing enumfacing : EnumFacing.values()) { @@ -157,7 +127,7 @@ } return i; -@@ -323,9 +335,10 @@ +@@ -325,9 +337,10 @@ return false; } @@ -169,7 +139,7 @@ } public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_) -@@ -364,9 +377,9 @@ +@@ -366,9 +379,9 @@ p_180655_2_.func_184134_a((double)((float)p_180655_3_.func_177958_n() + 0.5F), (double)((float)p_180655_3_.func_177956_o() + 0.5F), (double)((float)p_180655_3_.func_177952_p() + 0.5F), SoundEvents.field_187643_bs, SoundCategory.BLOCKS, 1.0F + p_180655_4_.nextFloat(), p_180655_4_.nextFloat() * 0.7F + 0.3F, false); } @@ -181,7 +151,7 @@ { for (int j = 0; j < 2; ++j) { -@@ -377,7 +390,7 @@ +@@ -379,7 +392,7 @@ } } @@ -190,7 +160,7 @@ { for (int k = 0; k < 2; ++k) { -@@ -388,7 +401,7 @@ +@@ -390,7 +403,7 @@ } } @@ -199,7 +169,7 @@ { for (int l = 0; l < 2; ++l) { -@@ -399,7 +412,7 @@ +@@ -401,7 +414,7 @@ } } @@ -208,7 +178,7 @@ { for (int i1 = 0; i1 < 2; ++i1) { -@@ -410,7 +423,7 @@ +@@ -412,7 +425,7 @@ } } @@ -217,7 +187,7 @@ { for (int j1 = 0; j1 < 2; ++j1) { -@@ -458,4 +471,19 @@ +@@ -460,4 +473,19 @@ { return new BlockStateContainer(this, new IProperty[] {field_176543_a, field_176545_N, field_176546_O, field_176541_P, field_176539_Q, field_176542_R}); } diff --git a/patches/minecraft/net/minecraft/block/BlockFlowerPot.java.patch b/patches/minecraft/net/minecraft/block/BlockFlowerPot.java.patch index cf36d9316f..5b2e21741f 100644 --- a/patches/minecraft/net/minecraft/block/BlockFlowerPot.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockFlowerPot.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockFlowerPot.java +++ ../src-work/minecraft/net/minecraft/block/BlockFlowerPot.java -@@ -148,13 +148,6 @@ +@@ -149,13 +149,6 @@ public void func_180663_b(World p_180663_1_, BlockPos p_180663_2_, IBlockState p_180663_3_) { @@ -14,7 +14,7 @@ super.func_180663_b(p_180663_1_, p_180663_2_, p_180663_3_); } -@@ -374,6 +367,31 @@ +@@ -377,6 +370,31 @@ return BlockRenderLayer.CUTOUT; } diff --git a/patches/minecraft/net/minecraft/block/BlockGrass.java.patch b/patches/minecraft/net/minecraft/block/BlockGrass.java.patch index d56f0539ba..d675df174e 100644 --- a/patches/minecraft/net/minecraft/block/BlockGrass.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockGrass.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockGrass.java +++ ../src-work/minecraft/net/minecraft/block/BlockGrass.java -@@ -38,7 +38,7 @@ +@@ -39,7 +39,7 @@ { if (!p_180650_1_.field_72995_K) { @@ -9,7 +9,7 @@ { p_180650_1_.func_175656_a(p_180650_2_, Blocks.field_150346_d.func_176223_P()); } -@@ -58,7 +58,7 @@ +@@ -59,7 +59,7 @@ IBlockState iblockstate = p_180650_1_.func_180495_p(blockpos.func_177984_a()); IBlockState iblockstate1 = p_180650_1_.func_180495_p(blockpos); @@ -18,7 +18,7 @@ { p_180650_1_.func_175656_a(blockpos, Blocks.field_150349_c.func_176223_P()); } -@@ -96,7 +96,7 @@ +@@ -98,7 +98,7 @@ { if (j >= i / 16) { diff --git a/patches/minecraft/net/minecraft/block/BlockHugeMushroom.java.patch b/patches/minecraft/net/minecraft/block/BlockHugeMushroom.java.patch index c4f0ba3963..1c4c235015 100644 --- a/patches/minecraft/net/minecraft/block/BlockHugeMushroom.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockHugeMushroom.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockHugeMushroom.java +++ ../src-work/minecraft/net/minecraft/block/BlockHugeMushroom.java -@@ -221,6 +221,20 @@ +@@ -223,6 +223,20 @@ return new BlockStateContainer(this, new IProperty[] {field_176380_a}); } diff --git a/patches/minecraft/net/minecraft/block/BlockIce.java.patch b/patches/minecraft/net/minecraft/block/BlockIce.java.patch index e7570c6932..9abffdf1b0 100644 --- a/patches/minecraft/net/minecraft/block/BlockIce.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockIce.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockIce.java +++ ../src-work/minecraft/net/minecraft/block/BlockIce.java -@@ -40,14 +40,19 @@ +@@ -41,14 +41,19 @@ p_180657_2_.func_71029_a(StatList.func_188055_a(this)); p_180657_2_.func_71020_j(0.025F); @@ -22,7 +22,7 @@ } else { -@@ -58,7 +63,9 @@ +@@ -59,7 +64,9 @@ } int i = EnchantmentHelper.func_77506_a(Enchantments.field_185308_t, p_180657_6_); diff --git a/patches/minecraft/net/minecraft/block/BlockLeaves.java.patch b/patches/minecraft/net/minecraft/block/BlockLeaves.java.patch index 201fd60135..be6d95bd8a 100644 --- a/patches/minecraft/net/minecraft/block/BlockLeaves.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockLeaves.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockLeaves.java +++ ../src-work/minecraft/net/minecraft/block/BlockLeaves.java -@@ -17,7 +17,7 @@ +@@ -18,7 +18,7 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -9,7 +9,7 @@ { public static final PropertyBool field_176237_a = PropertyBool.func_177716_a("decayable"); public static final PropertyBool field_176236_b = PropertyBool.func_177716_a("check_decay"); -@@ -53,9 +53,9 @@ +@@ -54,9 +54,9 @@ BlockPos blockpos = p_180663_2_.func_177982_a(j1, k1, l1); IBlockState iblockstate = p_180663_1_.func_180495_p(blockpos); @@ -21,7 +21,7 @@ } } } -@@ -96,9 +96,9 @@ +@@ -97,9 +97,9 @@ IBlockState iblockstate = p_180650_1_.func_180495_p(blockpos$mutableblockpos.func_181079_c(k + i2, l + j2, i1 + k2)); Block block = iblockstate.func_177230_c(); @@ -33,7 +33,7 @@ { this.field_150128_a[(i2 + l1) * k1 + (j2 + l1) * j1 + k2 + l1] = -2; } -@@ -205,40 +205,7 @@ +@@ -207,40 +207,7 @@ public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_) { @@ -75,7 +75,7 @@ } protected void func_176234_a(World p_176234_1_, BlockPos p_176234_2_, IBlockState p_176234_3_, int p_176234_4_) -@@ -274,6 +241,49 @@ +@@ -276,6 +243,49 @@ public abstract BlockPlanks.EnumType func_176233_b(int p_176233_1_); diff --git a/patches/minecraft/net/minecraft/block/BlockLever.java.patch b/patches/minecraft/net/minecraft/block/BlockLever.java.patch index b3e399cd01..f48e9f4abf 100644 --- a/patches/minecraft/net/minecraft/block/BlockLever.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockLever.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockLever.java +++ ../src-work/minecraft/net/minecraft/block/BlockLever.java -@@ -295,6 +295,12 @@ +@@ -297,6 +297,12 @@ return new BlockStateContainer(this, new IProperty[] {field_176360_a, field_176359_b}); } diff --git a/patches/minecraft/net/minecraft/block/BlockMobSpawner.java.patch b/patches/minecraft/net/minecraft/block/BlockMobSpawner.java.patch index 49d79f3fce..eaf055571f 100644 --- a/patches/minecraft/net/minecraft/block/BlockMobSpawner.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockMobSpawner.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockMobSpawner.java +++ ../src-work/minecraft/net/minecraft/block/BlockMobSpawner.java -@@ -39,10 +39,14 @@ +@@ -41,10 +41,14 @@ public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_) { super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_); diff --git a/patches/minecraft/net/minecraft/block/BlockMycelium.java.patch b/patches/minecraft/net/minecraft/block/BlockMycelium.java.patch index f97644492f..67477c39be 100644 --- a/patches/minecraft/net/minecraft/block/BlockMycelium.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockMycelium.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockMycelium.java +++ ../src-work/minecraft/net/minecraft/block/BlockMycelium.java -@@ -39,7 +39,7 @@ +@@ -40,7 +40,7 @@ { if (!p_180650_1_.field_72995_K) { @@ -9,7 +9,7 @@ { p_180650_1_.func_175656_a(p_180650_2_, Blocks.field_150346_d.func_176223_P().func_177226_a(BlockDirt.field_176386_a, BlockDirt.DirtType.DIRT)); } -@@ -53,7 +53,7 @@ +@@ -54,7 +54,7 @@ IBlockState iblockstate = p_180650_1_.func_180495_p(blockpos); IBlockState iblockstate1 = p_180650_1_.func_180495_p(blockpos.func_177984_a()); diff --git a/patches/minecraft/net/minecraft/block/BlockNetherWart.java.patch b/patches/minecraft/net/minecraft/block/BlockNetherWart.java.patch index 3424c6cd86..a9f312ffa0 100644 --- a/patches/minecraft/net/minecraft/block/BlockNetherWart.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockNetherWart.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockNetherWart.java +++ ../src-work/minecraft/net/minecraft/block/BlockNetherWart.java -@@ -42,7 +42,7 @@ +@@ -43,7 +43,7 @@ public boolean func_180671_f(World p_180671_1_, BlockPos p_180671_2_, IBlockState p_180671_3_) { @@ -9,7 +9,7 @@ } public void func_180650_b(World p_180650_1_, BlockPos p_180650_2_, IBlockState p_180650_3_, Random p_180650_4_) -@@ -58,9 +58,11 @@ +@@ -59,9 +59,11 @@ super.func_180650_b(p_180650_1_, p_180650_2_, p_180650_3_, p_180650_4_); } @@ -22,7 +22,7 @@ { int i = 1; -@@ -106,6 +108,26 @@ +@@ -108,6 +110,26 @@ return ((Integer)p_176201_1_.func_177229_b(field_176486_a)).intValue(); } diff --git a/patches/minecraft/net/minecraft/block/BlockNewLeaf.java.patch b/patches/minecraft/net/minecraft/block/BlockNewLeaf.java.patch index 7efe335afe..12f218dfa9 100644 --- a/patches/minecraft/net/minecraft/block/BlockNewLeaf.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockNewLeaf.java.patch @@ -1,15 +1,15 @@ --- ../src-base/minecraft/net/minecraft/block/BlockNewLeaf.java +++ ../src-work/minecraft/net/minecraft/block/BlockNewLeaf.java -@@ -98,7 +98,7 @@ +@@ -99,7 +99,7 @@ - public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, TileEntity p_180657_5_, ItemStack p_180657_6_) + public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_) { - if (!p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) + if (false && !p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) //Forge: Noop this { p_180657_2_.func_71029_a(StatList.func_188055_a(this)); func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Item.func_150898_a(this), 1, ((BlockPlanks.EnumType)p_180657_4_.func_177229_b(field_176240_P)).func_176839_a() - 4)); -@@ -108,4 +108,10 @@ +@@ -109,4 +109,10 @@ super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_, p_180657_6_); } } diff --git a/patches/minecraft/net/minecraft/block/BlockNote.java.patch b/patches/minecraft/net/minecraft/block/BlockNote.java.patch index 68bc8aa6d5..a40bace0ff 100644 --- a/patches/minecraft/net/minecraft/block/BlockNote.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockNote.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockNote.java +++ ../src-work/minecraft/net/minecraft/block/BlockNote.java -@@ -64,7 +64,9 @@ +@@ -65,7 +65,9 @@ if (tileentity instanceof TileEntityNote) { TileEntityNote tileentitynote = (TileEntityNote)tileentity; @@ -10,14 +10,14 @@ tileentitynote.func_175108_a(p_180639_1_, p_180639_2_); p_180639_4_.func_71029_a(StatList.field_188087_U); } -@@ -104,6 +106,10 @@ +@@ -105,6 +107,10 @@ - public boolean func_180648_a(World p_180648_1_, BlockPos p_180648_2_, IBlockState p_180648_3_, int p_180648_4_, int p_180648_5_) + public boolean func_189539_a(IBlockState p_189539_1_, World p_189539_2_, BlockPos p_189539_3_, int p_189539_4_, int p_189539_5_) { -+ net.minecraftforge.event.world.NoteBlockEvent.Play e = new net.minecraftforge.event.world.NoteBlockEvent.Play(p_180648_1_, p_180648_2_, p_180648_3_, p_180648_5_, p_180648_4_); ++ net.minecraftforge.event.world.NoteBlockEvent.Play e = new net.minecraftforge.event.world.NoteBlockEvent.Play(p_189539_2_, p_189539_3_, p_189539_1_, p_189539_5_, p_189539_4_); + if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(e)) return false; -+ p_180648_4_ = e.getInstrument().ordinal(); -+ p_180648_5_ = e.getVanillaNoteId(); - float f = (float)Math.pow(2.0D, (double)(p_180648_5_ - 12) / 12.0D); - p_180648_1_.func_184133_a((EntityPlayer)null, p_180648_2_, this.func_185576_e(p_180648_4_), SoundCategory.BLOCKS, 3.0F, f); - p_180648_1_.func_175688_a(EnumParticleTypes.NOTE, (double)p_180648_2_.func_177958_n() + 0.5D, (double)p_180648_2_.func_177956_o() + 1.2D, (double)p_180648_2_.func_177952_p() + 0.5D, (double)p_180648_5_ / 24.0D, 0.0D, 0.0D, new int[0]); ++ p_189539_4_ = e.getInstrument().ordinal(); ++ p_189539_5_ = e.getVanillaNoteId(); + float f = (float)Math.pow(2.0D, (double)(p_189539_5_ - 12) / 12.0D); + p_189539_2_.func_184133_a((EntityPlayer)null, p_189539_3_, this.func_185576_e(p_189539_4_), SoundCategory.BLOCKS, 3.0F, f); + p_189539_2_.func_175688_a(EnumParticleTypes.NOTE, (double)p_189539_3_.func_177958_n() + 0.5D, (double)p_189539_3_.func_177956_o() + 1.2D, (double)p_189539_3_.func_177952_p() + 0.5D, (double)p_189539_5_ / 24.0D, 0.0D, 0.0D, new int[0]); diff --git a/patches/minecraft/net/minecraft/block/BlockOldLeaf.java.patch b/patches/minecraft/net/minecraft/block/BlockOldLeaf.java.patch index a9f19415b0..70af2e65e8 100644 --- a/patches/minecraft/net/minecraft/block/BlockOldLeaf.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockOldLeaf.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockOldLeaf.java +++ ../src-work/minecraft/net/minecraft/block/BlockOldLeaf.java -@@ -103,11 +103,16 @@ +@@ -104,11 +104,16 @@ if (!p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) { p_180657_2_.func_71029_a(StatList.func_188055_a(this)); diff --git a/patches/minecraft/net/minecraft/block/BlockOre.java.patch b/patches/minecraft/net/minecraft/block/BlockOre.java.patch index 15b1046bc1..a73fdb7e10 100644 --- a/patches/minecraft/net/minecraft/block/BlockOre.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockOre.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockOre.java +++ ../src-work/minecraft/net/minecraft/block/BlockOre.java -@@ -59,34 +59,39 @@ +@@ -61,34 +61,39 @@ public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_) { super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_); diff --git a/patches/minecraft/net/minecraft/block/BlockPane.java.patch b/patches/minecraft/net/minecraft/block/BlockPane.java.patch index 0d9d74407a..cd313a6cc9 100644 --- a/patches/minecraft/net/minecraft/block/BlockPane.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockPane.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockPane.java +++ ../src-work/minecraft/net/minecraft/block/BlockPane.java -@@ -105,7 +105,10 @@ +@@ -106,7 +106,10 @@ public IBlockState func_176221_a(IBlockState p_176221_1_, IBlockAccess p_176221_2_, BlockPos p_176221_3_) { @@ -11,8 +11,8 @@ + .func_177226_a(field_176242_M, canPaneConnectTo(p_176221_2_, p_176221_3_, EnumFacing.EAST)); } - public Item func_180660_a(IBlockState p_180660_1_, Random p_180660_2_, int p_180660_3_) -@@ -182,4 +185,11 @@ + @Nullable +@@ -184,4 +187,11 @@ { return new BlockStateContainer(this, new IProperty[] {field_176241_b, field_176242_M, field_176244_O, field_176243_N}); } diff --git a/patches/minecraft/net/minecraft/block/BlockPistonBase.java.patch b/patches/minecraft/net/minecraft/block/BlockPistonBase.java.patch index d3d13188c0..063eab9f8d 100644 --- a/patches/minecraft/net/minecraft/block/BlockPistonBase.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockPistonBase.java.patch @@ -1,15 +1,15 @@ --- ../src-base/minecraft/net/minecraft/block/BlockPistonBase.java +++ ../src-work/minecraft/net/minecraft/block/BlockPistonBase.java -@@ -235,7 +235,7 @@ +@@ -236,7 +236,7 @@ } } -- if (!flag1 && iblockstate.func_185904_a() != Material.field_151579_a && func_185646_a(iblockstate, p_180648_1_, blockpos, enumfacing.func_176734_d(), false) && (iblockstate.func_185905_o() == EnumPushReaction.NORMAL || block == Blocks.field_150331_J || block == Blocks.field_150320_F)) -+ if (!flag1 && !iblockstate.func_177230_c().isAir(iblockstate, p_180648_1_, blockpos) && func_185646_a(iblockstate, p_180648_1_, blockpos, enumfacing.func_176734_d(), false) && (iblockstate.func_185905_o() == EnumPushReaction.NORMAL || block == Blocks.field_150331_J || block == Blocks.field_150320_F)) +- if (!flag1 && iblockstate.func_185904_a() != Material.field_151579_a && func_185646_a(iblockstate, p_189539_2_, blockpos, enumfacing.func_176734_d(), false) && (iblockstate.func_185905_o() == EnumPushReaction.NORMAL || block == Blocks.field_150331_J || block == Blocks.field_150320_F)) ++ if (!flag1 && !iblockstate.func_177230_c().isAir(iblockstate, p_189539_2_, p_189539_3_) && func_185646_a(iblockstate, p_189539_2_, blockpos, enumfacing.func_176734_d(), false) && (iblockstate.func_185905_o() == EnumPushReaction.NORMAL || block == Blocks.field_150331_J || block == Blocks.field_150320_F)) { - this.func_176319_a(p_180648_1_, p_180648_2_, enumfacing, false); + this.func_176319_a(p_189539_2_, p_189539_3_, enumfacing, false); } -@@ -320,7 +320,7 @@ +@@ -322,7 +322,7 @@ return false; } @@ -18,7 +18,7 @@ } else { -@@ -366,7 +366,9 @@ +@@ -368,7 +368,9 @@ { BlockPos blockpos1 = (BlockPos)list2.get(j); IBlockState iblockstate = p_176319_1_.func_180495_p(blockpos1); diff --git a/patches/minecraft/net/minecraft/block/BlockPistonMoving.java.patch b/patches/minecraft/net/minecraft/block/BlockPistonMoving.java.patch index 9cbc42a5da..cebd6c619c 100644 --- a/patches/minecraft/net/minecraft/block/BlockPistonMoving.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockPistonMoving.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockPistonMoving.java +++ ../src-work/minecraft/net/minecraft/block/BlockPistonMoving.java -@@ -110,7 +110,7 @@ +@@ -112,7 +112,7 @@ public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_) { @@ -9,7 +9,7 @@ { TileEntityPiston tileentitypiston = this.func_185589_c(p_180653_1_, p_180653_2_); -@@ -120,6 +120,7 @@ +@@ -122,6 +122,7 @@ iblockstate.func_177230_c().func_176226_b(p_180653_1_, p_180653_2_, iblockstate, 0); } } @@ -17,7 +17,7 @@ } public RayTraceResult func_180636_a(IBlockState p_180636_1_, World p_180636_2_, BlockPos p_180636_3_, Vec3d p_180636_4_, Vec3d p_180636_5_) -@@ -190,4 +191,16 @@ +@@ -195,4 +196,16 @@ { return new BlockStateContainer(this, new IProperty[] {field_176426_a, field_176425_b}); } diff --git a/patches/minecraft/net/minecraft/block/BlockPumpkin.java.patch b/patches/minecraft/net/minecraft/block/BlockPumpkin.java.patch index 1d4332d11d..6629230b8a 100644 --- a/patches/minecraft/net/minecraft/block/BlockPumpkin.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockPumpkin.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockPumpkin.java +++ ../src-work/minecraft/net/minecraft/block/BlockPumpkin.java -@@ -117,7 +117,7 @@ +@@ -118,7 +118,7 @@ public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_) { diff --git a/patches/minecraft/net/minecraft/block/BlockRailBase.java.patch b/patches/minecraft/net/minecraft/block/BlockRailBase.java.patch index 4ba016412e..52830feb3c 100644 --- a/patches/minecraft/net/minecraft/block/BlockRailBase.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockRailBase.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockRailBase.java +++ ../src-work/minecraft/net/minecraft/block/BlockRailBase.java -@@ -32,7 +32,7 @@ +@@ -33,7 +33,7 @@ public static boolean func_176563_d(IBlockState p_176563_0_) { Block block = p_176563_0_.func_177230_c(); @@ -9,7 +9,7 @@ } protected BlockRailBase(boolean p_i45389_1_) -@@ -65,7 +65,7 @@ +@@ -67,7 +67,7 @@ public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_) { @@ -18,37 +18,37 @@ } public void func_176213_c(World p_176213_1_, BlockPos p_176213_2_, IBlockState p_176213_3_) -@@ -88,24 +88,24 @@ - BlockRailBase.EnumRailDirection blockrailbase$enumraildirection = (BlockRailBase.EnumRailDirection)p_176204_3_.func_177229_b(this.func_176560_l()); +@@ -90,24 +90,24 @@ + BlockRailBase.EnumRailDirection blockrailbase$enumraildirection = (BlockRailBase.EnumRailDirection)p_189540_1_.func_177229_b(this.func_176560_l()); boolean flag = false; -- if (!p_176204_1_.func_180495_p(p_176204_2_.func_177977_b()).func_185896_q()) -+ if (!p_176204_1_.func_180495_p(p_176204_2_.func_177977_b()).isSideSolid(p_176204_1_, p_176204_2_.func_177977_b(), EnumFacing.UP)) +- if (!p_189540_2_.func_180495_p(p_189540_3_.func_177977_b()).func_185896_q()) ++ if (!p_189540_2_.func_180495_p(p_189540_3_.func_177977_b()).isSideSolid(p_189540_2_, p_189540_3_.func_177977_b(), EnumFacing.UP)) { flag = true; } -- if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_EAST && !p_176204_1_.func_180495_p(p_176204_2_.func_177974_f()).func_185896_q()) -+ if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_EAST && !p_176204_1_.func_180495_p(p_176204_2_.func_177974_f()).isSideSolid(p_176204_1_, p_176204_2_.func_177974_f(), EnumFacing.UP)) +- if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_EAST && !p_189540_2_.func_180495_p(p_189540_3_.func_177974_f()).func_185896_q()) ++ if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_EAST && !p_189540_2_.func_180495_p(p_189540_3_.func_177974_f()).isSideSolid(p_189540_2_, p_189540_3_.func_177974_f(), EnumFacing.UP)) { flag = true; } -- else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_WEST && !p_176204_1_.func_180495_p(p_176204_2_.func_177976_e()).func_185896_q()) -+ else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_WEST && !p_176204_1_.func_180495_p(p_176204_2_.func_177976_e()).isSideSolid(p_176204_1_, p_176204_2_.func_177976_e(), EnumFacing.UP)) +- else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_WEST && !p_189540_2_.func_180495_p(p_189540_3_.func_177976_e()).func_185896_q()) ++ else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_WEST && !p_189540_2_.func_180495_p(p_189540_3_.func_177976_e()).isSideSolid(p_189540_2_, p_189540_3_.func_177976_e(), EnumFacing.UP)) { flag = true; } -- else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_NORTH && !p_176204_1_.func_180495_p(p_176204_2_.func_177978_c()).func_185896_q()) -+ else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_NORTH && !p_176204_1_.func_180495_p(p_176204_2_.func_177978_c()).isSideSolid(p_176204_1_, p_176204_2_.func_177978_c(), EnumFacing.UP)) +- else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_NORTH && !p_189540_2_.func_180495_p(p_189540_3_.func_177978_c()).func_185896_q()) ++ else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_NORTH && !p_189540_2_.func_180495_p(p_189540_3_.func_177978_c()).isSideSolid(p_189540_2_, p_189540_3_.func_177978_c(), EnumFacing.UP)) { flag = true; } -- else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_SOUTH && !p_176204_1_.func_180495_p(p_176204_2_.func_177968_d()).func_185896_q()) -+ else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_SOUTH && !p_176204_1_.func_180495_p(p_176204_2_.func_177968_d()).isSideSolid(p_176204_1_, p_176204_2_.func_177968_d(), EnumFacing.UP)) +- else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_SOUTH && !p_189540_2_.func_180495_p(p_189540_3_.func_177968_d()).func_185896_q()) ++ else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_SOUTH && !p_189540_2_.func_180495_p(p_189540_3_.func_177968_d()).isSideSolid(p_189540_2_, p_189540_3_.func_177968_d(), EnumFacing.UP)) { flag = true; } -@@ -160,6 +160,98 @@ +@@ -162,6 +162,98 @@ public abstract IProperty func_176560_l(); @@ -147,7 +147,7 @@ public static enum EnumRailDirection implements IStringSerializable { NORTH_SOUTH(0, "north_south"), -@@ -230,6 +322,7 @@ +@@ -232,6 +324,7 @@ private IBlockState field_180366_e; private final boolean field_150656_f; private final List field_150657_g = Lists.newArrayList(); @@ -155,7 +155,7 @@ public Rail(World p_i45739_2_, BlockPos p_i45739_3_, IBlockState p_i45739_4_) { -@@ -237,8 +330,9 @@ +@@ -239,8 +332,9 @@ this.field_180367_c = p_i45739_3_; this.field_180366_e = p_i45739_4_; this.field_180365_d = (BlockRailBase)p_i45739_4_.func_177230_c(); @@ -167,7 +167,7 @@ this.func_180360_a(blockrailbase$enumraildirection); } -@@ -429,7 +523,7 @@ +@@ -432,7 +526,7 @@ } } @@ -176,7 +176,7 @@ { if (BlockRailBase.func_176562_d(this.field_150660_b, blockpos.func_177984_a())) { -@@ -442,7 +536,7 @@ +@@ -445,7 +539,7 @@ } } @@ -185,7 +185,7 @@ { if (BlockRailBase.func_176562_d(this.field_150660_b, blockpos3.func_177984_a())) { -@@ -585,7 +679,7 @@ +@@ -588,7 +682,7 @@ } } @@ -194,7 +194,7 @@ { if (BlockRailBase.func_176562_d(this.field_150660_b, blockpos.func_177984_a())) { -@@ -598,7 +692,7 @@ +@@ -601,7 +695,7 @@ } } diff --git a/patches/minecraft/net/minecraft/block/BlockRedstoneComparator.java.patch b/patches/minecraft/net/minecraft/block/BlockRedstoneComparator.java.patch index 84a6de664c..b1f6408624 100644 --- a/patches/minecraft/net/minecraft/block/BlockRedstoneComparator.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockRedstoneComparator.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockRedstoneComparator.java +++ ../src-work/minecraft/net/minecraft/block/BlockRedstoneComparator.java -@@ -310,6 +310,21 @@ +@@ -313,6 +313,21 @@ return this.func_176223_P().func_177226_a(field_185512_D, p_180642_8_.func_174811_aO().func_176734_d()).func_177226_a(field_176464_a, Boolean.valueOf(false)).func_177226_a(field_176463_b, BlockRedstoneComparator.Mode.COMPARE); } @@ -9,7 +9,7 @@ + { + if (pos.func_177956_o() == neighbor.func_177956_o() && world instanceof World) + { -+ func_176204_a((World)world, pos, world.func_180495_p(pos), world.func_180495_p(neighbor).func_177230_c()); ++ func_189540_a(world.func_180495_p(pos), (World)world, pos, world.func_180495_p(neighbor).func_177230_c()); + } + } + diff --git a/patches/minecraft/net/minecraft/block/BlockRedstoneOre.java.patch b/patches/minecraft/net/minecraft/block/BlockRedstoneOre.java.patch index 7762d1ea3c..d9adb18e16 100644 --- a/patches/minecraft/net/minecraft/block/BlockRedstoneOre.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockRedstoneOre.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockRedstoneOre.java +++ ../src-work/minecraft/net/minecraft/block/BlockRedstoneOre.java -@@ -92,12 +92,16 @@ +@@ -94,12 +94,16 @@ public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_) { super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_); diff --git a/patches/minecraft/net/minecraft/block/BlockRedstoneWire.java.patch b/patches/minecraft/net/minecraft/block/BlockRedstoneWire.java.patch index e824763bca..2c3aeb1dd5 100644 --- a/patches/minecraft/net/minecraft/block/BlockRedstoneWire.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockRedstoneWire.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockRedstoneWire.java +++ ../src-work/minecraft/net/minecraft/block/BlockRedstoneWire.java -@@ -97,15 +97,15 @@ +@@ -98,15 +98,15 @@ BlockPos blockpos = p_176341_2_.func_177972_a(p_176341_3_); IBlockState iblockstate = p_176341_1_.func_180495_p(p_176341_2_.func_177972_a(p_176341_3_)); @@ -19,7 +19,7 @@ { if (iblockstate.func_185898_k()) { -@@ -406,35 +406,30 @@ +@@ -409,21 +409,16 @@ IBlockState iblockstate = p_176339_1_.func_180495_p(blockpos); boolean flag = iblockstate.func_185915_l(); boolean flag1 = p_176339_1_.func_180495_p(p_176339_2_.func_177984_a()).func_185915_l(); @@ -34,32 +34,22 @@ } - protected static boolean func_176346_d(IBlockState p_176346_0_) -+ protected static boolean canConnectTo(IBlockState blockState, EnumFacing side, IBlockAccess world, BlockPos pos) ++ protected static boolean canConnectTo(IBlockState p_176343_0_, @Nullable EnumFacing p_176343_1_, IBlockAccess world, BlockPos pos ) { - return func_176343_a(p_176346_0_, (EnumFacing)null); - } -+ Block block = blockState.func_177230_c(); - -- protected static boolean func_176343_a(IBlockState p_176343_0_, EnumFacing p_176343_1_) -- { -- Block block = p_176343_0_.func_177230_c(); - +- protected static boolean func_176343_a(IBlockState p_176343_0_, @Nullable EnumFacing p_176343_1_) +- { + Block block = p_176343_0_.func_177230_c(); + if (block == Blocks.field_150488_af) - { - return true; - } -- else if (Blocks.field_150413_aR.func_185547_C(p_176343_0_)) -+ else if (Blocks.field_150413_aR.func_185547_C(blockState)) - { -- EnumFacing enumfacing = (EnumFacing)p_176343_0_.func_177229_b(BlockRedstoneRepeater.field_185512_D); -- return enumfacing == p_176343_1_ || enumfacing.func_176734_d() == p_176343_1_; -+ EnumFacing enumfacing = (EnumFacing)blockState.func_177229_b(BlockRedstoneRepeater.field_185512_D); -+ return enumfacing == side || enumfacing.func_176734_d() == side; +@@ -437,7 +432,7 @@ } else { - return p_176343_0_.func_185897_m() && p_176343_1_ != null; -+ return blockState.func_177230_c().canConnectRedstone(blockState, world, pos, side); ++ return p_176343_0_.func_177230_c().canConnectRedstone(p_176343_0_, world, pos, p_176343_1_); } } diff --git a/patches/minecraft/net/minecraft/block/BlockReed.java.patch b/patches/minecraft/net/minecraft/block/BlockReed.java.patch index 3fccec1b8f..de5c601f7e 100644 --- a/patches/minecraft/net/minecraft/block/BlockReed.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockReed.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockReed.java +++ ../src-work/minecraft/net/minecraft/block/BlockReed.java -@@ -19,7 +19,7 @@ +@@ -20,7 +20,7 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -9,7 +9,7 @@ { public static final PropertyInteger field_176355_a = PropertyInteger.func_177719_a("age", 0, 15); protected static final AxisAlignedBB field_185701_b = new AxisAlignedBB(0.125D, 0.0D, 0.125D, 0.875D, 1.0D, 0.875D); -@@ -69,7 +69,9 @@ +@@ -70,7 +70,9 @@ public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_) { @@ -20,7 +20,7 @@ if (block == this) { -@@ -162,6 +164,17 @@ +@@ -165,6 +167,17 @@ return ((Integer)p_176201_1_.func_177229_b(field_176355_a)).intValue(); } diff --git a/patches/minecraft/net/minecraft/block/BlockSkull.java.patch b/patches/minecraft/net/minecraft/block/BlockSkull.java.patch index a7327502a5..23c306757b 100644 --- a/patches/minecraft/net/minecraft/block/BlockSkull.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockSkull.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockSkull.java +++ ../src-work/minecraft/net/minecraft/block/BlockSkull.java -@@ -116,10 +116,6 @@ +@@ -117,10 +117,6 @@ return new ItemStack(Items.field_151144_bL, 1, i); } @@ -11,7 +11,7 @@ public void func_176208_a(World p_176208_1_, BlockPos p_176208_2_, IBlockState p_176208_3_, EntityPlayer p_176208_4_) { if (p_176208_4_.field_71075_bZ.field_75098_d) -@@ -127,22 +123,27 @@ +@@ -128,13 +124,18 @@ p_176208_3_ = p_176208_3_.func_177226_a(field_176417_b, Boolean.valueOf(true)); p_176208_1_.func_180501_a(p_176208_2_, p_176208_3_, 4); } @@ -25,16 +25,13 @@ - if (!p_180663_1_.field_72995_K) + super.func_180663_b(p_180663_1_, p_180663_2_, p_180663_3_); + } -+ public java.util.List getDrops(IBlockAccess worldIn, BlockPos pos, IBlockState state, int fortune) ++ public java.util.List getDrops(IBlockAccess p_180663_1_, BlockPos p_180663_2_, IBlockState p_180663_3_, int fortune) + { + java.util.List ret = new java.util.ArrayList(); { -- if (!((Boolean)p_180663_3_.func_177229_b(field_176417_b)).booleanValue()) -+ if (!((Boolean)state.func_177229_b(field_176417_b)).booleanValue()) + if (!((Boolean)p_180663_3_.func_177229_b(field_176417_b)).booleanValue()) { -- TileEntity tileentity = p_180663_1_.func_175625_s(p_180663_2_); -+ TileEntity tileentity = worldIn.func_175625_s(pos); - +@@ -143,7 +144,7 @@ if (tileentity instanceof TileEntitySkull) { TileEntitySkull tileentityskull = (TileEntitySkull)tileentity; @@ -43,7 +40,7 @@ if (tileentityskull.func_145904_a() == 3 && tileentityskull.func_152108_a() != null) { -@@ -152,12 +153,11 @@ +@@ -153,12 +154,11 @@ itemstack.func_77978_p().func_74782_a("SkullOwner", nbttagcompound); } @@ -57,4 +54,4 @@ + return ret; } - public Item func_180660_a(IBlockState p_180660_1_, Random p_180660_2_, int p_180660_3_) + @Nullable diff --git a/patches/minecraft/net/minecraft/block/BlockSnow.java.patch b/patches/minecraft/net/minecraft/block/BlockSnow.java.patch index 9561436743..d3522c76e2 100644 --- a/patches/minecraft/net/minecraft/block/BlockSnow.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockSnow.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockSnow.java +++ ../src-work/minecraft/net/minecraft/block/BlockSnow.java -@@ -73,7 +73,7 @@ +@@ -75,7 +75,7 @@ { IBlockState iblockstate = p_176196_1_.func_180495_p(p_176196_2_.func_177977_b()); Block block = iblockstate.func_177230_c(); @@ -8,8 +8,8 @@ + return block != Blocks.field_150432_aD && block != Blocks.field_150403_cj ? (iblockstate.func_177230_c().isLeaves(iblockstate, p_176196_1_, p_176196_2_.func_177977_b()) ? true : (block == this && ((Integer)iblockstate.func_177229_b(field_176315_a)).intValue() >= 7 ? true : iblockstate.func_185914_p() && iblockstate.func_185904_a().func_76230_c())) : false; } - public void func_176204_a(World p_176204_1_, BlockPos p_176204_2_, IBlockState p_176204_3_, Block p_176204_4_) -@@ -85,7 +85,6 @@ + public void func_189540_a(IBlockState p_189540_1_, World p_189540_2_, BlockPos p_189540_3_, Block p_189540_4_) +@@ -87,7 +87,6 @@ { if (!this.func_176196_c(p_176314_1_, p_176314_2_)) { @@ -17,9 +17,9 @@ p_176314_1_.func_175698_g(p_176314_2_); return false; } -@@ -97,9 +96,8 @@ +@@ -99,9 +98,8 @@ - public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, TileEntity p_180657_5_, ItemStack p_180657_6_) + public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_) { - func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Items.field_151126_ay, ((Integer)p_180657_4_.func_177229_b(field_176315_a)).intValue() + 1, 0)); + super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_, p_180657_6_); @@ -27,8 +27,8 @@ - p_180657_2_.func_71029_a(StatList.func_188055_a(this)); } - public Item func_180660_a(IBlockState p_180660_1_, Random p_180660_2_, int p_180660_3_) -@@ -109,14 +107,13 @@ + @Nullable +@@ -112,14 +110,13 @@ public int func_149745_a(Random p_149745_1_) { @@ -44,7 +44,7 @@ p_180650_1_.func_175698_g(p_180650_2_); } } -@@ -150,6 +147,8 @@ +@@ -153,6 +150,8 @@ return ((Integer)p_176201_1_.func_177229_b(field_176315_a)).intValue() - 1; } diff --git a/patches/minecraft/net/minecraft/block/BlockStairs.java.patch b/patches/minecraft/net/minecraft/block/BlockStairs.java.patch index 239394de81..8214257045 100644 --- a/patches/minecraft/net/minecraft/block/BlockStairs.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockStairs.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockStairs.java +++ ../src-work/minecraft/net/minecraft/block/BlockStairs.java -@@ -443,6 +443,17 @@ +@@ -445,6 +445,17 @@ return new BlockStateContainer(this, new IProperty[] {field_176309_a, field_176308_b, field_176310_M}); } diff --git a/patches/minecraft/net/minecraft/block/BlockStem.java.patch b/patches/minecraft/net/minecraft/block/BlockStem.java.patch index 2b37ff3d33..04185835d8 100644 --- a/patches/minecraft/net/minecraft/block/BlockStem.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockStem.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockStem.java +++ ../src-work/minecraft/net/minecraft/block/BlockStem.java -@@ -89,9 +89,10 @@ +@@ -90,9 +90,10 @@ } p_180650_2_ = p_180650_2_.func_177972_a(EnumFacing.Plane.HORIZONTAL.func_179518_a(p_180650_4_)); @@ -13,7 +13,7 @@ { p_180650_1_.func_175656_a(p_180650_2_, this.field_149877_a.func_176223_P()); } -@@ -109,24 +110,29 @@ +@@ -110,24 +111,29 @@ public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_) { super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_); @@ -46,4 +46,4 @@ + return ret; } - protected Item func_176481_j() + @Nullable diff --git a/patches/minecraft/net/minecraft/block/BlockTallGrass.java.patch b/patches/minecraft/net/minecraft/block/BlockTallGrass.java.patch index 2327fb98d7..6261b3eec5 100644 --- a/patches/minecraft/net/minecraft/block/BlockTallGrass.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockTallGrass.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockTallGrass.java +++ ../src-work/minecraft/net/minecraft/block/BlockTallGrass.java -@@ -23,7 +23,7 @@ +@@ -24,7 +24,7 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -9,7 +9,7 @@ { public static final PropertyEnum field_176497_a = PropertyEnum.func_177709_a("type", BlockTallGrass.EnumType.class); protected static final AxisAlignedBB field_185522_c = new AxisAlignedBB(0.09999999403953552D, 0.0D, 0.09999999403953552D, 0.8999999761581421D, 0.800000011920929D, 0.8999999761581421D); -@@ -41,7 +41,7 @@ +@@ -42,7 +42,7 @@ public boolean func_180671_f(World p_180671_1_, BlockPos p_180671_2_, IBlockState p_180671_3_) { @@ -18,8 +18,8 @@ } public boolean func_176200_f(IBlockAccess p_176200_1_, BlockPos p_176200_2_) -@@ -51,7 +51,7 @@ - +@@ -53,7 +53,7 @@ + @Nullable public Item func_180660_a(IBlockState p_180660_1_, Random p_180660_2_, int p_180660_3_) { - return p_180660_2_.nextInt(8) == 0 ? Items.field_151014_N : null; @@ -27,16 +27,16 @@ } public int func_149679_a(int p_149679_1_, Random p_149679_2_) -@@ -61,7 +61,7 @@ +@@ -63,7 +63,7 @@ - public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, TileEntity p_180657_5_, ItemStack p_180657_6_) + public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_) { - if (!p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) + if (false && !p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) // Forge: Noop Taken care of by IShearable { p_180657_2_.func_71029_a(StatList.func_188055_a(this)); func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Blocks.field_150329_H, 1, ((BlockTallGrass.EnumType)p_180657_4_.func_177229_b(field_176497_a)).func_177044_a())); -@@ -181,4 +181,22 @@ +@@ -183,4 +183,22 @@ } } } diff --git a/patches/minecraft/net/minecraft/block/BlockTorch.java.patch b/patches/minecraft/net/minecraft/block/BlockTorch.java.patch index 2b6f02aa29..fa4280fdb6 100644 --- a/patches/minecraft/net/minecraft/block/BlockTorch.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockTorch.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockTorch.java +++ ../src-work/minecraft/net/minecraft/block/BlockTorch.java -@@ -79,14 +79,14 @@ +@@ -81,14 +81,14 @@ private boolean func_176594_d(World p_176594_1_, BlockPos p_176594_2_) { @@ -18,7 +18,7 @@ } } -@@ -107,7 +107,7 @@ +@@ -109,7 +109,7 @@ { BlockPos blockpos = p_176595_2_.func_177972_a(p_176595_3_.func_176734_d()); boolean flag = p_176595_3_.func_176740_k().func_176722_c(); @@ -27,7 +27,7 @@ } public IBlockState func_180642_a(World p_180642_1_, BlockPos p_180642_2_, EnumFacing p_180642_3_, float p_180642_4_, float p_180642_5_, float p_180642_6_, int p_180642_7_, EntityLivingBase p_180642_8_) -@@ -120,7 +120,7 @@ +@@ -122,7 +122,7 @@ { for (EnumFacing enumfacing : EnumFacing.Plane.HORIZONTAL) { @@ -36,7 +36,7 @@ { return this.func_176223_P().func_177226_a(field_176596_a, enumfacing); } -@@ -153,7 +153,7 @@ +@@ -155,7 +155,7 @@ EnumFacing enumfacing1 = enumfacing.func_176734_d(); boolean flag = false; diff --git a/patches/minecraft/net/minecraft/block/BlockTrapDoor.java.patch b/patches/minecraft/net/minecraft/block/BlockTrapDoor.java.patch index 92f9775918..b3ef4e159d 100644 --- a/patches/minecraft/net/minecraft/block/BlockTrapDoor.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockTrapDoor.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockTrapDoor.java +++ ../src-work/minecraft/net/minecraft/block/BlockTrapDoor.java -@@ -241,6 +241,18 @@ +@@ -242,6 +242,18 @@ return new BlockStateContainer(this, new IProperty[] {field_176284_a, field_176283_b, field_176285_M}); } diff --git a/patches/minecraft/net/minecraft/block/BlockTripWireHook.java.patch b/patches/minecraft/net/minecraft/block/BlockTripWireHook.java.patch index 6850b831b4..990880a0a6 100644 --- a/patches/minecraft/net/minecraft/block/BlockTripWireHook.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockTripWireHook.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockTripWireHook.java +++ ../src-work/minecraft/net/minecraft/block/BlockTripWireHook.java -@@ -77,14 +77,14 @@ +@@ -79,14 +79,14 @@ public boolean func_176198_a(World p_176198_1_, BlockPos p_176198_2_, EnumFacing p_176198_3_) { @@ -17,12 +17,12 @@ { return true; } -@@ -118,7 +118,7 @@ +@@ -120,7 +120,7 @@ { - EnumFacing enumfacing = (EnumFacing)p_176204_3_.func_177229_b(field_176264_a); + EnumFacing enumfacing = (EnumFacing)p_189540_1_.func_177229_b(field_176264_a); -- if (!p_176204_1_.func_180495_p(p_176204_2_.func_177972_a(enumfacing.func_176734_d())).func_185915_l()) -+ if (!p_176204_1_.func_180495_p(p_176204_2_.func_177972_a(enumfacing.func_176734_d())).isSideSolid(p_176204_1_, p_176204_2_.func_177972_a(enumfacing.func_176734_d()), enumfacing)) +- if (!p_189540_2_.func_180495_p(p_189540_3_.func_177972_a(enumfacing.func_176734_d())).func_185915_l()) ++ if (!p_189540_2_.func_180495_p(p_189540_3_.func_177972_a(enumfacing.func_176734_d())).isSideSolid(p_189540_2_, p_189540_3_.func_177972_a(enumfacing.func_176734_d()), enumfacing)) { - this.func_176226_b(p_176204_1_, p_176204_2_, p_176204_3_, 0); - p_176204_1_.func_175698_g(p_176204_2_); + this.func_176226_b(p_189540_2_, p_189540_3_, p_189540_1_, 0); + p_189540_2_.func_175698_g(p_189540_3_); diff --git a/patches/minecraft/net/minecraft/block/BlockVine.java.patch b/patches/minecraft/net/minecraft/block/BlockVine.java.patch index f4f42e06c9..f903027ac4 100644 --- a/patches/minecraft/net/minecraft/block/BlockVine.java.patch +++ b/patches/minecraft/net/minecraft/block/BlockVine.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/BlockVine.java +++ ../src-work/minecraft/net/minecraft/block/BlockVine.java -@@ -26,7 +26,7 @@ +@@ -27,7 +27,7 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -9,16 +9,16 @@ { public static final PropertyBool field_176277_a = PropertyBool.func_177716_a("up"); public static final PropertyBool field_176273_b = PropertyBool.func_177716_a("north"); -@@ -342,7 +342,7 @@ +@@ -345,7 +345,7 @@ - public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, TileEntity p_180657_5_, ItemStack p_180657_6_) + public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_) { - if (!p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) + if (false && !p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) // Forge: Noop, Covered by IShearable { p_180657_2_.func_71029_a(StatList.func_188055_a(this)); func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Blocks.field_150395_bd, 1, 0)); -@@ -457,4 +457,14 @@ +@@ -460,4 +460,14 @@ return i; } diff --git a/patches/minecraft/net/minecraft/block/state/BlockStateBase.java.patch b/patches/minecraft/net/minecraft/block/state/BlockStateBase.java.patch index e6d4fff7f3..646017678e 100644 --- a/patches/minecraft/net/minecraft/block/state/BlockStateBase.java.patch +++ b/patches/minecraft/net/minecraft/block/state/BlockStateBase.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/state/BlockStateBase.java +++ ../src-work/minecraft/net/minecraft/block/state/BlockStateBase.java -@@ -71,4 +71,9 @@ +@@ -73,4 +73,9 @@ return stringbuilder.toString(); } diff --git a/patches/minecraft/net/minecraft/block/state/BlockStateContainer.java.patch b/patches/minecraft/net/minecraft/block/state/BlockStateContainer.java.patch index fa321efa14..5453b968eb 100644 --- a/patches/minecraft/net/minecraft/block/state/BlockStateContainer.java.patch +++ b/patches/minecraft/net/minecraft/block/state/BlockStateContainer.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/state/BlockStateContainer.java +++ ../src-work/minecraft/net/minecraft/block/state/BlockStateContainer.java -@@ -55,12 +55,22 @@ +@@ -57,12 +57,22 @@ public BlockStateContainer(Block p_i45663_1_, IProperty... p_i45663_2_) { @@ -26,7 +26,7 @@ map.put(iproperty.func_177701_a(), iproperty); } -@@ -71,7 +81,7 @@ +@@ -73,7 +83,7 @@ for (List < Comparable> list : Cartesian.func_179321_a(this.func_177620_e())) { Map < IProperty, Comparable> map1 = MapPopulator. < IProperty, Comparable> func_179400_b(this.field_177624_d.values(), list); @@ -35,7 +35,7 @@ map2.put(map1, blockstatecontainer$stateimplementation); list1.add(blockstatecontainer$stateimplementation); } -@@ -163,6 +173,13 @@ +@@ -166,6 +176,13 @@ this.field_177237_b = p_i45660_2_; } @@ -49,9 +49,9 @@ public Collection < IProperty> func_177227_a() { return Collections. < IProperty> unmodifiableCollection(this.field_177237_b.keySet()); -@@ -414,5 +431,86 @@ +@@ -441,5 +458,86 @@ { - return this.field_177239_a.func_185481_k(this); + this.field_177239_a.func_189540_a(this, p_189546_1_, p_189546_2_, p_189546_3_); } + + //Forge Start diff --git a/patches/minecraft/net/minecraft/block/state/IBlockProperties.java.patch b/patches/minecraft/net/minecraft/block/state/IBlockProperties.java.patch index e90318ea8f..584b15fc6a 100644 --- a/patches/minecraft/net/minecraft/block/state/IBlockProperties.java.patch +++ b/patches/minecraft/net/minecraft/block/state/IBlockProperties.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/block/state/IBlockProperties.java +++ ../src-work/minecraft/net/minecraft/block/state/IBlockProperties.java -@@ -25,9 +25,13 @@ +@@ -26,9 +26,13 @@ boolean func_185913_b(); @@ -14,7 +14,7 @@ @SideOnly(Side.CLIENT) boolean func_185895_e(); -@@ -88,5 +92,10 @@ +@@ -90,5 +94,10 @@ RayTraceResult func_185910_a(World p_185910_1_, BlockPos p_185910_2_, Vec3d p_185910_3_, Vec3d p_185910_4_); diff --git a/patches/minecraft/net/minecraft/client/Minecraft.java.patch b/patches/minecraft/net/minecraft/client/Minecraft.java.patch index 3d7c29f989..06127c3122 100644 --- a/patches/minecraft/net/minecraft/client/Minecraft.java.patch +++ b/patches/minecraft/net/minecraft/client/Minecraft.java.patch @@ -1,14 +1,14 @@ --- ../src-base/minecraft/net/minecraft/client/Minecraft.java +++ ../src-work/minecraft/net/minecraft/client/Minecraft.java -@@ -318,7 +318,6 @@ +@@ -321,7 +321,6 @@ this.field_152355_az = (new YggdrasilAuthenticationService(this.field_110453_aa, UUID.randomUUID().toString())).createMinecraftSessionService(); this.field_71449_j = p_i45547_1_.field_178745_a.field_178752_a; field_147123_G.info("Setting user: " + this.field_71449_j.func_111285_a()); -- field_147123_G.info("(Session ID is " + this.field_71449_j.func_111286_b() + ")"); +- field_147123_G.debug("(Session ID is " + this.field_71449_j.func_111286_b() + ")"); this.field_71459_aj = p_i45547_1_.field_178741_d.field_178756_a; this.field_71443_c = p_i45547_1_.field_178743_b.field_178764_a > 0 ? p_i45547_1_.field_178743_b.field_178764_a : 1; this.field_71440_d = p_i45547_1_.field_178743_b.field_178762_b > 0 ? p_i45547_1_.field_178743_b.field_178762_b : 1; -@@ -432,10 +431,10 @@ +@@ -435,10 +434,10 @@ this.field_110451_am = new SimpleReloadableResourceManager(this.field_110452_an); this.field_135017_as = new LanguageManager(this.field_110452_an, this.field_71474_y.field_74363_ab); this.field_110451_am.func_110542_a(this.field_135017_as); @@ -21,7 +21,7 @@ this.field_152350_aA = new SkinManager(this.field_71446_o, new File(this.field_110446_Y, "skins"), this.field_152355_az); this.field_71469_aa = new AnvilSaveConverter(new File(this.field_71412_D, "saves"), this.field_184131_U); this.field_147127_av = new SoundHandler(this.field_110451_am, this.field_71474_y); -@@ -460,7 +459,7 @@ +@@ -463,7 +462,7 @@ { try { @@ -30,7 +30,7 @@ } catch (Exception exception) { -@@ -469,6 +468,8 @@ +@@ -472,6 +471,8 @@ } }); this.field_71417_B = new MouseHelper(); @@ -39,7 +39,7 @@ this.func_71361_d("Pre startup"); GlStateManager.func_179098_w(); GlStateManager.func_179103_j(7425); -@@ -482,19 +483,23 @@ +@@ -485,19 +486,23 @@ GlStateManager.func_179096_D(); GlStateManager.func_179128_n(5888); this.func_71361_d("Startup"); @@ -64,10 +64,10 @@ this.field_71460_t = new EntityRenderer(this, this.field_110451_am); this.field_110451_am.func_110542_a(this.field_71460_t); this.field_175618_aM = new BlockRendererDispatcher(this.field_175617_aL.func_174954_c(), this.field_184127_aH); -@@ -504,23 +509,26 @@ +@@ -507,23 +512,26 @@ this.field_71458_u = new GuiAchievement(this); GlStateManager.func_179083_b(0, 0, this.field_71443_c, this.field_71440_d); - this.field_71452_i = new EffectRenderer(this.field_71441_e, this.field_71446_o); + this.field_71452_i = new ParticleManager(this.field_71441_e, this.field_71446_o); + net.minecraftforge.fml.common.ProgressManager.pop(bar); + net.minecraftforge.fml.client.FMLClientHandler.instance().finishMinecraftLoading(); this.func_71361_d("Post startup"); @@ -94,7 +94,7 @@ if (this.field_71474_y.field_74353_u && !this.field_71431_Q) { this.func_71352_k(); -@@ -692,21 +700,23 @@ +@@ -695,21 +703,23 @@ File file2 = new File(file1, "crash-" + (new SimpleDateFormat("yyyy-MM-dd_HH.mm.ss")).format(new Date()) + "-client.txt"); Bootstrap.func_179870_a(p_71377_1_.func_71502_e()); @@ -121,9 +121,9 @@ } public boolean func_152349_b() -@@ -899,11 +909,6 @@ +@@ -902,11 +912,6 @@ - public void func_147108_a(GuiScreen p_147108_1_) + public void func_147108_a(@Nullable GuiScreen p_147108_1_) { - if (this.field_71462_r != null) - { @@ -133,7 +133,7 @@ if (p_147108_1_ == null && this.field_71441_e == null) { p_147108_1_ = new GuiMainMenu(); -@@ -913,6 +918,17 @@ +@@ -916,6 +921,17 @@ p_147108_1_ = new GuiGameOver((ITextComponent)null); } @@ -151,7 +151,7 @@ if (p_147108_1_ instanceof GuiMainMenu || p_147108_1_ instanceof GuiMultiplayer) { this.field_71474_y.field_74330_P = false; -@@ -1051,9 +1067,11 @@ +@@ -1054,9 +1070,11 @@ if (!this.field_71454_w) { @@ -163,7 +163,7 @@ } this.field_71424_I.func_76319_b(); -@@ -1393,9 +1411,9 @@ +@@ -1396,9 +1414,9 @@ { BlockPos blockpos = this.field_71476_x.func_178782_a(); @@ -175,7 +175,7 @@ this.field_71439_g.func_184609_a(EnumHand.MAIN_HAND); } } -@@ -1429,7 +1447,7 @@ +@@ -1432,7 +1450,7 @@ case BLOCK: BlockPos blockpos = this.field_71476_x.func_178782_a(); @@ -184,7 +184,7 @@ { this.field_71442_b.func_180511_b(blockpos, this.field_71476_x.field_178784_b); break; -@@ -1473,7 +1491,7 @@ +@@ -1476,7 +1494,7 @@ switch (this.field_71476_x.field_72313_a) { case ENTITY: @@ -193,7 +193,7 @@ if (this.field_71442_b.func_187102_a(this.field_71439_g, this.field_71476_x.field_72308_g, this.field_71476_x, this.field_71439_g.func_184586_b(enumhand), enumhand) == EnumActionResult.SUCCESS) { return; -@@ -1516,7 +1534,7 @@ +@@ -1519,7 +1537,7 @@ } ItemStack itemstack1 = this.field_71439_g.func_184586_b(enumhand); @@ -202,7 +202,7 @@ if (itemstack1 != null && this.field_71442_b.func_187101_a(this.field_71439_g, this.field_71441_e, itemstack1, enumhand) == EnumActionResult.SUCCESS) { this.field_71460_t.field_78516_c.func_187460_a(enumhand); -@@ -1623,6 +1641,8 @@ +@@ -1626,6 +1644,8 @@ --this.field_71467_ac; } @@ -211,7 +211,7 @@ this.field_71424_I.func_76320_a("gui"); if (!this.field_71445_n) -@@ -1734,6 +1754,7 @@ +@@ -1737,6 +1757,7 @@ this.field_71457_ai = 0; this.field_71441_e.func_72897_h(this.field_71439_g); } @@ -219,7 +219,7 @@ } this.field_71424_I.func_76318_c("gameRenderer"); -@@ -1821,6 +1842,7 @@ +@@ -1824,6 +1845,7 @@ this.field_71453_ak.func_74428_b(); } @@ -227,7 +227,7 @@ this.field_71424_I.func_76319_b(); this.field_71423_H = func_71386_F(); } -@@ -1927,6 +1949,7 @@ +@@ -1930,6 +1952,7 @@ } } } @@ -235,7 +235,7 @@ } this.func_184117_aA(); -@@ -2166,6 +2189,8 @@ +@@ -2169,6 +2192,8 @@ { while (Mouse.next()) { @@ -244,15 +244,15 @@ int i = Mouse.getEventButton(); KeyBinding.func_74510_a(i - 100, Mouse.getEventButtonState()); -@@ -2231,6 +2256,7 @@ +@@ -2234,6 +2259,7 @@ - public void func_71371_a(String p_71371_1_, String p_71371_2_, WorldSettings p_71371_3_) + public void func_71371_a(String p_71371_1_, String p_71371_2_, @Nullable WorldSettings p_71371_3_) { + net.minecraftforge.fml.client.FMLClientHandler.instance().startIntegratedServer(p_71371_1_, p_71371_2_, p_71371_3_); this.func_71403_a((WorldClient)null); System.gc(); ISaveHandler isavehandler = this.field_71469_aa.func_75804_a(p_71371_1_, false); -@@ -2273,6 +2299,12 @@ +@@ -2276,6 +2302,12 @@ while (!this.field_71437_Z.func_71200_ad()) { @@ -265,13 +265,13 @@ String s = this.field_71437_Z.func_71195_b_(); if (s != null) -@@ -2298,8 +2330,14 @@ +@@ -2301,8 +2333,14 @@ SocketAddress socketaddress = this.field_71437_Z.func_147137_ag().func_151270_a(); NetworkManager networkmanager = NetworkManager.func_150722_a(socketaddress); networkmanager.func_150719_a(new NetHandlerLoginClient(networkmanager, this, (GuiScreen)null)); -- networkmanager.func_179290_a(new C00Handshake(107, socketaddress.toString(), 0, EnumConnectionState.LOGIN)); +- networkmanager.func_179290_a(new C00Handshake(110, socketaddress.toString(), 0, EnumConnectionState.LOGIN)); - networkmanager.func_179290_a(new CPacketLoginStart(this.func_110432_I().func_148256_e())); -+ networkmanager.func_179290_a(new C00Handshake(107, socketaddress.toString(), 0, EnumConnectionState.LOGIN, true)); ++ networkmanager.func_179290_a(new C00Handshake(110, socketaddress.toString(), 0, EnumConnectionState.LOGIN, true)); + com.mojang.authlib.GameProfile gameProfile = this.func_110432_I().func_148256_e(); + if (!this.func_110432_I().hasCachedProperties()) + { @@ -282,16 +282,16 @@ this.field_71453_ak = networkmanager; } -@@ -2310,6 +2348,8 @@ +@@ -2313,6 +2351,8 @@ - public void func_71353_a(WorldClient p_71353_1_, String p_71353_2_) + public void func_71353_a(@Nullable WorldClient p_71353_1_, String p_71353_2_) { + if (field_71441_e != null) net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.WorldEvent.Unload(field_71441_e)); + if (p_71353_1_ == null) { NetHandlerPlayClient nethandlerplayclient = this.func_147114_u(); -@@ -2322,6 +2362,18 @@ +@@ -2325,6 +2365,18 @@ if (this.field_71437_Z != null && this.field_71437_Z.func_175578_N()) { this.field_71437_Z.func_71263_m(); @@ -310,7 +310,7 @@ } this.field_71437_Z = null; -@@ -2345,6 +2397,7 @@ +@@ -2348,6 +2400,7 @@ this.field_71456_v.func_181029_i(); this.func_71351_a((ServerData)null); this.field_71455_al = false; @@ -318,7 +318,7 @@ } this.field_147127_av.func_147690_c(); -@@ -2461,159 +2514,8 @@ +@@ -2464,159 +2517,8 @@ { if (this.field_71476_x != null && this.field_71476_x.field_72313_a != RayTraceResult.Type.MISS) { @@ -480,7 +480,7 @@ } } -@@ -2909,18 +2811,8 @@ +@@ -2912,18 +2814,8 @@ public static int func_71369_N() { @@ -501,7 +501,7 @@ } public boolean func_70002_Q() -@@ -3057,15 +2949,16 @@ +@@ -3060,15 +2952,16 @@ { if (Keyboard.getEventKeyState()) { @@ -520,7 +520,7 @@ } } } -@@ -3192,4 +3085,10 @@ +@@ -3195,4 +3088,10 @@ { return this.field_184127_aH; } diff --git a/patches/minecraft/net/minecraft/client/entity/AbstractClientPlayer.java.patch b/patches/minecraft/net/minecraft/client/entity/AbstractClientPlayer.java.patch index 74fca0297a..10a72e174e 100644 --- a/patches/minecraft/net/minecraft/client/entity/AbstractClientPlayer.java.patch +++ b/patches/minecraft/net/minecraft/client/entity/AbstractClientPlayer.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/entity/AbstractClientPlayer.java +++ ../src-work/minecraft/net/minecraft/client/entity/AbstractClientPlayer.java -@@ -148,6 +148,6 @@ +@@ -152,6 +152,6 @@ f *= 1.0F - f1 * 0.15F; } diff --git a/patches/minecraft/net/minecraft/client/entity/EntityPlayerSP.java.patch b/patches/minecraft/net/minecraft/client/entity/EntityPlayerSP.java.patch index 107cb5f350..c2af00bca2 100644 --- a/patches/minecraft/net/minecraft/client/entity/EntityPlayerSP.java.patch +++ b/patches/minecraft/net/minecraft/client/entity/EntityPlayerSP.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/entity/EntityPlayerSP.java +++ ../src-work/minecraft/net/minecraft/client/entity/EntityPlayerSP.java -@@ -400,6 +400,15 @@ +@@ -404,6 +404,15 @@ this.field_71159_c.field_71456_v.func_146158_b().func_146227_a(p_146105_1_); } @@ -16,7 +16,7 @@ protected boolean func_145771_j(double p_145771_1_, double p_145771_3_, double p_145771_5_) { if (this.field_70145_X) -@@ -412,30 +421,34 @@ +@@ -416,30 +425,34 @@ double d0 = p_145771_1_ - (double)blockpos.func_177958_n(); double d1 = p_145771_5_ - (double)blockpos.func_177952_p(); @@ -56,7 +56,7 @@ { d2 = 1.0D - d1; i = 5; -@@ -470,7 +483,7 @@ +@@ -474,7 +487,7 @@ private boolean func_175162_d(BlockPos p_175162_1_) { @@ -65,7 +65,7 @@ } public void func_70031_b(boolean p_70031_1_) -@@ -515,7 +528,13 @@ +@@ -519,7 +532,13 @@ public void func_184185_a(SoundEvent p_184185_1_, float p_184185_2_, float p_184185_3_) { diff --git a/patches/minecraft/net/minecraft/client/gui/GuiChat.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiChat.java.patch deleted file mode 100644 index afbde6bafd..0000000000 --- a/patches/minecraft/net/minecraft/client/gui/GuiChat.java.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- ../src-base/minecraft/net/minecraft/client/gui/GuiChat.java -+++ ../src-work/minecraft/net/minecraft/client/gui/GuiChat.java -@@ -250,6 +250,7 @@ - - public BlockPos func_186839_b() - { -+ - BlockPos blockpos = null; - - if (this.field_186853_g.field_71476_x != null && this.field_186853_g.field_71476_x.field_72313_a == RayTraceResult.Type.BLOCK) diff --git a/patches/minecraft/net/minecraft/client/gui/GuiIngame.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiIngame.java.patch index 9d96734bcd..29c9752ad3 100644 --- a/patches/minecraft/net/minecraft/client/gui/GuiIngame.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/GuiIngame.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/gui/GuiIngame.java +++ ../src-work/minecraft/net/minecraft/client/gui/GuiIngame.java -@@ -360,7 +360,8 @@ +@@ -361,7 +361,8 @@ BlockPos blockpos = raytraceresult.func_178782_a(); @@ -10,7 +10,7 @@ { return; } -@@ -418,7 +419,10 @@ +@@ -419,7 +420,10 @@ { Potion potion = potioneffect.func_188419_a(); @@ -22,7 +22,7 @@ { int k = p_184048_1_.func_78326_a(); int l = 1; -@@ -455,7 +459,10 @@ +@@ -456,7 +460,10 @@ } GlStateManager.func_179131_c(1.0F, 1.0F, 1.0F, f); diff --git a/patches/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java.patch index 689452fc8f..ea495f49ba 100644 --- a/patches/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java +++ ../src-work/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java -@@ -190,6 +190,9 @@ +@@ -193,6 +193,9 @@ long l = j - k; List list = Lists.newArrayList(new String[] {String.format("Java: %s %dbit", new Object[]{System.getProperty("java.version"), Integer.valueOf(this.field_175242_a.func_147111_S() ? 64 : 32)}), String.format("Mem: % 2d%% %03d/%03dMB", new Object[]{Long.valueOf(l * 100L / i), Long.valueOf(func_175240_a(l)), Long.valueOf(func_175240_a(i))}), String.format("Allocated: % 2d%% %03dMB", new Object[]{Long.valueOf(j * 100L / i), Long.valueOf(func_175240_a(j))}), "", String.format("CPU: %s", new Object[]{OpenGlHelper.func_183029_j()}), "", String.format("Display: %dx%d (%s)", new Object[]{Integer.valueOf(Display.getWidth()), Integer.valueOf(Display.getHeight()), GlStateManager.func_187416_u(7936)}), GlStateManager.func_187416_u(7937), GlStateManager.func_187416_u(7938)}); diff --git a/patches/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java.patch b/patches/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java.patch index e3f9b78edd..d4606c3f0d 100644 --- a/patches/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java.patch @@ -1,7 +1,7 @@ --- ../src-base/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java +++ ../src-work/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java @@ -82,7 +82,7 @@ - boolean flag1 = this.field_148301_e.field_82821_f < 107; + boolean flag1 = this.field_148301_e.field_82821_f < 110; boolean flag2 = flag || flag1; this.field_148300_d.field_71466_p.func_78276_b(this.field_148301_e.field_78847_a, p_180790_2_ + 32 + 3, p_180790_3_ + 1, 16777215); - List list = this.field_148300_d.field_71466_p.func_78271_c(this.field_148301_e.field_78843_d, p_180790_4_ - 32 - 2); diff --git a/patches/minecraft/net/minecraft/client/gui/achievement/GuiAchievements.java.patch b/patches/minecraft/net/minecraft/client/gui/achievement/GuiAchievements.java.patch index 0155153ef3..4d7d454246 100644 --- a/patches/minecraft/net/minecraft/client/gui/achievement/GuiAchievements.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/achievement/GuiAchievements.java.patch @@ -1,14 +1,14 @@ --- ../src-base/minecraft/net/minecraft/client/gui/achievement/GuiAchievements.java +++ ../src-work/minecraft/net/minecraft/client/gui/achievement/GuiAchievements.java @@ -49,6 +49,10 @@ - private StatFileWriter field_146556_E; + private StatisticsManager field_146556_E; private boolean field_146558_F = true; + private int currentPage = -1; + private GuiButton button; + private java.util.LinkedList minecraftAchievements = new java.util.LinkedList(); + - public GuiAchievements(GuiScreen p_i45026_1_, StatFileWriter p_i45026_2_) + public GuiAchievements(GuiScreen p_i45026_1_, StatisticsManager p_i45026_2_) { this.field_146562_a = p_i45026_1_; @@ -57,6 +61,14 @@ diff --git a/patches/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java.patch b/patches/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java.patch index a4786eeeb2..fa5d4bb8c1 100644 --- a/patches/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java +++ ../src-work/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java -@@ -49,6 +49,8 @@ +@@ -50,6 +50,8 @@ private Slot field_147064_C; private boolean field_147057_D; private CreativeCrafting field_147059_E; @@ -9,7 +9,7 @@ public GuiContainerCreative(EntityPlayer p_i1088_1_) { -@@ -258,6 +260,13 @@ +@@ -259,6 +261,13 @@ this.func_147050_b(CreativeTabs.field_78032_a[i]); this.field_147059_E = new CreativeCrafting(this.field_146297_k); this.field_146297_k.field_71439_g.field_71069_bz.func_75132_a(this.field_147059_E); @@ -23,7 +23,7 @@ } else { -@@ -279,7 +288,7 @@ +@@ -280,7 +289,7 @@ protected void func_73869_a(char p_73869_1_, int p_73869_2_) throws IOException { @@ -32,7 +32,7 @@ { if (GameSettings.func_100015_a(this.field_146297_k.field_71474_y.field_74310_D)) { -@@ -317,6 +326,14 @@ +@@ -318,6 +327,14 @@ GuiContainerCreative.ContainerCreative guicontainercreative$containercreative = (GuiContainerCreative.ContainerCreative)this.field_147002_h; guicontainercreative$containercreative.field_148330_a.clear(); @@ -47,7 +47,7 @@ for (Item item : Item.field_150901_e) { if (item != null && item.func_77640_w() != null) -@@ -324,7 +341,13 @@ +@@ -325,7 +342,13 @@ item.func_150895_a(item, (CreativeTabs)null, guicontainercreative$containercreative.field_148330_a); } } @@ -61,7 +61,7 @@ for (Enchantment enchantment : Enchantment.field_185264_b) { if (enchantment != null && enchantment.field_77351_y != null) -@@ -332,7 +355,6 @@ +@@ -333,7 +356,6 @@ Items.field_151134_bR.func_92113_a(enchantment, guicontainercreative$containercreative.field_148330_a); } } @@ -69,7 +69,7 @@ Iterator iterator = guicontainercreative$containercreative.field_148330_a.iterator(); String s1 = this.field_147062_A.func_146179_b().toLowerCase(); -@@ -364,7 +386,7 @@ +@@ -365,7 +387,7 @@ { CreativeTabs creativetabs = CreativeTabs.field_78032_a[field_147058_w]; @@ -78,7 +78,7 @@ { GlStateManager.func_179084_k(); this.field_146289_q.func_78276_b(I18n.func_135052_a(creativetabs.func_78024_c(), new Object[0]), 8, 6, 4210752); -@@ -399,7 +421,7 @@ +@@ -400,7 +422,7 @@ for (CreativeTabs creativetabs : CreativeTabs.field_78032_a) { @@ -87,7 +87,7 @@ { this.func_147050_b(creativetabs); return; -@@ -412,11 +434,13 @@ +@@ -413,11 +435,13 @@ private boolean func_147055_p() { @@ -101,7 +101,7 @@ int i = field_147058_w; field_147058_w = p_147050_1_.func_78021_a(); GuiContainerCreative.ContainerCreative guicontainercreative$containercreative = (GuiContainerCreative.ContainerCreative)this.field_147002_h; -@@ -487,12 +511,14 @@ +@@ -488,12 +512,14 @@ if (this.field_147062_A != null) { @@ -117,7 +117,7 @@ this.func_147053_i(); } else -@@ -562,20 +588,43 @@ +@@ -563,20 +589,43 @@ } super.func_73863_a(p_73863_1_, p_73863_2_, p_73863_3_); @@ -162,7 +162,7 @@ GlStateManager.func_179131_c(1.0F, 1.0F, 1.0F, 1.0F); GlStateManager.func_179140_f(); } -@@ -637,16 +686,35 @@ +@@ -638,16 +687,35 @@ RenderHelper.func_74520_c(); CreativeTabs creativetabs = CreativeTabs.field_78032_a[field_147058_w]; @@ -199,7 +199,7 @@ this.field_146297_k.func_110434_K().func_110577_a(new ResourceLocation("textures/gui/container/creative_inventory/tab_" + creativetabs.func_78015_f())); this.func_73729_b(this.field_147003_i, this.field_147009_r, 0, 0, this.field_146999_f, this.field_147000_g); this.field_147062_A.func_146194_f(); -@@ -661,6 +729,14 @@ +@@ -662,6 +730,14 @@ this.func_73729_b(i, j + (int)((float)(k - j - 17) * this.field_147067_x), 232 + (this.func_147055_p() ? 0 : 12), 0, 12, 15); } @@ -214,7 +214,7 @@ this.func_147051_a(creativetabs); if (creativetabs == CreativeTabs.field_78036_m) -@@ -671,6 +747,14 @@ +@@ -672,6 +748,14 @@ protected boolean func_147049_a(CreativeTabs p_147049_1_, int p_147049_2_, int p_147049_3_) { @@ -229,7 +229,7 @@ int i = p_147049_1_.func_78020_k(); int j = 28 * i; int k = 0; -@@ -767,6 +851,8 @@ +@@ -768,6 +852,8 @@ } GlStateManager.func_179140_f(); @@ -238,7 +238,7 @@ this.func_73729_b(l, i1, j, k, 28, j1); this.field_73735_i = 100.0F; this.field_146296_j.field_77023_b = 100.0F; -@@ -793,6 +879,15 @@ +@@ -794,6 +880,15 @@ { this.field_146297_k.func_147108_a(new GuiStats(this, this.field_146297_k.field_71439_g.func_146107_m())); } diff --git a/patches/minecraft/net/minecraft/client/multiplayer/ChunkProviderClient.java.patch b/patches/minecraft/net/minecraft/client/multiplayer/ChunkProviderClient.java.patch index 97d95aea61..0350d31394 100644 --- a/patches/minecraft/net/minecraft/client/multiplayer/ChunkProviderClient.java.patch +++ b/patches/minecraft/net/minecraft/client/multiplayer/ChunkProviderClient.java.patch @@ -1,9 +1,9 @@ --- ../src-base/minecraft/net/minecraft/client/multiplayer/ChunkProviderClient.java +++ ../src-work/minecraft/net/minecraft/client/multiplayer/ChunkProviderClient.java -@@ -52,6 +52,7 @@ +@@ -59,6 +59,7 @@ + { Chunk chunk = new Chunk(this.field_73235_d, p_73158_1_, p_73158_2_); - this.field_73236_b.func_76163_a(ChunkCoordIntPair.func_77272_a(p_73158_1_, p_73158_2_), chunk); - this.field_73237_c.add(chunk); + this.field_73236_b.put(ChunkPos.func_77272_a(p_73158_1_, p_73158_2_), chunk); + net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.ChunkEvent.Load(chunk)); chunk.func_177417_c(true); return chunk; diff --git a/patches/minecraft/net/minecraft/client/multiplayer/GuiConnecting.java.patch b/patches/minecraft/net/minecraft/client/multiplayer/GuiConnecting.java.patch index 0d82da59b0..3bb2a1d0f8 100644 --- a/patches/minecraft/net/minecraft/client/multiplayer/GuiConnecting.java.patch +++ b/patches/minecraft/net/minecraft/client/multiplayer/GuiConnecting.java.patch @@ -4,8 +4,8 @@ inetaddress = InetAddress.getByName(p_146367_1_); GuiConnecting.this.field_146371_g = NetworkManager.func_181124_a(inetaddress, p_146367_2_, GuiConnecting.this.field_146297_k.field_71474_y.func_181148_f()); GuiConnecting.this.field_146371_g.func_150719_a(new NetHandlerLoginClient(GuiConnecting.this.field_146371_g, GuiConnecting.this.field_146297_k, GuiConnecting.this.field_146374_i)); -- GuiConnecting.this.field_146371_g.func_179290_a(new C00Handshake(107, p_146367_1_, p_146367_2_, EnumConnectionState.LOGIN)); -+ GuiConnecting.this.field_146371_g.func_179290_a(new C00Handshake(107, p_146367_1_, p_146367_2_, EnumConnectionState.LOGIN, true)); +- GuiConnecting.this.field_146371_g.func_179290_a(new C00Handshake(110, p_146367_1_, p_146367_2_, EnumConnectionState.LOGIN)); ++ GuiConnecting.this.field_146371_g.func_179290_a(new C00Handshake(110, p_146367_1_, p_146367_2_, EnumConnectionState.LOGIN, true)); GuiConnecting.this.field_146371_g.func_179290_a(new CPacketLoginStart(GuiConnecting.this.field_146297_k.func_110432_I().func_148256_e())); } catch (UnknownHostException unknownhostexception) diff --git a/patches/minecraft/net/minecraft/client/multiplayer/PlayerControllerMP.java.patch b/patches/minecraft/net/minecraft/client/multiplayer/PlayerControllerMP.java.patch index b9fcfafa15..d8396ced22 100644 --- a/patches/minecraft/net/minecraft/client/multiplayer/PlayerControllerMP.java.patch +++ b/patches/minecraft/net/minecraft/client/multiplayer/PlayerControllerMP.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/multiplayer/PlayerControllerMP.java +++ ../src-work/minecraft/net/minecraft/client/multiplayer/PlayerControllerMP.java -@@ -121,6 +121,12 @@ +@@ -122,6 +122,12 @@ } } @@ -13,7 +13,7 @@ if (this.field_78779_k.func_77145_d() && this.field_78776_a.field_71439_g.func_184614_ca() != null && this.field_78776_a.field_71439_g.func_184614_ca().func_77973_b() instanceof ItemSword) { return false; -@@ -142,14 +148,7 @@ +@@ -143,14 +149,7 @@ else { world.func_175718_b(2001, p_187103_1_, Block.func_176210_f(iblockstate)); @@ -28,7 +28,7 @@ this.field_178895_c = new BlockPos(this.field_178895_c.func_177958_n(), -1, this.field_178895_c.func_177952_p()); if (!this.field_78779_k.func_77145_d()) -@@ -160,13 +159,20 @@ +@@ -161,13 +160,20 @@ { itemstack1.func_179548_a(world, iblockstate, p_187103_1_, this.field_78776_a.field_71439_g); @@ -50,7 +50,7 @@ return flag; } } -@@ -217,14 +223,17 @@ +@@ -218,14 +224,17 @@ } this.field_78774_b.func_147297_a(new CPacketPlayerDigging(CPacketPlayerDigging.Action.START_DESTROY_BLOCK, p_180511_1_, p_180511_2_)); @@ -69,7 +69,7 @@ if (flag && iblockstate.func_185903_a(this.field_78776_a.field_71439_g, this.field_78776_a.field_71439_g.field_70170_p, p_180511_1_) >= 1.0F) { this.func_187103_a(p_180511_1_); -@@ -371,13 +380,32 @@ +@@ -372,13 +381,32 @@ } else { @@ -78,7 +78,7 @@ + if (event.isCanceled()) + { + // Give the server a chance to fire event as well. That way server event is not dependant on client event. -+ this.field_78774_b.func_147297_a(new CPacketPlayerTryUseItem(p_187099_4_, p_187099_5_, p_187099_7_, f, f1, f2)); ++ this.field_78774_b.func_147297_a(new CPacketPlayerTryUseItemOnBlock(p_187099_4_, p_187099_5_, p_187099_7_, f, f1, f2)); + return EnumActionResult.PASS; + } + EnumActionResult result = EnumActionResult.PASS; @@ -104,16 +104,16 @@ } if (!flag && p_187099_3_ != null && p_187099_3_.func_77973_b() instanceof ItemBlock) -@@ -393,7 +421,7 @@ +@@ -394,7 +422,7 @@ - this.field_78774_b.func_147297_a(new CPacketPlayerTryUseItem(p_187099_4_, p_187099_5_, p_187099_7_, f, f1, f2)); + this.field_78774_b.func_147297_a(new CPacketPlayerTryUseItemOnBlock(p_187099_4_, p_187099_5_, p_187099_7_, f, f1, f2)); - if (!flag && this.field_78779_k != WorldSettings.GameType.SPECTATOR) + if (!flag && this.field_78779_k != WorldSettings.GameType.SPECTATOR || event.getUseItem() == net.minecraftforge.fml.common.eventhandler.Event.Result.ALLOW) { if (p_187099_3_ == null) { -@@ -411,14 +439,19 @@ +@@ -412,14 +440,19 @@ { int i = p_187099_3_.func_77960_j(); int j = p_187099_3_.field_77994_a; @@ -134,7 +134,7 @@ } } else -@@ -445,6 +478,7 @@ +@@ -446,6 +479,7 @@ } else { @@ -142,7 +142,7 @@ int i = p_187101_3_.field_77994_a; ActionResult actionresult = p_187101_3_.func_77957_a(p_187101_2_, p_187101_1_, p_187101_4_); ItemStack itemstack = (ItemStack)actionresult.func_188398_b(); -@@ -453,9 +487,10 @@ +@@ -454,9 +488,10 @@ { p_187101_1_.func_184611_a(p_187101_4_, itemstack); diff --git a/patches/minecraft/net/minecraft/client/multiplayer/WorldClient.java.patch b/patches/minecraft/net/minecraft/client/multiplayer/WorldClient.java.patch index 8d7f15464f..d299982947 100644 --- a/patches/minecraft/net/minecraft/client/multiplayer/WorldClient.java.patch +++ b/patches/minecraft/net/minecraft/client/multiplayer/WorldClient.java.patch @@ -1,13 +1,13 @@ --- ../src-base/minecraft/net/minecraft/client/multiplayer/WorldClient.java +++ ../src-work/minecraft/net/minecraft/client/multiplayer/WorldClient.java -@@ -58,17 +58,18 @@ +@@ -59,17 +59,18 @@ public WorldClient(NetHandlerPlayClient p_i45063_1_, WorldSettings p_i45063_2_, int p_i45063_3_, EnumDifficulty p_i45063_4_, Profiler p_i45063_5_) { - super(new SaveHandlerMP(), new WorldInfo(p_i45063_2_, "MpServer"), DimensionType.func_186069_a(p_i45063_3_).func_186070_d(), p_i45063_5_, true); + super(new SaveHandlerMP(), new WorldInfo(p_i45063_2_, "MpServer"), net.minecraftforge.common.DimensionManager.createProviderFor(p_i45063_3_), p_i45063_5_, true); this.field_184158_M = this.field_73012_v.nextInt(12000); - this.field_184157_a = Sets.newHashSet(); + this.field_184157_a = Sets.newHashSet(); this.field_73035_a = p_i45063_1_; this.func_72912_H().func_176144_a(p_i45063_4_); - this.func_175652_B(new BlockPos(8, 64, 8)); diff --git a/patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch b/patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch index 61b8bd175b..b386a5048b 100644 --- a/patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch +++ b/patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java +++ ../src-work/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java -@@ -267,7 +267,7 @@ +@@ -268,7 +268,7 @@ { PacketThreadUtil.func_180031_a(p_147282_1_, this, this.field_147299_f); this.field_147299_f.field_71442_b = new PlayerControllerMP(this.field_147299_f, this); @@ -9,7 +9,7 @@ this.field_147299_f.field_71474_y.field_74318_M = p_147282_1_.func_149192_g(); this.field_147299_f.func_71403_a(this.field_147300_g); this.field_147299_f.field_71439_g.field_71093_bK = p_147282_1_.func_149194_f(); -@@ -785,14 +785,16 @@ +@@ -797,14 +797,16 @@ public void func_147251_a(SPacketChat p_147251_1_) { PacketThreadUtil.func_180031_a(p_147251_1_, this, this.field_147299_f); @@ -28,7 +28,7 @@ } } -@@ -848,6 +850,11 @@ +@@ -860,6 +862,11 @@ float f = (float)(p_147281_1_.func_149028_l() * 360) / 256.0F; float f1 = (float)(p_147281_1_.func_149030_m() * 360) / 256.0F; EntityLivingBase entitylivingbase = (EntityLivingBase)EntityList.func_75616_a(p_147281_1_.func_149025_e(), this.field_147299_f.field_71441_e); @@ -40,7 +40,7 @@ EntityTracker.func_187254_a(entitylivingbase, d0, d1, d2); entitylivingbase.field_70761_aq = entitylivingbase.field_70759_as = (float)(p_147281_1_.func_149032_n() * 360) / 256.0F; Entity[] aentity = entitylivingbase.func_70021_al(); -@@ -919,7 +926,7 @@ +@@ -931,7 +938,7 @@ if (entity1 == this.field_147299_f.field_71439_g && !flag) { @@ -49,7 +49,7 @@ } } } -@@ -1179,6 +1186,10 @@ +@@ -1162,6 +1169,10 @@ { tileentity.func_145839_a(p_147273_1_.func_148857_g()); } @@ -60,7 +60,7 @@ if (flag && this.field_147299_f.field_71462_r instanceof GuiCommandBlock) { -@@ -1276,15 +1287,15 @@ +@@ -1259,15 +1270,15 @@ } else if (f == 101.0F) { @@ -79,7 +79,7 @@ } } else if (i == 6) -@@ -1378,7 +1389,7 @@ +@@ -1361,7 +1372,7 @@ if (entity instanceof EntityLivingBase) { diff --git a/patches/minecraft/net/minecraft/client/particle/EffectRenderer.java.patch b/patches/minecraft/net/minecraft/client/particle/ParticleManager.java.patch similarity index 65% rename from patches/minecraft/net/minecraft/client/particle/EffectRenderer.java.patch rename to patches/minecraft/net/minecraft/client/particle/ParticleManager.java.patch index d3cfc56bc3..42fac1883a 100644 --- a/patches/minecraft/net/minecraft/client/particle/EffectRenderer.java.patch +++ b/patches/minecraft/net/minecraft/client/particle/ParticleManager.java.patch @@ -1,23 +1,23 @@ ---- ../src-base/minecraft/net/minecraft/client/particle/EffectRenderer.java -+++ ../src-work/minecraft/net/minecraft/client/particle/EffectRenderer.java -@@ -143,6 +143,7 @@ +--- ../src-base/minecraft/net/minecraft/client/particle/ParticleManager.java ++++ ../src-work/minecraft/net/minecraft/client/particle/ParticleManager.java +@@ -145,6 +145,7 @@ - public void func_78873_a(EntityFX p_78873_1_) + public void func_78873_a(Particle p_78873_1_) { + if (p_78873_1_ == null) return; //Forge: Prevent modders from being bad and adding nulls causing untraceable NPEs. this.field_187241_h.add(p_78873_1_); } -@@ -376,7 +377,7 @@ +@@ -378,7 +379,7 @@ public void func_180533_a(BlockPos p_180533_1_, IBlockState p_180533_2_) { - if (p_180533_2_.func_185904_a() != Material.field_151579_a) -+ if (!p_180533_2_.func_177230_c().isAir(p_180533_2_, field_78878_a, p_180533_1_) && !p_180533_2_.func_177230_c().addDestroyEffects(field_78878_a, p_180533_1_, this)) ++ if (!p_180533_2_.func_177230_c().isAir(p_180533_2_, this.field_78878_a, p_180533_1_) && !p_180533_2_.func_177230_c().addDestroyEffects(field_78878_a, p_180533_1_, this)) { p_180533_2_ = p_180533_2_.func_185899_b(this.field_78878_a, p_180533_1_); int i = 4; -@@ -460,4 +461,13 @@ +@@ -462,4 +463,13 @@ return "" + i; } diff --git a/patches/minecraft/net/minecraft/client/renderer/BlockModelRenderer.java.patch b/patches/minecraft/net/minecraft/client/renderer/BlockModelRenderer.java.patch index be9bcb78fb..f3d7fc94e6 100644 --- a/patches/minecraft/net/minecraft/client/renderer/BlockModelRenderer.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/BlockModelRenderer.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/BlockModelRenderer.java +++ ../src-work/minecraft/net/minecraft/client/renderer/BlockModelRenderer.java -@@ -140,7 +140,14 @@ +@@ -141,7 +141,14 @@ p_187492_8_.func_187491_a(p_187492_1_, p_187492_2_, p_187492_3_, bakedquad.func_178210_d(), p_187492_6_, p_187492_7_); p_187492_4_.func_178981_a(bakedquad.func_178209_a()); p_187492_4_.func_178962_a(p_187492_8_.field_178207_c[0], p_187492_8_.field_178207_c[1], p_187492_8_.field_178207_c[2], p_187492_8_.field_178207_c[3]); @@ -16,7 +16,7 @@ if (bakedquad.func_178212_b()) { int k = this.field_187499_a.func_186724_a(p_187492_2_, p_187492_1_, p_187492_3_, bakedquad.func_178211_c()); -@@ -289,11 +296,26 @@ +@@ -290,11 +297,26 @@ float f = (float)(l >> 16 & 255) / 255.0F; float f1 = (float)(l >> 8 & 255) / 255.0F; float f2 = (float)(l & 255) / 255.0F; diff --git a/patches/minecraft/net/minecraft/client/renderer/EntityRenderer.java.patch b/patches/minecraft/net/minecraft/client/renderer/EntityRenderer.java.patch index eec1cf045f..fa8071fea9 100644 --- a/patches/minecraft/net/minecraft/client/renderer/EntityRenderer.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/EntityRenderer.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/EntityRenderer.java +++ ../src-work/minecraft/net/minecraft/client/renderer/EntityRenderer.java -@@ -207,6 +207,7 @@ +@@ -208,6 +208,7 @@ { this.func_175069_a(new ResourceLocation("shaders/post/invert.json")); } @@ -8,7 +8,7 @@ } } -@@ -398,7 +399,7 @@ +@@ -399,7 +400,7 @@ if (d3 < d2 || d2 == 0.0D) { @@ -17,7 +17,7 @@ { if (d2 == 0.0D) { -@@ -491,7 +492,7 @@ +@@ -492,7 +493,7 @@ f = f * 60.0F / 70.0F; } @@ -26,7 +26,7 @@ } } -@@ -555,14 +556,8 @@ +@@ -556,14 +557,8 @@ { BlockPos blockpos = new BlockPos(entity); IBlockState iblockstate = this.field_78531_r.field_71441_e.func_180495_p(blockpos); @@ -42,7 +42,7 @@ GlStateManager.func_179114_b(entity.field_70126_B + (entity.field_70177_z - entity.field_70126_B) * p_78467_1_ + 180.0F, 0.0F, -1.0F, 0.0F); GlStateManager.func_179114_b(entity.field_70127_C + (entity.field_70125_A - entity.field_70127_C) * p_78467_1_, -1.0F, 0.0F, 0.0F); } -@@ -629,17 +624,20 @@ +@@ -630,17 +625,20 @@ if (!this.field_78531_r.field_71474_y.field_74325_U) { @@ -70,7 +70,7 @@ } GlStateManager.func_179109_b(0.0F, -f, 0.0F); -@@ -757,6 +755,7 @@ +@@ -758,6 +756,7 @@ boolean flag = this.field_78531_r.func_175606_aa() instanceof EntityLivingBase && ((EntityLivingBase)this.field_78531_r.func_175606_aa()).func_70608_bn(); @@ -78,7 +78,7 @@ if (this.field_78531_r.field_71474_y.field_74320_O == 0 && !flag && !this.field_78531_r.field_71474_y.field_74319_N && !this.field_78531_r.field_71442_b.func_78747_a()) { this.func_180436_i(); -@@ -1092,7 +1091,7 @@ +@@ -1093,7 +1092,7 @@ try { @@ -87,7 +87,7 @@ } catch (Throwable throwable) { -@@ -1187,7 +1186,7 @@ +@@ -1188,7 +1187,7 @@ if (this.field_78531_r.field_71442_b.func_178889_l() == WorldSettings.GameType.SPECTATOR) { @@ -96,7 +96,7 @@ } else { -@@ -1312,7 +1311,9 @@ +@@ -1313,7 +1312,9 @@ GlStateManager.func_179094_E(); RenderHelper.func_74519_b(); this.field_78531_r.field_71424_I.func_76318_c("entities"); @@ -106,7 +106,7 @@ RenderHelper.func_74518_a(); this.func_175072_h(); } -@@ -1325,6 +1326,7 @@ +@@ -1326,6 +1327,7 @@ EntityPlayer entityplayer = (EntityPlayer)entity; GlStateManager.func_179118_c(); this.field_78531_r.field_71424_I.func_76318_c("outline"); @@ -114,7 +114,7 @@ renderglobal.func_72731_b(entityplayer, this.field_78531_r.field_71476_x, 0, p_175068_2_); GlStateManager.func_179141_d(); } -@@ -1366,6 +1368,17 @@ +@@ -1367,6 +1369,17 @@ GlStateManager.func_179103_j(7425); this.field_78531_r.field_71424_I.func_76318_c("translucent"); renderglobal.func_174977_a(BlockRenderLayer.TRANSLUCENT, (double)p_175068_2_, p_175068_1_, entity); @@ -132,7 +132,7 @@ GlStateManager.func_179103_j(7424); GlStateManager.func_179132_a(true); GlStateManager.func_179089_o(); -@@ -1378,6 +1391,9 @@ +@@ -1379,6 +1392,9 @@ this.func_180437_a(renderglobal, p_175068_2_, p_175068_1_); } @@ -142,7 +142,7 @@ this.field_78531_r.field_71424_I.func_76318_c("hand"); if (this.field_175074_C) -@@ -1490,6 +1506,13 @@ +@@ -1491,6 +1507,13 @@ protected void func_78474_d(float p_78474_1_) { @@ -156,7 +156,7 @@ float f = this.field_78531_r.field_71441_e.func_72867_j(p_78474_1_); if (f > 0.0F) -@@ -1820,6 +1843,13 @@ +@@ -1821,6 +1844,13 @@ this.field_175081_S = f7; } @@ -170,7 +170,7 @@ GlStateManager.func_179082_a(this.field_175080_Q, this.field_175082_R, this.field_175081_S, 0.0F); } -@@ -1830,7 +1860,9 @@ +@@ -1831,7 +1861,9 @@ GlStateManager.func_187432_a(0.0F, -1.0F, 0.0F); GlStateManager.func_179131_c(1.0F, 1.0F, 1.0F, 1.0F); IBlockState iblockstate = ActiveRenderInfo.func_186703_a(this.field_78531_r.field_71441_e, entity, p_78468_2_); @@ -181,7 +181,7 @@ if (entity instanceof EntityLivingBase && ((EntityLivingBase)entity).func_70644_a(MobEffects.field_76440_q)) { float f1 = 5.0F; -@@ -1915,6 +1947,7 @@ +@@ -1916,6 +1948,7 @@ GlStateManager.func_179102_b(f * 0.05F); GlStateManager.func_179153_c(Math.min(f, 192.0F) * 0.5F); } diff --git a/patches/minecraft/net/minecraft/client/renderer/ItemModelMesher.java.patch b/patches/minecraft/net/minecraft/client/renderer/ItemModelMesher.java.patch index 1b7646b17e..d8b6f3ce0e 100644 --- a/patches/minecraft/net/minecraft/client/renderer/ItemModelMesher.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/ItemModelMesher.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/ItemModelMesher.java +++ ../src-work/minecraft/net/minecraft/client/renderer/ItemModelMesher.java -@@ -32,7 +32,9 @@ +@@ -33,7 +33,9 @@ public TextureAtlasSprite func_178087_a(Item p_178087_1_, int p_178087_2_) { diff --git a/patches/minecraft/net/minecraft/client/renderer/ItemRenderer.java.patch b/patches/minecraft/net/minecraft/client/renderer/ItemRenderer.java.patch index af69531d01..d09c9336b2 100644 --- a/patches/minecraft/net/minecraft/client/renderer/ItemRenderer.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/ItemRenderer.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/ItemRenderer.java +++ ../src-work/minecraft/net/minecraft/client/renderer/ItemRenderer.java -@@ -316,7 +316,7 @@ +@@ -317,7 +317,7 @@ { ItemStack itemstack = abstractclientplayer.func_184607_cu(); @@ -9,7 +9,7 @@ { EnumHand enumhand1 = abstractclientplayer.func_184600_cs(); flag = enumhand1 == EnumHand.MAIN_HAND; -@@ -360,7 +360,7 @@ +@@ -361,7 +361,7 @@ this.func_187456_a(p_187457_7_, p_187457_5_, enumhandside); } } @@ -18,7 +18,7 @@ { if (flag && this.field_187468_e == null) { -@@ -444,6 +444,7 @@ +@@ -445,6 +445,7 @@ if (this.field_78455_a.field_71439_g.func_70094_T()) { IBlockState iblockstate = this.field_78455_a.field_71441_e.func_180495_p(new BlockPos(this.field_78455_a.field_71439_g)); @@ -26,7 +26,7 @@ EntityPlayer entityplayer = this.field_78455_a.field_71439_g; for (int i = 0; i < 8; ++i) -@@ -457,11 +458,13 @@ +@@ -458,11 +459,13 @@ if (iblockstate1.func_177230_c().func_176214_u()) { iblockstate = iblockstate1; @@ -40,7 +40,7 @@ this.func_178108_a(p_78447_1_, this.field_78455_a.func_175602_ab().func_175023_a().func_178122_a(iblockstate)); } } -@@ -470,11 +473,13 @@ +@@ -471,11 +474,13 @@ { if (this.field_78455_a.field_71439_g.func_70055_a(Material.field_151586_h)) { @@ -54,7 +54,7 @@ this.func_78442_d(p_78447_1_); } } -@@ -596,8 +601,8 @@ +@@ -597,8 +602,8 @@ else { float f = entityplayersp.func_184825_o(1.0F); diff --git a/patches/minecraft/net/minecraft/client/renderer/RenderGlobal.java.patch b/patches/minecraft/net/minecraft/client/renderer/RenderGlobal.java.patch index cb766654a5..97010fc010 100644 --- a/patches/minecraft/net/minecraft/client/renderer/RenderGlobal.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/RenderGlobal.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/RenderGlobal.java +++ ../src-work/minecraft/net/minecraft/client/renderer/RenderGlobal.java -@@ -547,8 +547,10 @@ +@@ -548,8 +548,10 @@ public void func_180446_a(Entity p_180446_1_, ICamera p_180446_2_, float p_180446_3_) { @@ -11,7 +11,7 @@ --this.field_72740_G; } else -@@ -559,9 +561,12 @@ +@@ -560,9 +562,12 @@ this.field_72769_h.field_72984_F.func_76320_a("prepare"); TileEntityRendererDispatcher.field_147556_a.func_178470_a(this.field_72769_h, this.field_72777_q.func_110434_K(), this.field_72777_q.field_71466_p, this.field_72777_q.func_175606_aa(), p_180446_3_); this.field_175010_j.func_180597_a(this.field_72769_h, this.field_72777_q.field_71466_p, this.field_72777_q.func_175606_aa(), this.field_72777_q.field_147125_j, this.field_72777_q.field_71474_y, p_180446_3_); @@ -24,7 +24,7 @@ Entity entity = this.field_72777_q.func_175606_aa(); double d3 = entity.field_70142_S + (entity.field_70165_t - entity.field_70142_S) * (double)p_180446_3_; double d4 = entity.field_70137_T + (entity.field_70163_u - entity.field_70137_T) * (double)p_180446_3_; -@@ -573,11 +578,15 @@ +@@ -574,11 +579,15 @@ this.field_72777_q.field_71460_t.func_180436_i(); this.field_72769_h.field_72984_F.func_76318_c("global"); List list = this.field_72769_h.func_72910_y(); @@ -40,7 +40,7 @@ ++this.field_72749_I; if (entity1.func_145770_h(d0, d1, d2)) -@@ -599,6 +608,7 @@ +@@ -601,6 +610,7 @@ { for (Entity entity2 : classinheritancemultimap) { @@ -48,7 +48,7 @@ boolean flag = this.field_175010_j.func_178635_a(entity2, p_180446_2_, d0, d1, d2) || entity2.func_184215_y(this.field_72777_q.field_71439_g); if (flag) -@@ -633,6 +643,7 @@ +@@ -637,6 +647,7 @@ } } @@ -56,7 +56,7 @@ if (this.func_174985_d() && (!list1.isEmpty() || this.field_184386_ad)) { this.field_72769_h.field_72984_F.func_76318_c("entityOutlines"); -@@ -672,6 +683,7 @@ +@@ -676,6 +687,7 @@ this.field_72769_h.field_72984_F.func_76318_c("blockentities"); RenderHelper.func_74519_b(); @@ -64,7 +64,7 @@ for (RenderGlobal.ContainerLocalRenderInformation renderglobal$containerlocalrenderinformation1 : this.field_72755_R) { List list3 = renderglobal$containerlocalrenderinformation1.field_178036_a.func_178571_g().func_178485_b(); -@@ -680,6 +692,7 @@ +@@ -684,6 +696,7 @@ { for (TileEntity tileentity2 : list3) { @@ -72,7 +72,7 @@ TileEntityRendererDispatcher.field_147556_a.func_180546_a(tileentity2, p_180446_3_, -1); } } -@@ -689,9 +702,11 @@ +@@ -693,9 +706,11 @@ { for (TileEntity tileentity : this.field_181024_n) { @@ -84,7 +84,7 @@ this.func_180443_s(); -@@ -718,7 +733,7 @@ +@@ -722,7 +737,7 @@ Block block = this.field_72769_h.func_180495_p(blockpos).func_177230_c(); @@ -93,7 +93,7 @@ { TileEntityRendererDispatcher.field_147556_a.func_180546_a(tileentity1, p_180446_3_, destroyblockprogress.func_73106_e()); } -@@ -1210,6 +1225,13 @@ +@@ -1214,6 +1229,13 @@ public void func_174976_a(float p_174976_1_, int p_174976_2_) { @@ -107,7 +107,7 @@ if (this.field_72777_q.field_71441_e.field_73011_w.func_186058_p().func_186068_a() == 1) { this.func_180448_r(); -@@ -1427,6 +1449,12 @@ +@@ -1431,6 +1453,12 @@ public void func_180447_b(float p_180447_1_, int p_180447_2_) { @@ -120,7 +120,7 @@ if (this.field_72777_q.field_71441_e.field_73011_w.func_76569_d()) { if (this.field_72777_q.field_71474_y.func_181147_e() == 2) -@@ -1854,8 +1882,11 @@ +@@ -1858,8 +1886,11 @@ double d4 = (double)blockpos.func_177956_o() - d1; double d5 = (double)blockpos.func_177952_p() - d2; Block block = this.field_72769_h.func_180495_p(blockpos).func_177230_c(); diff --git a/patches/minecraft/net/minecraft/client/renderer/RenderItem.java.patch b/patches/minecraft/net/minecraft/client/renderer/RenderItem.java.patch index e4a020fc9f..b2b5124262 100644 --- a/patches/minecraft/net/minecraft/client/renderer/RenderItem.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/RenderItem.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/RenderItem.java +++ ../src-work/minecraft/net/minecraft/client/renderer/RenderItem.java -@@ -71,7 +71,7 @@ +@@ -72,7 +72,7 @@ public RenderItem(TextureManager p_i46552_1_, ModelManager p_i46552_2_, ItemColors p_i46552_3_) { this.field_175057_n = p_i46552_1_; @@ -9,7 +9,7 @@ this.func_175041_b(); this.field_184395_f = p_i46552_3_; } -@@ -223,7 +223,7 @@ +@@ -224,7 +224,7 @@ k = k | -16777216; } @@ -18,8 +18,8 @@ } } -@@ -245,17 +245,7 @@ - public IBakedModel func_184393_a(ItemStack p_184393_1_, World p_184393_2_, EntityLivingBase p_184393_3_) +@@ -246,17 +246,7 @@ + public IBakedModel func_184393_a(ItemStack p_184393_1_, @Nullable World p_184393_2_, @Nullable EntityLivingBase p_184393_3_) { IBakedModel ibakedmodel = this.field_175059_m.func_178089_a(p_184393_1_); - Item item = p_184393_1_.func_77973_b(); @@ -37,7 +37,7 @@ } public void func_184392_a(ItemStack p_184392_1_, EntityLivingBase p_184392_2_, ItemCameraTransforms.TransformType p_184392_3_, boolean p_184392_4_) -@@ -279,14 +269,9 @@ +@@ -280,14 +270,9 @@ GlStateManager.func_179147_l(); GlStateManager.func_187428_a(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); GlStateManager.func_179094_E(); @@ -54,7 +54,7 @@ this.func_180454_a(p_184394_1_, p_184394_2_); GlStateManager.func_187407_a(GlStateManager.CullFace.BACK); GlStateManager.func_179121_F(); -@@ -319,7 +304,7 @@ +@@ -320,7 +305,7 @@ GlStateManager.func_187401_a(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); GlStateManager.func_179131_c(1.0F, 1.0F, 1.0F, 1.0F); this.func_180452_a(p_184390_2_, p_184390_3_, p_184390_4_.func_177556_c()); @@ -63,7 +63,7 @@ this.func_180454_a(p_184390_1_, p_184390_4_); GlStateManager.func_179118_c(); GlStateManager.func_179101_C(); -@@ -424,12 +409,16 @@ +@@ -425,12 +410,16 @@ p_180453_1_.func_175063_a(s, (float)(p_180453_3_ + 19 - 2 - p_180453_1_.func_78256_a(s)), (float)(p_180453_4_ + 6 + 3), 16777215); GlStateManager.func_179145_e(); GlStateManager.func_179126_j(); @@ -83,7 +83,7 @@ GlStateManager.func_179140_f(); GlStateManager.func_179097_i(); GlStateManager.func_179090_x(); -@@ -1053,6 +1042,7 @@ +@@ -1054,6 +1043,7 @@ this.func_175029_a(Blocks.field_185779_df, TileEntityStructure.Mode.LOAD.func_185110_a(), "structure_block"); this.func_175029_a(Blocks.field_185779_df, TileEntityStructure.Mode.CORNER.func_185110_a(), "structure_block"); this.func_175029_a(Blocks.field_185779_df, TileEntityStructure.Mode.DATA.func_185110_a(), "structure_block"); diff --git a/patches/minecraft/net/minecraft/client/renderer/block/model/FaceBakery.java.patch b/patches/minecraft/net/minecraft/client/renderer/block/model/FaceBakery.java.patch index f27905bd1c..dd33787173 100644 --- a/patches/minecraft/net/minecraft/client/renderer/block/model/FaceBakery.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/block/model/FaceBakery.java.patch @@ -1,8 +1,8 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/block/model/FaceBakery.java +++ ../src-work/minecraft/net/minecraft/client/renderer/block/model/FaceBakery.java -@@ -48,14 +48,19 @@ +@@ -49,14 +49,19 @@ - public BakedQuad func_178414_a(Vector3f p_178414_1_, Vector3f p_178414_2_, BlockPartFace p_178414_3_, TextureAtlasSprite p_178414_4_, EnumFacing p_178414_5_, ModelRotation p_178414_6_, BlockPartRotation p_178414_7_, boolean p_178414_8_, boolean p_178414_9_) + public BakedQuad func_178414_a(Vector3f p_178414_1_, Vector3f p_178414_2_, BlockPartFace p_178414_3_, TextureAtlasSprite p_178414_4_, EnumFacing p_178414_5_, ModelRotation p_178414_6_, @Nullable BlockPartRotation p_178414_7_, boolean p_178414_8_, boolean p_178414_9_) { + return makeBakedQuad(p_178414_1_, p_178414_2_, p_178414_3_, p_178414_4_, p_178414_5_, (net.minecraftforge.common.model.ITransformation)p_178414_6_, p_178414_7_, p_178414_8_, p_178414_9_); + } @@ -22,7 +22,7 @@ EnumFacing enumfacing = func_178410_a(aint); if (p_178414_7_ == null) -@@ -63,7 +68,8 @@ +@@ -64,7 +69,8 @@ this.func_178408_a(aint, enumfacing); } @@ -32,9 +32,9 @@ } private BlockFaceUV func_188010_a(BlockFaceUV p_188010_1_, EnumFacing p_188010_2_, ModelRotation p_188010_3_) -@@ -73,11 +79,16 @@ +@@ -74,11 +80,16 @@ - private int[] func_188012_a(BlockFaceUV p_188012_1_, TextureAtlasSprite p_188012_2_, EnumFacing p_188012_3_, float[] p_188012_4_, ModelRotation p_188012_5_, BlockPartRotation p_188012_6_, boolean p_188012_7_) + private int[] func_188012_a(BlockFaceUV p_188012_1_, TextureAtlasSprite p_188012_2_, EnumFacing p_188012_3_, float[] p_188012_4_, ModelRotation p_188012_5_, @Nullable BlockPartRotation p_188012_6_, boolean p_188012_7_) { + return makeQuadVertexData(p_188012_1_, p_188012_2_, p_188012_3_, p_188012_4_, (net.minecraftforge.common.model.ITransformation)p_188012_5_, p_188012_6_, p_188012_7_); + } @@ -50,9 +50,9 @@ } return aint; -@@ -123,12 +134,17 @@ +@@ -124,12 +135,17 @@ - private void func_188015_a(int[] p_188015_1_, int p_188015_2_, EnumFacing p_188015_3_, BlockFaceUV p_188015_4_, float[] p_188015_5_, TextureAtlasSprite p_188015_6_, ModelRotation p_188015_7_, BlockPartRotation p_188015_8_, boolean p_188015_9_) + private void func_188015_a(int[] p_188015_1_, int p_188015_2_, EnumFacing p_188015_3_, BlockFaceUV p_188015_4_, float[] p_188015_5_, TextureAtlasSprite p_188015_6_, ModelRotation p_188015_7_, @Nullable BlockPartRotation p_188015_8_, boolean p_188015_9_) { - EnumFacing enumfacing = p_188015_7_.func_177523_a(p_188015_3_); + fillVertexData(p_188015_1_, p_188015_2_, p_188015_3_, p_188015_4_, p_188015_5_, p_188015_6_, (net.minecraftforge.common.model.ITransformation)p_188015_7_, p_188015_8_, p_188015_9_); @@ -70,7 +70,7 @@ this.func_178404_a(p_188015_1_, j, p_188015_2_, vector3f, i, p_188015_6_, p_188015_4_); } -@@ -139,8 +155,8 @@ +@@ -140,8 +156,8 @@ p_178404_1_[i + 1] = Float.floatToRawIntBits(p_178404_4_.y); p_178404_1_[i + 2] = Float.floatToRawIntBits(p_178404_4_.z); p_178404_1_[i + 3] = p_178404_5_; @@ -80,8 +80,8 @@ + p_178404_1_[i + 4 + 1] = Float.floatToRawIntBits(p_178404_6_.func_94207_b((double)p_178404_7_.func_178346_b(p_178404_3_) * .999 + p_178404_7_.func_178346_b((p_178404_3_ + 2) % 4) * .001)); } - private void func_178407_a(Vector3f p_178407_1_, BlockPartRotation p_178407_2_) -@@ -189,14 +205,19 @@ + private void func_178407_a(Vector3f p_178407_1_, @Nullable BlockPartRotation p_178407_2_) +@@ -190,14 +206,19 @@ public int func_188011_a(Vector3f p_188011_1_, EnumFacing p_188011_2_, int p_188011_3_, ModelRotation p_188011_4_) { diff --git a/patches/minecraft/net/minecraft/client/renderer/block/model/IBakedModel.java.patch b/patches/minecraft/net/minecraft/client/renderer/block/model/IBakedModel.java.patch index af5da1d944..91066f0a8c 100644 --- a/patches/minecraft/net/minecraft/client/renderer/block/model/IBakedModel.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/block/model/IBakedModel.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/block/model/IBakedModel.java +++ ../src-work/minecraft/net/minecraft/client/renderer/block/model/IBakedModel.java -@@ -20,6 +20,7 @@ +@@ -21,6 +21,7 @@ TextureAtlasSprite func_177554_e(); diff --git a/patches/minecraft/net/minecraft/client/renderer/block/model/ItemOverrideList.java.patch b/patches/minecraft/net/minecraft/client/renderer/block/model/ItemOverrideList.java.patch index a000941766..cb54282215 100644 --- a/patches/minecraft/net/minecraft/client/renderer/block/model/ItemOverrideList.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/block/model/ItemOverrideList.java.patch @@ -1,14 +1,14 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/block/model/ItemOverrideList.java +++ ../src-work/minecraft/net/minecraft/client/renderer/block/model/ItemOverrideList.java -@@ -27,6 +27,7 @@ - } +@@ -29,6 +29,7 @@ } + @Nullable + @Deprecated - public ResourceLocation func_188021_a(ItemStack p_188021_1_, World p_188021_2_, EntityLivingBase p_188021_3_) + public ResourceLocation func_188021_a(ItemStack p_188021_1_, @Nullable World p_188021_2_, @Nullable EntityLivingBase p_188021_3_) { if (!this.field_188023_b.isEmpty()) -@@ -42,4 +43,23 @@ +@@ -44,4 +45,23 @@ return null; } diff --git a/patches/minecraft/net/minecraft/client/renderer/block/model/ModelBakery.java.patch b/patches/minecraft/net/minecraft/client/renderer/block/model/ModelBakery.java.patch index b7ac03ea1f..8f8b0f81cc 100644 --- a/patches/minecraft/net/minecraft/client/renderer/block/model/ModelBakery.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/block/model/ModelBakery.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/block/model/ModelBakery.java +++ ../src-work/minecraft/net/minecraft/client/renderer/block/model/ModelBakery.java -@@ -102,6 +102,21 @@ +@@ -103,6 +103,21 @@ { try { @@ -22,16 +22,16 @@ ModelBlockDefinition modelblockdefinition = this.func_177586_a(resourcelocation); Map map = blockstatemapper.func_188181_b(block); -@@ -109,7 +124,7 @@ +@@ -110,7 +125,7 @@ { Collection collection = Sets.newHashSet(map.values()); modelblockdefinition.func_188001_c().func_188138_a(block.func_176194_O()); - this.field_188642_k.put(modelblockdefinition, Lists.newArrayList(Iterables.filter(collection, new Predicate() + registerMultipartVariant(modelblockdefinition, Lists.newArrayList(Iterables.filter(collection, new Predicate() { - public boolean apply(ModelResourceLocation p_apply_1_) + public boolean apply(@Nullable ModelResourceLocation p_apply_1_) { -@@ -126,22 +141,18 @@ +@@ -127,22 +142,18 @@ { try { @@ -56,7 +56,7 @@ } } } -@@ -370,6 +381,7 @@ +@@ -371,6 +382,7 @@ protected void func_177592_e() { @@ -64,7 +64,7 @@ this.field_177613_u.put(Item.func_150898_a(Blocks.field_150348_b), Lists.newArrayList(new String[] {"stone", "granite", "granite_smooth", "diorite", "diorite_smooth", "andesite", "andesite_smooth"})); this.field_177613_u.put(Item.func_150898_a(Blocks.field_150346_d), Lists.newArrayList(new String[] {"dirt", "coarse_dirt", "podzol"})); this.field_177613_u.put(Item.func_150898_a(Blocks.field_150344_f), Lists.newArrayList(new String[] {"oak_planks", "spruce_planks", "birch_planks", "jungle_planks", "acacia_planks", "dark_oak_planks"})); -@@ -413,6 +425,10 @@ +@@ -414,6 +426,10 @@ this.field_177613_u.put(Item.func_150898_a(Blocks.field_180407_aO), Lists.newArrayList(new String[] {"oak_fence"})); this.field_177613_u.put(Items.field_179570_aq, Lists.newArrayList(new String[] {"oak_door"})); this.field_177613_u.put(Items.field_151124_az, Lists.newArrayList(new String[] {"oak_boat"})); @@ -75,7 +75,7 @@ } protected List func_177596_a(Item p_177596_1_) -@@ -429,7 +445,7 @@ +@@ -430,7 +446,7 @@ protected ResourceLocation func_177583_a(String p_177583_1_) { @@ -84,7 +84,7 @@ return new ResourceLocation(resourcelocation.func_110624_b(), "item/" + resourcelocation.func_110623_a()); } -@@ -536,7 +552,7 @@ +@@ -538,7 +554,7 @@ for (Entry entry : this.field_177615_s.entrySet()) { ResourceLocation resourcelocation = (ResourceLocation)entry.getValue(); @@ -93,8 +93,8 @@ ModelBlock modelblock = (ModelBlock)this.field_177611_h.get(resourcelocation); if (modelblock != null && modelblock.func_178303_d()) -@@ -623,6 +639,11 @@ - +@@ -626,6 +642,11 @@ + @Nullable private IBakedModel func_177578_a(ModelBlock p_177578_1_, ModelRotation p_177578_2_, boolean p_177578_3_) { + return bakeModel(p_177578_1_, (net.minecraftforge.common.model.ITransformation)p_177578_2_, p_177578_3_); @@ -105,7 +105,7 @@ TextureAtlasSprite textureatlassprite = (TextureAtlasSprite)this.field_177599_g.get(new ResourceLocation(p_177578_1_.func_178308_c("particle"))); SimpleBakedModel.Builder simplebakedmodel$builder = (new SimpleBakedModel.Builder(p_177578_1_, p_177578_1_.func_187967_g())).func_177646_a(textureatlassprite); -@@ -639,13 +660,13 @@ +@@ -642,13 +663,13 @@ BlockPartFace blockpartface = (BlockPartFace)blockpart.field_178240_c.get(enumfacing); TextureAtlasSprite textureatlassprite1 = (TextureAtlasSprite)this.field_177599_g.get(new ResourceLocation(p_177578_1_.func_178308_c(blockpartface.field_178242_d))); @@ -122,7 +122,7 @@ } } } -@@ -656,9 +677,14 @@ +@@ -659,9 +680,14 @@ private BakedQuad func_177589_a(BlockPart p_177589_1_, BlockPartFace p_177589_2_, TextureAtlasSprite p_177589_3_, EnumFacing p_177589_4_, ModelRotation p_177589_5_, boolean p_177589_6_) { @@ -138,7 +138,7 @@ private void func_177597_h() { this.func_177574_i(); -@@ -878,4 +904,23 @@ +@@ -882,4 +908,23 @@ field_177606_o.field_178317_b = "generation marker"; field_177616_r.field_178317_b = "block entity marker"; } diff --git a/patches/minecraft/net/minecraft/client/renderer/block/model/ModelBlockDefinition.java.patch b/patches/minecraft/net/minecraft/client/renderer/block/model/ModelBlockDefinition.java.patch index aef97997d9..47026f38d5 100644 --- a/patches/minecraft/net/minecraft/client/renderer/block/model/ModelBlockDefinition.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/block/model/ModelBlockDefinition.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/block/model/ModelBlockDefinition.java +++ ../src-work/minecraft/net/minecraft/client/renderer/block/model/ModelBlockDefinition.java -@@ -31,7 +31,7 @@ +@@ -34,7 +34,7 @@ public static ModelBlockDefinition func_178331_a(Reader p_178331_0_) { diff --git a/patches/minecraft/net/minecraft/client/renderer/block/statemap/StateMap.java.patch b/patches/minecraft/net/minecraft/client/renderer/block/statemap/StateMap.java.patch index c0c6918373..2090d9fc26 100644 --- a/patches/minecraft/net/minecraft/client/renderer/block/statemap/StateMap.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/block/statemap/StateMap.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/block/statemap/StateMap.java +++ ../src-work/minecraft/net/minecraft/client/renderer/block/statemap/StateMap.java -@@ -38,7 +38,7 @@ +@@ -39,7 +39,7 @@ } else { diff --git a/patches/minecraft/net/minecraft/client/renderer/chunk/RenderChunk.java.patch b/patches/minecraft/net/minecraft/client/renderer/chunk/RenderChunk.java.patch index bb29f62d10..10a7b17ec9 100644 --- a/patches/minecraft/net/minecraft/client/renderer/chunk/RenderChunk.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/chunk/RenderChunk.java.patch @@ -1,26 +1,15 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/chunk/RenderChunk.java +++ ../src-work/minecraft/net/minecraft/client/renderer/chunk/RenderChunk.java -@@ -133,7 +133,9 @@ - return; - } - -- iblockaccess = new RegionRenderCache(this.field_178588_d, blockpos.func_177982_a(-1, -1, -1), blockpos1.func_177982_a(1, 1, 1), 1); -+ RegionRenderCache cache = createRegionRenderCache(this.field_178588_d, blockpos.func_177982_a(-1, -1, -1), blockpos1.func_177982_a(1, 1, 1), 1); -+ net.minecraftforge.client.MinecraftForgeClient.onRebuildChunk(field_178588_d, field_178586_f, cache); -+ iblockaccess = cache; - p_178581_4_.func_178543_a(compiledchunk); - } - finally -@@ -160,7 +162,7 @@ - lvt_10_1_.func_178606_a(blockpos$mutableblockpos); +@@ -162,7 +162,7 @@ + lvt_9_1_.func_178606_a(blockpos$mutableblockpos); } - if (block.func_149716_u()) + if (block.hasTileEntity(iblockstate)) { - TileEntity tileentity = iblockaccess.func_175625_s(new BlockPos(blockpos$mutableblockpos)); - TileEntitySpecialRenderer tileentityspecialrenderer = TileEntityRendererDispatcher.field_147556_a.func_147547_b(tileentity); -@@ -176,7 +178,9 @@ + TileEntity tileentity = this.field_189564_r.func_175625_s(new BlockPos(blockpos$mutableblockpos)); + +@@ -182,7 +182,9 @@ } } @@ -31,16 +20,27 @@ int j = blockrenderlayer1.ordinal(); if (block.func_176223_P().func_185901_i() != EnumBlockRenderType.INVISIBLE) -@@ -191,6 +195,8 @@ +@@ -197,6 +199,8 @@ - aboolean[j] |= blockrendererdispatcher.func_175018_a(iblockstate, blockpos$mutableblockpos, iblockaccess, vertexbuffer); + aboolean[j] |= blockrendererdispatcher.func_175018_a(iblockstate, blockpos$mutableblockpos, this.field_189564_r, vertexbuffer); } + } + net.minecraftforge.client.ForgeHooksClient.setRenderLayer(null); } for (BlockRenderLayer blockrenderlayer : BlockRenderLayer.values()) -@@ -413,6 +419,26 @@ +@@ -278,7 +282,9 @@ + private void func_189563_q() + { + int i = 1; +- this.field_189564_r = new ChunkCache(this.field_178588_d, this.field_178586_f.func_177982_a(-1, -1, -1), this.field_178586_f.func_177982_a(16, 16, 16), 1); ++ ChunkCache cache = createRegionRenderCache(this.field_178588_d, this.field_178586_f.func_177982_a(-1, -1, -1), this.field_178586_f.func_177982_a(16, 16, 16), 1); ++ net.minecraftforge.client.MinecraftForgeClient.onRebuildChunk(this.field_178588_d, this.field_178586_f, cache); ++ this.field_189564_r = cache; + } + + @Nullable +@@ -427,6 +433,26 @@ return this.field_178593_n && this.field_188284_q; } @@ -58,12 +58,12 @@ + * the cache a 20x20x20 cube, for a total of 8000 states in the cache. + * @return new RegionRenderCache instance + */ -+ protected RegionRenderCache createRegionRenderCache(World world, BlockPos from, BlockPos to, int subtract) ++ protected ChunkCache createRegionRenderCache(World world, BlockPos from, BlockPos to, int subtract) + { -+ return new RegionRenderCache(world, from, to, subtract); ++ return new ChunkCache(world, from, to, subtract); + } + /* ========================================= FORGE END ======================================*/ + public BlockPos func_181701_a(EnumFacing p_181701_1_) { - return (BlockPos)this.field_181702_p.get(p_181701_1_); + return this.field_181702_p[p_181701_1_.ordinal()]; diff --git a/patches/minecraft/net/minecraft/client/renderer/color/BlockColors.java.patch b/patches/minecraft/net/minecraft/client/renderer/color/BlockColors.java.patch index 93ce7f14e3..16a5a36add 100644 --- a/patches/minecraft/net/minecraft/client/renderer/color/BlockColors.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/color/BlockColors.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/color/BlockColors.java +++ ../src-work/minecraft/net/minecraft/client/renderer/color/BlockColors.java -@@ -25,7 +25,8 @@ +@@ -26,7 +26,8 @@ @SideOnly(Side.CLIENT) public class BlockColors { @@ -10,16 +10,16 @@ public static BlockColors func_186723_a() { -@@ -145,7 +146,7 @@ +@@ -146,7 +147,7 @@ - public int func_186724_a(IBlockState p_186724_1_, IBlockAccess p_186724_2_, BlockPos p_186724_3_, int p_186724_4_) + public int func_186724_a(IBlockState p_186724_1_, @Nullable IBlockAccess p_186724_2_, @Nullable BlockPos p_186724_3_, int p_186724_4_) { - IBlockColor iblockcolor = (IBlockColor)this.field_186725_a.func_148745_a(Block.func_149682_b(p_186724_1_.func_177230_c())); + IBlockColor iblockcolor = (IBlockColor)this.blockColorMap.get(p_186724_1_.func_177230_c().delegate); return iblockcolor == null ? -1 : iblockcolor.func_186720_a(p_186724_1_, p_186724_2_, p_186724_3_, p_186724_4_); } -@@ -155,7 +156,9 @@ +@@ -156,7 +157,9 @@ for (int j = p_186722_2_.length; i < j; ++i) { diff --git a/patches/minecraft/net/minecraft/client/renderer/entity/RenderManager.java.patch b/patches/minecraft/net/minecraft/client/renderer/entity/RenderManager.java.patch index 9292829e3d..18e64c359a 100644 --- a/patches/minecraft/net/minecraft/client/renderer/entity/RenderManager.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/entity/RenderManager.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/entity/RenderManager.java +++ ../src-work/minecraft/net/minecraft/client/renderer/entity/RenderManager.java -@@ -204,8 +204,13 @@ +@@ -205,8 +205,13 @@ this.field_178637_m = new RenderPlayer(this); this.field_178636_l.put("default", this.field_178637_m); this.field_178636_l.put("slim", new RenderPlayer(this, true)); @@ -14,7 +14,7 @@ public void func_178628_a(double p_178628_1_, double p_178628_3_, double p_178628_5_) { this.field_78725_b = p_178628_1_; -@@ -253,9 +258,9 @@ +@@ -255,9 +260,9 @@ IBlockState iblockstate = p_180597_1_.func_180495_p(new BlockPos(p_180597_3_)); Block block = iblockstate.func_177230_c(); diff --git a/patches/minecraft/net/minecraft/client/renderer/entity/layers/LayerArmorBase.java.patch b/patches/minecraft/net/minecraft/client/renderer/entity/layers/LayerArmorBase.java.patch index 7d33508e94..11c2dc9ce2 100644 --- a/patches/minecraft/net/minecraft/client/renderer/entity/layers/LayerArmorBase.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/entity/layers/LayerArmorBase.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/entity/layers/LayerArmorBase.java +++ ../src-work/minecraft/net/minecraft/client/renderer/entity/layers/LayerArmorBase.java -@@ -59,29 +59,27 @@ +@@ -60,29 +60,27 @@ T t = this.func_188360_a(p_188361_9_); t.func_178686_a(this.field_177190_a.func_177087_b()); t.func_78086_a(p_188361_1_, p_188361_2_, p_188361_3_, p_188361_4_); @@ -40,7 +40,7 @@ { func_188364_a(this.field_177190_a, p_188361_1_, t, p_188361_2_, p_188361_3_, p_188361_4_, p_188361_5_, p_188361_6_, p_188361_7_, p_188361_8_); } -@@ -140,11 +138,13 @@ +@@ -142,11 +140,13 @@ GlStateManager.func_179084_k(); } @@ -54,7 +54,7 @@ private ResourceLocation func_177178_a(ItemArmor p_177178_1_, boolean p_177178_2_, String p_177178_3_) { String s = String.format("textures/models/armor/%s_layer_%d%s.png", new Object[] {p_177178_1_.func_82812_d().func_179242_c(), Integer.valueOf(p_177178_2_ ? 2 : 1), p_177178_3_ == null ? "" : String.format("_%s", new Object[]{p_177178_3_})}); -@@ -162,4 +162,49 @@ +@@ -164,4 +164,49 @@ protected abstract void func_177177_a(); protected abstract void func_188359_a(T p_188359_1_, EntityEquipmentSlot p_188359_2_); diff --git a/patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch b/patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch index 4622bff373..eecabb7956 100644 --- a/patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/texture/TextureMap.java +++ ../src-work/minecraft/net/minecraft/client/renderer/texture/TextureMap.java -@@ -26,6 +26,7 @@ +@@ -27,6 +27,7 @@ @SideOnly(Side.CLIENT) public class TextureMap extends AbstractTexture implements ITickableTextureObject { @@ -8,17 +8,17 @@ private static final Logger field_147635_d = LogManager.getLogger(); public static final ResourceLocation field_174945_f = new ResourceLocation("missingno"); public static final ResourceLocation field_110575_b = new ResourceLocation("textures/atlas/blocks.png"); -@@ -36,6 +37,7 @@ - private final IIconCreator field_174946_m; +@@ -37,6 +38,7 @@ + private final ITextureMapPopulator field_174946_m; private int field_147636_j; private final TextureAtlasSprite field_94249_f; + private boolean skipFirst = false; public TextureMap(String p_i46099_1_) { -@@ -44,12 +46,23 @@ +@@ -45,12 +47,23 @@ - public TextureMap(String p_i46100_1_, IIconCreator p_i46100_2_) + public TextureMap(String p_i46100_1_, @Nullable ITextureMapPopulator p_i46100_2_) { + this(p_i46100_1_, p_i46100_2_, false); + } @@ -28,7 +28,7 @@ + this(basePathIn, null, skipFirst); + } + -+ public TextureMap(String p_i46100_1_, IIconCreator p_i46100_2_, boolean skipFirst) ++ public TextureMap(String p_i46100_1_, ITextureMapPopulator p_i46100_2_, boolean skipFirst) + { this.field_94258_i = Lists.newArrayList(); this.field_110574_e = Maps.newHashMap(); @@ -40,7 +40,7 @@ } private void func_110569_e() -@@ -88,12 +101,26 @@ +@@ -89,12 +102,26 @@ int j = Integer.MAX_VALUE; int k = 1 << this.field_147636_j; @@ -67,7 +67,7 @@ try { PngSizeInfo pngsizeinfo = PngSizeInfo.func_188532_a(p_110571_1_.func_110536_a(resourcelocation)); -@@ -103,12 +130,14 @@ +@@ -104,12 +131,14 @@ } catch (RuntimeException runtimeexception) { @@ -84,7 +84,7 @@ continue; } finally -@@ -128,6 +157,7 @@ +@@ -129,6 +158,7 @@ stitcher.func_110934_a(textureatlassprite); } @@ -92,7 +92,7 @@ int l = Math.min(j, k); int i1 = MathHelper.func_151239_c(l); -@@ -139,9 +169,12 @@ +@@ -140,9 +170,12 @@ this.field_94249_f.func_147963_d(this.field_147636_j); stitcher.func_110934_a(this.field_94249_f); @@ -105,7 +105,7 @@ stitcher.func_94305_f(); } catch (StitcherException stitcherexception) -@@ -150,11 +183,16 @@ +@@ -151,11 +184,16 @@ } field_147635_d.info("Created: {}x{} {}-atlas", new Object[] {Integer.valueOf(stitcher.func_110935_a()), Integer.valueOf(stitcher.func_110936_b()), this.field_94254_c}); @@ -122,7 +122,7 @@ if (textureatlassprite1 == this.field_94249_f || this.func_184397_a(p_110571_1_, textureatlassprite1)) { String s = textureatlassprite1.func_94215_i(); -@@ -185,6 +223,13 @@ +@@ -186,6 +224,13 @@ { textureatlassprite2.func_94217_a(this.field_94249_f); } @@ -136,7 +136,7 @@ } private boolean func_184397_a(IResourceManager p_184397_1_, final TextureAtlasSprite p_184397_2_) -@@ -194,7 +239,7 @@ +@@ -195,7 +240,7 @@ label9: { boolean flag; @@ -145,7 +145,7 @@ try { iresource = p_184397_1_.func_110536_a(resourcelocation); -@@ -291,7 +336,7 @@ +@@ -292,7 +337,7 @@ } else { @@ -154,7 +154,7 @@ if (textureatlassprite == null) { -@@ -317,4 +362,37 @@ +@@ -318,4 +363,37 @@ { return this.field_94249_f; } diff --git a/patches/minecraft/net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher.java.patch b/patches/minecraft/net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher.java.patch index f5f95ca273..0927701b55 100644 --- a/patches/minecraft/net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher.java +++ ../src-work/minecraft/net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher.java -@@ -106,11 +106,14 @@ +@@ -108,11 +108,14 @@ { if (p_180546_1_.func_145835_a(this.field_147560_j, this.field_147561_k, this.field_147558_l) < p_180546_1_.func_145833_n()) { @@ -15,7 +15,7 @@ BlockPos blockpos = p_180546_1_.func_174877_v(); this.func_178469_a(p_180546_1_, (double)blockpos.func_177958_n() - field_147554_b, (double)blockpos.func_177956_o() - field_147555_c, (double)blockpos.func_177952_p() - field_147552_d, p_180546_2_, p_180546_3_); } -@@ -129,6 +132,11 @@ +@@ -131,6 +134,11 @@ { try { @@ -27,7 +27,7 @@ tileentityspecialrenderer.func_180535_a(p_178469_1_, p_178469_2_, p_178469_4_, p_178469_6_, p_178469_8_, p_178469_9_); } catch (Throwable throwable) -@@ -155,4 +163,52 @@ +@@ -157,4 +165,52 @@ { return this.field_147557_n; } diff --git a/patches/minecraft/net/minecraft/client/resources/AbstractResourcePack.java.patch b/patches/minecraft/net/minecraft/client/resources/AbstractResourcePack.java.patch index 375865cd44..8f378ff418 100644 --- a/patches/minecraft/net/minecraft/client/resources/AbstractResourcePack.java.patch +++ b/patches/minecraft/net/minecraft/client/resources/AbstractResourcePack.java.patch @@ -8,4 +8,4 @@ + field_110598_a.warn("ResourcePack: ignored non-lowercase namespace: {} in {}", new Object[] {p_110594_1_, this.field_110597_b}); } - public T func_135058_a(IMetadataSerializer p_135058_1_, String p_135058_2_) throws IOException + public T func_135058_a(MetadataSerializer p_135058_1_, String p_135058_2_) throws IOException diff --git a/patches/minecraft/net/minecraft/client/resources/SimpleReloadableResourceManager.java.patch b/patches/minecraft/net/minecraft/client/resources/SimpleReloadableResourceManager.java.patch index 5dd733b353..297e9f8438 100644 --- a/patches/minecraft/net/minecraft/client/resources/SimpleReloadableResourceManager.java.patch +++ b/patches/minecraft/net/minecraft/client/resources/SimpleReloadableResourceManager.java.patch @@ -1,14 +1,14 @@ --- ../src-base/minecraft/net/minecraft/client/resources/SimpleReloadableResourceManager.java +++ ../src-work/minecraft/net/minecraft/client/resources/SimpleReloadableResourceManager.java -@@ -92,6 +92,7 @@ +@@ -93,6 +93,7 @@ public void func_110541_a(List p_110541_1_) { this.func_110543_a(); + net.minecraftforge.fml.common.ProgressManager.ProgressBar resReload = net.minecraftforge.fml.common.ProgressManager.push("Loading Resources", p_110541_1_.size()+1, true); field_147967_a.info("Reloading ResourceManager: " + field_130074_a.join(Iterables.transform(p_110541_1_, new Function() { - public String apply(IResourcePack p_apply_1_) -@@ -102,23 +103,32 @@ + public String apply(@Nullable IResourcePack p_apply_1_) +@@ -103,23 +104,32 @@ for (IResourcePack iresourcepack : p_110541_1_) { diff --git a/patches/minecraft/net/minecraft/client/settings/GameSettings.java.patch b/patches/minecraft/net/minecraft/client/settings/GameSettings.java.patch index affbeca4f3..33730ce005 100644 --- a/patches/minecraft/net/minecraft/client/settings/GameSettings.java.patch +++ b/patches/minecraft/net/minecraft/client/settings/GameSettings.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/client/settings/GameSettings.java +++ ../src-work/minecraft/net/minecraft/client/settings/GameSettings.java -@@ -147,6 +147,7 @@ +@@ -148,6 +148,7 @@ public GameSettings(Minecraft p_i46326_1_, File p_i46326_2_) { @@ -8,7 +8,7 @@ this.field_74324_K = (KeyBinding[])ArrayUtils.addAll(new KeyBinding[] {this.field_74312_F, this.field_74313_G, this.field_74351_w, this.field_74370_x, this.field_74368_y, this.field_74366_z, this.field_74314_A, this.field_74311_E, this.field_151444_V, this.field_74316_C, this.field_151445_Q, this.field_74310_D, this.field_74321_H, this.field_74322_I, this.field_74323_J, this.field_151447_Z, this.field_151457_aa, this.field_151458_ab, this.field_152395_am, this.field_178883_an, this.field_186718_X}, this.field_151456_ac); this.field_74318_M = EnumDifficulty.NORMAL; this.field_74332_R = ""; -@@ -171,6 +172,7 @@ +@@ -172,6 +173,7 @@ public GameSettings() { @@ -16,7 +16,7 @@ this.field_74324_K = (KeyBinding[])ArrayUtils.addAll(new KeyBinding[] {this.field_74312_F, this.field_74313_G, this.field_74351_w, this.field_74370_x, this.field_74368_y, this.field_74366_z, this.field_74314_A, this.field_74311_E, this.field_151444_V, this.field_74316_C, this.field_151445_Q, this.field_74310_D, this.field_74321_H, this.field_74322_I, this.field_74323_J, this.field_151447_Z, this.field_151457_aa, this.field_151458_ab, this.field_152395_am, this.field_178883_an, this.field_186718_X}, this.field_151456_ac); this.field_74318_M = EnumDifficulty.NORMAL; this.field_74332_R = ""; -@@ -846,6 +848,7 @@ +@@ -854,6 +856,7 @@ if (astring[0].equals("key_" + keybinding.func_151464_g())) { keybinding.func_151462_b(Integer.parseInt(astring[1])); @@ -24,7 +24,7 @@ } } -@@ -887,6 +890,7 @@ +@@ -895,6 +898,7 @@ public void func_74303_b() { @@ -32,7 +32,7 @@ try { PrintWriter printwriter = new PrintWriter(new FileWriter(this.field_74354_ai)); -@@ -955,7 +959,8 @@ +@@ -964,7 +968,8 @@ for (KeyBinding keybinding : this.field_74324_K) { @@ -42,7 +42,7 @@ } for (SoundCategory soundcategory : SoundCategory.values()) -@@ -1184,4 +1189,24 @@ +@@ -1194,4 +1199,24 @@ return p_148264_1_; } } diff --git a/patches/minecraft/net/minecraft/command/CommandEnchant.java.patch b/patches/minecraft/net/minecraft/command/CommandEnchant.java.patch index f3ca18c30e..1c81e8d788 100644 --- a/patches/minecraft/net/minecraft/command/CommandEnchant.java.patch +++ b/patches/minecraft/net/minecraft/command/CommandEnchant.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/command/CommandEnchant.java +++ ../src-work/minecraft/net/minecraft/command/CommandEnchant.java -@@ -85,7 +85,7 @@ +@@ -86,7 +86,7 @@ { Enchantment enchantment1 = Enchantment.func_185262_c(k); diff --git a/patches/minecraft/net/minecraft/command/CommandFill.java.patch b/patches/minecraft/net/minecraft/command/CommandFill.java.patch index 38da66d370..a460788470 100644 --- a/patches/minecraft/net/minecraft/command/CommandFill.java.patch +++ b/patches/minecraft/net/minecraft/command/CommandFill.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/command/CommandFill.java +++ ../src-work/minecraft/net/minecraft/command/CommandFill.java -@@ -50,6 +50,7 @@ +@@ -51,6 +51,7 @@ { i = func_175764_a(p_184881_3_[7], 0, 15); } @@ -8,7 +8,7 @@ BlockPos blockpos2 = new BlockPos(Math.min(blockpos.func_177958_n(), blockpos1.func_177958_n()), Math.min(blockpos.func_177956_o(), blockpos1.func_177956_o()), Math.min(blockpos.func_177952_p(), blockpos1.func_177952_p())); BlockPos blockpos3 = new BlockPos(Math.max(blockpos.func_177958_n(), blockpos1.func_177958_n()), Math.max(blockpos.func_177956_o(), blockpos1.func_177956_o()), Math.max(blockpos.func_177952_p(), blockpos1.func_177952_p())); -@@ -77,7 +78,7 @@ +@@ -78,7 +79,7 @@ NBTTagCompound nbttagcompound = new NBTTagCompound(); boolean flag = false; @@ -17,7 +17,7 @@ { String s = func_147178_a(p_184881_2_, p_184881_3_, 9).func_150260_c(); -@@ -118,7 +119,7 @@ +@@ -119,7 +120,7 @@ continue; } } diff --git a/patches/minecraft/net/minecraft/command/CommandHandler.java.patch b/patches/minecraft/net/minecraft/command/CommandHandler.java.patch index 0b22b88a0d..83be37bcc8 100644 --- a/patches/minecraft/net/minecraft/command/CommandHandler.java.patch +++ b/patches/minecraft/net/minecraft/command/CommandHandler.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/command/CommandHandler.java +++ ../src-work/minecraft/net/minecraft/command/CommandHandler.java -@@ -46,6 +46,16 @@ +@@ -47,6 +47,16 @@ } else if (icommand.func_184882_a(this.func_184879_a(), p_71556_1_)) { @@ -17,7 +17,7 @@ if (i > -1) { List list = EntitySelector.func_179656_b(p_71556_1_, astring[i], Entity.class); -@@ -109,7 +119,7 @@ +@@ -110,7 +120,7 @@ TextComponentTranslation textcomponenttranslation = new TextComponentTranslation("commands.generic.exception", new Object[0]); textcomponenttranslation.func_150256_b().func_150238_a(TextFormatting.RED); p_175786_1_.func_145747_a(textcomponenttranslation); diff --git a/patches/minecraft/net/minecraft/command/EntitySelector.java.patch b/patches/minecraft/net/minecraft/command/EntitySelector.java.patch index b93a59d9e9..7780106b22 100644 --- a/patches/minecraft/net/minecraft/command/EntitySelector.java.patch +++ b/patches/minecraft/net/minecraft/command/EntitySelector.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/command/EntitySelector.java +++ ../src-work/minecraft/net/minecraft/command/EntitySelector.java -@@ -36,9 +36,9 @@ +@@ -37,9 +37,9 @@ public class EntitySelector { @@ -11,4 +11,4 @@ + private static final Pattern field_82388_c = Pattern.compile("\\G(\\w+)=([-!]?[\\w\\.-]*)(?:$|,)"); // FORGE: allow . in entity selectors private static final Set field_179666_d = Sets.newHashSet(new String[] {"x", "y", "z", "dx", "dy", "dz", "rm", "r"}); - public static EntityPlayerMP func_82386_a(ICommandSender p_82386_0_, String p_82386_1_) + @Nullable diff --git a/patches/minecraft/net/minecraft/command/server/CommandSetBlock.java.patch b/patches/minecraft/net/minecraft/command/server/CommandSetBlock.java.patch index fcb4ea652b..79c11fd388 100644 --- a/patches/minecraft/net/minecraft/command/server/CommandSetBlock.java.patch +++ b/patches/minecraft/net/minecraft/command/server/CommandSetBlock.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/command/server/CommandSetBlock.java +++ ../src-work/minecraft/net/minecraft/command/server/CommandSetBlock.java -@@ -54,6 +54,8 @@ +@@ -55,6 +55,8 @@ i = func_175764_a(p_184881_3_[4], 0, 15); } @@ -9,7 +9,7 @@ World world = p_184881_2_.func_130014_f_(); if (!world.func_175667_e(blockpos)) -@@ -65,7 +67,7 @@ +@@ -66,7 +68,7 @@ NBTTagCompound nbttagcompound = new NBTTagCompound(); boolean flag = false; diff --git a/patches/minecraft/net/minecraft/command/server/CommandTestForBlock.java.patch b/patches/minecraft/net/minecraft/command/server/CommandTestForBlock.java.patch index 4a1533789a..640ab078bc 100644 --- a/patches/minecraft/net/minecraft/command/server/CommandTestForBlock.java.patch +++ b/patches/minecraft/net/minecraft/command/server/CommandTestForBlock.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/command/server/CommandTestForBlock.java +++ ../src-work/minecraft/net/minecraft/command/server/CommandTestForBlock.java -@@ -72,7 +72,7 @@ +@@ -73,7 +73,7 @@ NBTTagCompound nbttagcompound = new NBTTagCompound(); boolean flag = false; diff --git a/patches/minecraft/net/minecraft/crash/CrashReport.java.patch b/patches/minecraft/net/minecraft/crash/CrashReport.java.patch index 7b4d498c80..bc4c866cf1 100644 --- a/patches/minecraft/net/minecraft/crash/CrashReport.java.patch +++ b/patches/minecraft/net/minecraft/crash/CrashReport.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/crash/CrashReport.java +++ ../src-work/minecraft/net/minecraft/crash/CrashReport.java -@@ -115,6 +115,7 @@ +@@ -114,6 +114,7 @@ return IntCache.func_85144_b(); } }); diff --git a/patches/minecraft/net/minecraft/crash/CrashReportCategory.java.patch b/patches/minecraft/net/minecraft/crash/CrashReportCategory.java.patch index ab4e3edde9..ad471ba84d 100644 --- a/patches/minecraft/net/minecraft/crash/CrashReportCategory.java.patch +++ b/patches/minecraft/net/minecraft/crash/CrashReportCategory.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/crash/CrashReportCategory.java +++ ../src-work/minecraft/net/minecraft/crash/CrashReportCategory.java -@@ -122,8 +122,11 @@ +@@ -121,8 +121,11 @@ } else { diff --git a/patches/minecraft/net/minecraft/enchantment/Enchantment.java.patch b/patches/minecraft/net/minecraft/enchantment/Enchantment.java.patch index 682828fbba..3195fd27c5 100644 --- a/patches/minecraft/net/minecraft/enchantment/Enchantment.java.patch +++ b/patches/minecraft/net/minecraft/enchantment/Enchantment.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/enchantment/Enchantment.java +++ ../src-work/minecraft/net/minecraft/enchantment/Enchantment.java -@@ -12,9 +12,9 @@ +@@ -13,9 +13,9 @@ import net.minecraft.util.registry.RegistryNamespaced; import net.minecraft.util.text.translation.I18n; @@ -12,7 +12,7 @@ private final EntityEquipmentSlot[] field_185263_a; private final Enchantment.Rarity field_77333_a; public EnumEnchantmentType field_77351_y; -@@ -118,7 +118,7 @@ +@@ -122,7 +122,7 @@ public boolean func_92089_a(ItemStack p_92089_1_) { @@ -21,7 +21,7 @@ } public void func_151368_a(EntityLivingBase p_151368_1_, Entity p_151368_2_, int p_151368_3_) -@@ -134,6 +134,26 @@ +@@ -138,6 +138,26 @@ return false; } diff --git a/patches/minecraft/net/minecraft/enchantment/EnchantmentHelper.java.patch b/patches/minecraft/net/minecraft/enchantment/EnchantmentHelper.java.patch index e874421c40..85d71dd202 100644 --- a/patches/minecraft/net/minecraft/enchantment/EnchantmentHelper.java.patch +++ b/patches/minecraft/net/minecraft/enchantment/EnchantmentHelper.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/enchantment/EnchantmentHelper.java +++ ../src-work/minecraft/net/minecraft/enchantment/EnchantmentHelper.java -@@ -292,7 +292,7 @@ +@@ -294,7 +294,7 @@ public static int func_77514_a(Random p_77514_0_, int p_77514_1_, int p_77514_2_, ItemStack p_77514_3_) { Item item = p_77514_3_.func_77973_b(); @@ -9,7 +9,7 @@ if (i <= 0) { -@@ -339,7 +339,7 @@ +@@ -341,7 +341,7 @@ { List list = Lists.newArrayList(); Item item = p_77513_1_.func_77973_b(); @@ -18,7 +18,7 @@ if (i <= 0) { -@@ -380,7 +380,8 @@ +@@ -382,7 +382,8 @@ while (iterator.hasNext()) { @@ -28,7 +28,7 @@ { iterator.remove(); } -@@ -395,7 +396,7 @@ +@@ -397,7 +398,7 @@ for (Enchantment enchantment : Enchantment.field_185264_b) { diff --git a/patches/minecraft/net/minecraft/entity/Entity.java.patch b/patches/minecraft/net/minecraft/entity/Entity.java.patch index 8e8301095e..e0550d3937 100644 --- a/patches/minecraft/net/minecraft/entity/Entity.java.patch +++ b/patches/minecraft/net/minecraft/entity/Entity.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/Entity.java +++ ../src-work/minecraft/net/minecraft/entity/Entity.java -@@ -76,7 +76,7 @@ +@@ -77,7 +77,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -9,7 +9,7 @@ { private static final Logger field_184243_a = LogManager.getLogger(); private static final AxisAlignedBB field_174836_a = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.0D, 0.0D, 0.0D); -@@ -185,7 +185,7 @@ +@@ -188,7 +188,7 @@ if (p_i1582_1_ != null) { @@ -18,7 +18,7 @@ } this.field_70180_af = new EntityDataManager(this); -@@ -195,8 +195,16 @@ +@@ -198,8 +198,16 @@ this.field_70180_af.func_187214_a(field_184242_az, ""); this.field_70180_af.func_187214_a(field_184234_aB, Boolean.valueOf(false)); this.func_70088_a(); @@ -35,7 +35,7 @@ public int func_145782_y() { return this.field_145783_c; -@@ -1134,12 +1142,12 @@ +@@ -1138,12 +1146,12 @@ BlockPos blockpos = new BlockPos(this.field_70165_t, d0, this.field_70161_v); IBlockState iblockstate = this.field_70170_p.func_180495_p(blockpos); @@ -52,17 +52,17 @@ } else { -@@ -1534,6 +1542,9 @@ - p_70109_1_.func_74782_a("Tags", nbttaglist); +@@ -1539,6 +1547,9 @@ + p_189511_1_.func_74782_a("Tags", nbttaglist); } -+ if (customEntityData != null) p_70109_1_.func_74782_a("ForgeData", customEntityData); -+ if (this.capabilities != null) p_70109_1_.func_74782_a("ForgeCaps", this.capabilities.serializeNBT()); ++ if (customEntityData != null) p_189511_1_.func_74782_a("ForgeData", customEntityData); ++ if (this.capabilities != null) p_189511_1_.func_74782_a("ForgeCaps", this.capabilities.serializeNBT()); + - this.func_70014_b(p_70109_1_); + this.func_70014_b(p_189511_1_); if (this.func_184207_aI()) -@@ -1629,6 +1640,9 @@ +@@ -1637,6 +1648,9 @@ this.func_174810_b(p_70020_1_.func_74767_n("Silent")); this.func_184195_f(p_70020_1_.func_74767_n("Glowing")); @@ -72,7 +72,7 @@ if (p_70020_1_.func_150297_b("Tags", 9)) { this.field_184236_aF.clear(); -@@ -1715,7 +1729,10 @@ +@@ -1723,7 +1737,10 @@ { EntityItem entityitem = new EntityItem(this.field_70170_p, this.field_70165_t, this.field_70163_u + (double)p_70099_2_, this.field_70161_v, p_70099_1_); entityitem.func_174869_p(); @@ -84,7 +84,7 @@ return entityitem; } else -@@ -1824,6 +1841,7 @@ +@@ -1833,6 +1850,7 @@ public boolean func_184205_a(Entity p_184205_1_, boolean p_184205_2_) { @@ -92,7 +92,7 @@ if (p_184205_2_ || this.func_184228_n(p_184205_1_) && p_184205_1_.func_184219_q(this)) { if (this.func_184218_aH()) -@@ -2279,6 +2297,7 @@ +@@ -2289,6 +2307,7 @@ { if (!this.field_70170_p.field_72995_K && !this.field_70128_L) { @@ -100,7 +100,7 @@ this.field_70170_p.field_72984_F.func_76320_a("changeDimension"); MinecraftServer minecraftserver = this.func_184102_h(); int i = this.field_71093_bK; -@@ -2372,7 +2391,7 @@ +@@ -2382,7 +2401,7 @@ public float func_180428_a(Explosion p_180428_1_, World p_180428_2_, BlockPos p_180428_3_, IBlockState p_180428_4_) { @@ -109,7 +109,7 @@ } public boolean func_174816_a(Explosion p_174816_1_, World p_174816_2_, BlockPos p_174816_3_, IBlockState p_174816_4_, float p_174816_5_) -@@ -2662,6 +2681,165 @@ +@@ -2679,6 +2698,164 @@ EnchantmentHelper.func_151385_b(p_174815_1_, p_174815_2_); } @@ -267,8 +267,7 @@ + { + NBTTagCompound ret = new NBTTagCompound(); + ret.func_74778_a("id", this.func_70022_Q()); -+ this.func_70109_d(ret); -+ return ret; ++ return this.func_189511_e(ret); + } + /* ================================== Forge End =====================================*/ + diff --git a/patches/minecraft/net/minecraft/entity/EntityHanging.java.patch b/patches/minecraft/net/minecraft/entity/EntityHanging.java.patch index e81fbae7b8..cfa7729214 100644 --- a/patches/minecraft/net/minecraft/entity/EntityHanging.java.patch +++ b/patches/minecraft/net/minecraft/entity/EntityHanging.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/EntityHanging.java +++ ../src-work/minecraft/net/minecraft/entity/EntityHanging.java -@@ -139,6 +139,9 @@ +@@ -141,6 +141,9 @@ BlockPos blockpos1 = blockpos.func_177967_a(enumfacing, k + i1).func_177981_b(l + j1); IBlockState iblockstate = this.field_70170_p.func_180495_p(blockpos1); diff --git a/patches/minecraft/net/minecraft/entity/EntityList.java.patch b/patches/minecraft/net/minecraft/entity/EntityList.java.patch index 968ebb6115..ca7396ad22 100644 --- a/patches/minecraft/net/minecraft/entity/EntityList.java.patch +++ b/patches/minecraft/net/minecraft/entity/EntityList.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/EntityList.java +++ ../src-work/minecraft/net/minecraft/entity/EntityList.java -@@ -91,6 +91,7 @@ +@@ -92,6 +92,7 @@ public static void func_75618_a(Class p_75618_0_, String p_75618_1_, int p_75618_2_) { @@ -8,7 +8,7 @@ if (field_75625_b.containsKey(p_75618_1_)) { throw new IllegalArgumentException("ID is already registered: " + p_75618_1_); -@@ -148,9 +149,10 @@ +@@ -151,9 +152,10 @@ { Entity entity = null; @@ -20,7 +20,7 @@ if (oclass != null) { -@@ -164,7 +166,17 @@ +@@ -167,7 +169,17 @@ if (entity != null) { @@ -38,8 +38,8 @@ } else { -@@ -202,7 +214,8 @@ - +@@ -207,7 +219,8 @@ + @Nullable public static Entity func_188429_b(String p_188429_0_, World p_188429_1_) { - return func_75616_a(func_180122_a(p_188429_0_), p_188429_1_); diff --git a/patches/minecraft/net/minecraft/entity/EntityLiving.java.patch b/patches/minecraft/net/minecraft/entity/EntityLiving.java.patch index a65718d5ff..c0a795da8b 100644 --- a/patches/minecraft/net/minecraft/entity/EntityLiving.java.patch +++ b/patches/minecraft/net/minecraft/entity/EntityLiving.java.patch @@ -1,14 +1,14 @@ --- ../src-base/minecraft/net/minecraft/entity/EntityLiving.java +++ ../src-work/minecraft/net/minecraft/entity/EntityLiving.java -@@ -171,6 +171,7 @@ - public void func_70624_b(EntityLivingBase p_70624_1_) +@@ -174,6 +174,7 @@ + public void func_70624_b(@Nullable EntityLivingBase p_70624_1_) { this.field_70696_bz = p_70624_1_; + net.minecraftforge.common.ForgeHooks.onLivingSetAttackTarget(this, p_70624_1_); } public boolean func_70686_a(Class p_70686_1_) -@@ -699,10 +700,22 @@ +@@ -705,10 +706,22 @@ protected void func_70623_bb() { @@ -31,7 +31,7 @@ else { Entity entity = this.field_70170_p.func_72890_a(this, -1.0D); -@@ -835,7 +848,6 @@ +@@ -841,7 +854,6 @@ return !this.field_70170_p.func_72953_d(this.func_174813_aQ()) && this.field_70170_p.func_184144_a(this, this.func_174813_aQ()).isEmpty() && this.field_70170_p.func_72917_a(this.func_174813_aQ(), this); } diff --git a/patches/minecraft/net/minecraft/entity/EntityLivingBase.java.patch b/patches/minecraft/net/minecraft/entity/EntityLivingBase.java.patch index 314387c0c4..aaf06f3bc9 100644 --- a/patches/minecraft/net/minecraft/entity/EntityLivingBase.java.patch +++ b/patches/minecraft/net/minecraft/entity/EntityLivingBase.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/EntityLivingBase.java +++ ../src-work/minecraft/net/minecraft/entity/EntityLivingBase.java -@@ -189,10 +189,11 @@ +@@ -191,10 +191,11 @@ { float f = (float)MathHelper.func_76123_f(this.field_70143_R - 3.0F); @@ -13,7 +13,7 @@ ((WorldServer)this.field_70170_p).func_175739_a(EnumParticleTypes.BLOCK_DUST, this.field_70165_t, this.field_70163_u, this.field_70161_v, i, 0.0D, 0.0D, 0.0D, 0.15000000596046448D, new int[] {Block.func_176210_f(p_184231_4_)}); } } -@@ -264,7 +265,7 @@ +@@ -271,7 +272,7 @@ } } @@ -22,7 +22,7 @@ { this.func_184210_p(); } -@@ -363,7 +364,7 @@ +@@ -370,7 +371,7 @@ if (!this.field_70170_p.field_72995_K && (this.func_70684_aJ() || this.field_70718_bc > 0 && this.func_146066_aG() && this.field_70170_p.func_82736_K().func_82766_b("doMobLoot"))) { int i = this.func_70693_a(this.field_70717_bb); @@ -31,7 +31,7 @@ while (i > 0) { int j = EntityXPOrb.func_70527_a(i); -@@ -424,6 +425,7 @@ +@@ -431,6 +432,7 @@ { this.field_70755_b = p_70604_1_; this.field_70756_c = this.field_70173_aa; @@ -39,7 +39,7 @@ } public EntityLivingBase func_110144_aD() -@@ -775,6 +777,8 @@ +@@ -784,6 +786,8 @@ public void func_70691_i(float p_70691_1_) { @@ -48,7 +48,7 @@ float f = this.func_110143_aJ(); if (f > 0.0F) -@@ -795,6 +799,7 @@ +@@ -804,6 +808,7 @@ public boolean func_70097_a(DamageSource p_70097_1_, float p_70097_2_) { @@ -56,7 +56,7 @@ if (this.func_180431_b(p_70097_1_)) { return false; -@@ -883,9 +888,9 @@ +@@ -892,9 +897,9 @@ this.field_70718_bc = 100; this.field_70717_bb = (EntityPlayer)entity; } @@ -68,7 +68,7 @@ if (entitywolf.func_70909_n()) { -@@ -1007,6 +1012,7 @@ +@@ -1016,6 +1021,7 @@ public void func_70645_a(DamageSource p_70645_1_) { @@ -76,7 +76,7 @@ if (!this.field_70729_aU) { Entity entity = p_70645_1_.func_76346_g(); -@@ -1034,11 +1040,24 @@ +@@ -1043,11 +1049,24 @@ i = EnchantmentHelper.func_185283_h((EntityLivingBase)entity); } @@ -101,7 +101,7 @@ } this.field_70170_p.func_72960_a(this, (byte)3); -@@ -1113,7 +1132,7 @@ +@@ -1124,7 +1143,7 @@ BlockPos blockpos = new BlockPos(i, j, k); IBlockState iblockstate = this.field_70170_p.func_180495_p(blockpos); Block block = iblockstate.func_177230_c(); @@ -110,7 +110,7 @@ } } -@@ -1139,6 +1158,9 @@ +@@ -1150,6 +1169,9 @@ public void func_180430_e(float p_180430_1_, float p_180430_2_) { @@ -120,7 +120,7 @@ super.func_180430_e(p_180430_1_, p_180430_2_); PotionEffect potioneffect = this.func_70660_b(MobEffects.field_76430_j); float f = potioneffect == null ? 0.0F : (float)(potioneffect.func_76458_c() + 1); -@@ -1231,6 +1253,8 @@ +@@ -1242,6 +1264,8 @@ { if (!this.func_180431_b(p_70665_1_)) { @@ -129,7 +129,7 @@ p_70665_2_ = this.func_70655_b(p_70665_1_, p_70665_2_); p_70665_2_ = this.func_70672_c(p_70665_1_, p_70665_2_); float f = p_70665_2_; -@@ -1279,6 +1303,11 @@ +@@ -1290,6 +1314,11 @@ public void func_184609_a(EnumHand p_184609_1_) { @@ -141,7 +141,7 @@ if (!this.field_82175_bq || this.field_110158_av >= this.func_82166_i() / 2 || this.field_110158_av < 0) { this.field_110158_av = -1; -@@ -1476,6 +1505,7 @@ +@@ -1491,6 +1520,7 @@ public void func_110145_l(Entity p_110145_1_) { @@ -149,7 +149,7 @@ if (!(p_110145_1_ instanceof EntityBoat) && !(p_110145_1_ instanceof EntityHorse)) { double d1 = p_110145_1_.field_70165_t; -@@ -1500,7 +1530,7 @@ +@@ -1515,7 +1545,7 @@ if (!this.field_70170_p.func_184143_b(axisalignedbb1)) { @@ -158,7 +158,7 @@ { this.func_70634_a(d11, this.field_70163_u + 1.0D, d12); return; -@@ -1508,14 +1538,14 @@ +@@ -1523,14 +1553,14 @@ BlockPos blockpos = new BlockPos(d11, this.field_70163_u - 1.0D, d12); @@ -175,7 +175,7 @@ { d1 = d11; d13 = this.field_70163_u + 2.0D; -@@ -1586,6 +1616,7 @@ +@@ -1601,6 +1631,7 @@ } this.field_70160_al = true; @@ -183,7 +183,7 @@ } protected void func_70629_bd() -@@ -1845,6 +1876,7 @@ +@@ -1860,6 +1891,7 @@ public void func_70071_h_() { @@ -191,7 +191,7 @@ super.func_70071_h_(); this.func_184608_ct(); -@@ -2351,6 +2383,40 @@ +@@ -2366,6 +2398,40 @@ this.field_70752_e = true; } @@ -232,7 +232,7 @@ public abstract EnumHandSide func_184591_cq(); public boolean func_184587_cr() -@@ -2371,12 +2437,19 @@ +@@ -2386,12 +2452,19 @@ if (itemstack == this.field_184627_bm) { @@ -253,7 +253,7 @@ { this.func_71036_o(); } -@@ -2394,8 +2467,10 @@ +@@ -2409,8 +2482,10 @@ if (itemstack != null && !this.func_184587_cr()) { @@ -265,7 +265,7 @@ if (!this.field_70170_p.field_72995_K) { -@@ -2478,6 +2553,8 @@ +@@ -2493,6 +2568,8 @@ this.func_184584_a(this.field_184627_bm, 16); ItemStack itemstack = this.field_184627_bm.func_77950_b(this.field_70170_p, this); @@ -274,7 +274,7 @@ if (itemstack != null && itemstack.field_77994_a == 0) { itemstack = null; -@@ -2507,7 +2584,8 @@ +@@ -2523,7 +2600,8 @@ { if (this.field_184627_bm != null) { @@ -284,7 +284,7 @@ } this.func_184602_cy(); -@@ -2626,4 +2704,28 @@ +@@ -2642,4 +2720,28 @@ { return true; } diff --git a/patches/minecraft/net/minecraft/entity/boss/EntityDragon.java.patch b/patches/minecraft/net/minecraft/entity/boss/EntityDragon.java.patch index 6b9c7e6d51..72ccd5a0a2 100644 --- a/patches/minecraft/net/minecraft/entity/boss/EntityDragon.java.patch +++ b/patches/minecraft/net/minecraft/entity/boss/EntityDragon.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/boss/EntityDragon.java +++ ../src-work/minecraft/net/minecraft/entity/boss/EntityDragon.java -@@ -474,13 +474,13 @@ +@@ -475,13 +475,13 @@ IBlockState iblockstate = this.field_70170_p.func_180495_p(blockpos); Block block = iblockstate.func_177230_c(); diff --git a/patches/minecraft/net/minecraft/entity/boss/EntityWither.java.patch b/patches/minecraft/net/minecraft/entity/boss/EntityWither.java.patch index dcbec8406c..541e55bde4 100644 --- a/patches/minecraft/net/minecraft/entity/boss/EntityWither.java.patch +++ b/patches/minecraft/net/minecraft/entity/boss/EntityWither.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/boss/EntityWither.java +++ ../src-work/minecraft/net/minecraft/entity/boss/EntityWither.java -@@ -365,7 +365,7 @@ +@@ -366,7 +366,7 @@ IBlockState iblockstate = this.field_70170_p.func_180495_p(blockpos); Block block = iblockstate.func_177230_c(); diff --git a/patches/minecraft/net/minecraft/entity/item/EntityFallingBlock.java.patch b/patches/minecraft/net/minecraft/entity/item/EntityFallingBlock.java.patch index 456c02616d..d92bedd8b9 100644 --- a/patches/minecraft/net/minecraft/entity/item/EntityFallingBlock.java.patch +++ b/patches/minecraft/net/minecraft/entity/item/EntityFallingBlock.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/item/EntityFallingBlock.java +++ ../src-work/minecraft/net/minecraft/entity/item/EntityFallingBlock.java -@@ -129,6 +129,7 @@ +@@ -130,6 +130,7 @@ { IBlockState iblockstate = this.field_70170_p.func_180495_p(blockpos1); diff --git a/patches/minecraft/net/minecraft/entity/item/EntityItem.java.patch b/patches/minecraft/net/minecraft/entity/item/EntityItem.java.patch index d375ace01f..6ef7111742 100644 --- a/patches/minecraft/net/minecraft/entity/item/EntityItem.java.patch +++ b/patches/minecraft/net/minecraft/entity/item/EntityItem.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/item/EntityItem.java +++ ../src-work/minecraft/net/minecraft/entity/item/EntityItem.java -@@ -37,6 +37,11 @@ +@@ -38,6 +38,11 @@ private String field_145802_g; public float field_70290_d; @@ -12,7 +12,7 @@ public EntityItem(World p_i1709_1_, double p_i1709_2_, double p_i1709_4_, double p_i1709_6_) { super(p_i1709_1_); -@@ -54,6 +59,7 @@ +@@ -55,6 +60,7 @@ { this(p_i1710_1_, p_i1710_2_, p_i1710_4_, p_i1710_6_); this.func_92058_a(p_i1710_8_); @@ -20,7 +20,7 @@ } protected boolean func_70041_e_() -@@ -77,6 +83,8 @@ +@@ -78,6 +84,8 @@ public void func_70071_h_() { @@ -29,7 +29,7 @@ if (this.func_92059_d() == null) { this.func_70106_y(); -@@ -137,8 +145,16 @@ +@@ -138,8 +146,16 @@ this.func_70072_I(); @@ -47,7 +47,7 @@ this.func_70106_y(); } } -@@ -279,6 +295,7 @@ +@@ -280,6 +296,7 @@ p_70014_1_.func_74777_a("Health", (short)this.field_70291_e); p_70014_1_.func_74777_a("Age", (short)this.field_70292_b); p_70014_1_.func_74777_a("PickupDelay", (short)this.field_145804_b); @@ -55,7 +55,7 @@ if (this.func_145800_j() != null) { -@@ -319,20 +336,23 @@ +@@ -320,20 +337,23 @@ NBTTagCompound nbttagcompound = p_70037_1_.func_74775_l("Item"); this.func_92058_a(ItemStack.func_77949_a(nbttagcompound)); @@ -84,7 +84,7 @@ { if (itemstack.func_77973_b() == Item.func_150898_a(Blocks.field_150364_r)) { -@@ -369,6 +389,7 @@ +@@ -370,6 +390,7 @@ } } @@ -92,7 +92,7 @@ if (!this.func_174814_R()) { this.field_70170_p.func_184148_a((EntityPlayer)null, p_70100_1_.field_70165_t, p_70100_1_.field_70163_u, p_70100_1_.field_70161_v, SoundEvents.field_187638_cR, SoundCategory.PLAYERS, 0.2F, ((this.field_70146_Z.nextFloat() - this.field_70146_Z.nextFloat()) * 0.7F + 1.0F) * 2.0F); -@@ -414,11 +435,6 @@ +@@ -416,11 +437,6 @@ if (itemstack == null) { @@ -104,7 +104,7 @@ return new ItemStack(Blocks.field_150348_b); } else -@@ -492,6 +508,6 @@ +@@ -494,6 +510,6 @@ public void func_174870_v() { this.func_174871_r(); diff --git a/patches/minecraft/net/minecraft/entity/item/EntityItemFrame.java.patch b/patches/minecraft/net/minecraft/entity/item/EntityItemFrame.java.patch index 122e9e82da..6491831b4b 100644 --- a/patches/minecraft/net/minecraft/entity/item/EntityItemFrame.java.patch +++ b/patches/minecraft/net/minecraft/entity/item/EntityItemFrame.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/item/EntityItemFrame.java +++ ../src-work/minecraft/net/minecraft/entity/item/EntityItemFrame.java -@@ -137,7 +137,7 @@ +@@ -138,7 +138,7 @@ { if (p_110131_1_ != null) { diff --git a/patches/minecraft/net/minecraft/entity/item/EntityMinecart.java.patch b/patches/minecraft/net/minecraft/entity/item/EntityMinecart.java.patch index 68d0f1ab3a..fc9c5cd4e2 100644 --- a/patches/minecraft/net/minecraft/entity/item/EntityMinecart.java.patch +++ b/patches/minecraft/net/minecraft/entity/item/EntityMinecart.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/item/EntityMinecart.java +++ ../src-work/minecraft/net/minecraft/entity/item/EntityMinecart.java -@@ -54,6 +54,20 @@ +@@ -55,6 +55,20 @@ @SideOnly(Side.CLIENT) private double field_70506_as; @@ -21,14 +21,15 @@ public EntityMinecart(World p_i1712_1_) { super(p_i1712_1_); -@@ -99,17 +113,19 @@ - +@@ -101,18 +115,20 @@ + @Nullable public AxisAlignedBB func_70114_g(Entity p_70114_1_) { + if (getCollisionHandler() != null) return getCollisionHandler().getCollisionBox(this, p_70114_1_); return p_70114_1_.func_70104_M() ? p_70114_1_.func_174813_aQ() : null; } + @Nullable public AxisAlignedBB func_70046_E() { + if (getCollisionHandler() != null) return getCollisionHandler().getBoundingBox(this); @@ -42,7 +43,7 @@ } public EntityMinecart(World p_i1713_1_, double p_i1713_2_, double p_i1713_4_, double p_i1713_6_) -@@ -315,7 +331,7 @@ +@@ -318,7 +334,7 @@ BlockPos blockpos = new BlockPos(k, l, i1); IBlockState iblockstate = this.field_70170_p.func_180495_p(blockpos); @@ -51,7 +52,7 @@ { this.func_180460_a(blockpos, iblockstate); -@@ -354,7 +370,10 @@ +@@ -357,7 +373,10 @@ this.func_70101_b(this.field_70177_z, this.field_70125_A); @@ -63,7 +64,7 @@ { if (!this.func_184196_w(entity) && entity.func_70104_M() && entity instanceof EntityMinecart) { -@@ -363,6 +382,7 @@ +@@ -366,6 +385,7 @@ } this.func_70072_I(); @@ -71,7 +72,7 @@ } } -@@ -377,10 +397,21 @@ +@@ -380,10 +400,21 @@ protected void func_180459_n() { @@ -94,7 +95,7 @@ if (this.field_70122_E) { this.field_70159_w *= 0.5D; -@@ -388,13 +419,13 @@ +@@ -391,13 +422,13 @@ this.field_70179_y *= 0.5D; } @@ -112,7 +113,7 @@ } } -@@ -414,25 +445,25 @@ +@@ -417,25 +448,25 @@ flag1 = !flag; } @@ -144,7 +145,7 @@ ++this.field_70163_u; } -@@ -478,7 +509,7 @@ +@@ -481,7 +512,7 @@ } } @@ -153,7 +154,7 @@ { double d17 = Math.sqrt(this.field_70159_w * this.field_70159_w + this.field_70179_y * this.field_70179_y); -@@ -524,20 +555,8 @@ +@@ -527,20 +558,8 @@ this.field_70165_t = d19 + d1 * d18; this.field_70161_v = d20 + d2 * d18; this.func_70107_b(this.field_70165_t, this.field_70163_u, this.field_70161_v); @@ -175,7 +176,7 @@ if (aint[0][1] != 0 && MathHelper.func_76128_c(this.field_70165_t) - p_180460_1_.func_177958_n() == aint[0][0] && MathHelper.func_76128_c(this.field_70161_v) - p_180460_1_.func_177952_p() == aint[0][2]) { this.func_70107_b(this.field_70165_t, this.field_70163_u + (double)aint[0][1], this.field_70161_v); -@@ -574,8 +593,14 @@ +@@ -577,8 +596,14 @@ this.field_70179_y = d5 * (double)(i - p_180460_1_.func_177952_p()); } @@ -191,7 +192,7 @@ double d15 = Math.sqrt(this.field_70159_w * this.field_70159_w + this.field_70179_y * this.field_70179_y); if (d15 > 0.01D) -@@ -795,13 +820,19 @@ +@@ -798,13 +823,19 @@ public void func_70108_f(Entity p_70108_1_) { @@ -212,7 +213,7 @@ { p_70108_1_.func_184220_m(this); } -@@ -847,7 +878,7 @@ +@@ -850,7 +881,7 @@ double d7 = p_70108_1_.field_70159_w + this.field_70159_w; double d8 = p_70108_1_.field_70179_y + this.field_70179_y; @@ -221,7 +222,7 @@ { this.field_70159_w *= 0.20000000298023224D; this.field_70179_y *= 0.20000000298023224D; -@@ -855,7 +886,7 @@ +@@ -858,7 +889,7 @@ p_70108_1_.field_70159_w *= 0.949999988079071D; p_70108_1_.field_70179_y *= 0.949999988079071D; } @@ -230,7 +231,7 @@ { p_70108_1_.field_70159_w *= 0.20000000298023224D; p_70108_1_.field_70179_y *= 0.20000000298023224D; -@@ -982,6 +1013,221 @@ +@@ -985,6 +1016,221 @@ this.func_184212_Q().func_187227_b(field_184270_f, Boolean.valueOf(p_94096_1_)); } diff --git a/patches/minecraft/net/minecraft/entity/item/EntityMinecartCommandBlock.java.patch b/patches/minecraft/net/minecraft/entity/item/EntityMinecartCommandBlock.java.patch index bd1a8f256b..6a79a62ac0 100644 --- a/patches/minecraft/net/minecraft/entity/item/EntityMinecartCommandBlock.java.patch +++ b/patches/minecraft/net/minecraft/entity/item/EntityMinecartCommandBlock.java.patch @@ -1,8 +1,8 @@ --- ../src-base/minecraft/net/minecraft/entity/item/EntityMinecartCommandBlock.java +++ ../src-work/minecraft/net/minecraft/entity/item/EntityMinecartCommandBlock.java -@@ -122,6 +122,7 @@ +@@ -123,6 +123,7 @@ - public boolean func_184230_a(EntityPlayer p_184230_1_, ItemStack p_184230_2_, EnumHand p_184230_3_) + public boolean func_184230_a(EntityPlayer p_184230_1_, @Nullable ItemStack p_184230_2_, EnumHand p_184230_3_) { + if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.minecart.MinecartInteractEvent(this, p_184230_1_, p_184230_2_, p_184230_3_))) return true; this.field_145824_a.func_175574_a(p_184230_1_); diff --git a/patches/minecraft/net/minecraft/entity/item/EntityMinecartContainer.java.patch b/patches/minecraft/net/minecraft/entity/item/EntityMinecartContainer.java.patch index 5fa7ee0d0b..a41e2ece81 100644 --- a/patches/minecraft/net/minecraft/entity/item/EntityMinecartContainer.java.patch +++ b/patches/minecraft/net/minecraft/entity/item/EntityMinecartContainer.java.patch @@ -2,7 +2,7 @@ +++ ../src-work/minecraft/net/minecraft/entity/item/EntityMinecartContainer.java @@ -200,6 +200,7 @@ - public boolean func_184230_a(EntityPlayer p_184230_1_, ItemStack p_184230_2_, EnumHand p_184230_3_) + public boolean func_184230_a(EntityPlayer p_184230_1_, @Nullable ItemStack p_184230_2_, EnumHand p_184230_3_) { + if(net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.minecart.MinecartInteractEvent(this, p_184230_1_, p_184230_2_, p_184230_3_))) return true; if (!this.field_70170_p.field_72995_K) diff --git a/patches/minecraft/net/minecraft/entity/item/EntityMinecartEmpty.java.patch b/patches/minecraft/net/minecraft/entity/item/EntityMinecartEmpty.java.patch index 91c23ee227..07f5bb16e7 100644 --- a/patches/minecraft/net/minecraft/entity/item/EntityMinecartEmpty.java.patch +++ b/patches/minecraft/net/minecraft/entity/item/EntityMinecartEmpty.java.patch @@ -1,8 +1,8 @@ --- ../src-base/minecraft/net/minecraft/entity/item/EntityMinecartEmpty.java +++ ../src-work/minecraft/net/minecraft/entity/item/EntityMinecartEmpty.java -@@ -19,6 +19,8 @@ +@@ -20,6 +20,8 @@ - public boolean func_184230_a(EntityPlayer p_184230_1_, ItemStack p_184230_2_, EnumHand p_184230_3_) + public boolean func_184230_a(EntityPlayer p_184230_1_, @Nullable ItemStack p_184230_2_, EnumHand p_184230_3_) { + if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.minecart.MinecartInteractEvent(this, p_184230_1_, p_184230_2_, p_184230_3_))) return true; + diff --git a/patches/minecraft/net/minecraft/entity/item/EntityMinecartFurnace.java.patch b/patches/minecraft/net/minecraft/entity/item/EntityMinecartFurnace.java.patch index 3e1299398b..8eac7c1848 100644 --- a/patches/minecraft/net/minecraft/entity/item/EntityMinecartFurnace.java.patch +++ b/patches/minecraft/net/minecraft/entity/item/EntityMinecartFurnace.java.patch @@ -1,8 +1,8 @@ --- ../src-base/minecraft/net/minecraft/entity/item/EntityMinecartFurnace.java +++ ../src-work/minecraft/net/minecraft/entity/item/EntityMinecartFurnace.java -@@ -136,6 +136,8 @@ +@@ -137,6 +137,8 @@ - public boolean func_184230_a(EntityPlayer p_184230_1_, ItemStack p_184230_2_, EnumHand p_184230_3_) + public boolean func_184230_a(EntityPlayer p_184230_1_, @Nullable ItemStack p_184230_2_, EnumHand p_184230_3_) { + if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.minecart.MinecartInteractEvent(this, p_184230_1_, p_184230_2_, p_184230_3_))) return true; + diff --git a/patches/minecraft/net/minecraft/entity/item/EntityMinecartHopper.java.patch b/patches/minecraft/net/minecraft/entity/item/EntityMinecartHopper.java.patch index c208299213..8f4fa759a4 100644 --- a/patches/minecraft/net/minecraft/entity/item/EntityMinecartHopper.java.patch +++ b/patches/minecraft/net/minecraft/entity/item/EntityMinecartHopper.java.patch @@ -1,8 +1,8 @@ --- ../src-base/minecraft/net/minecraft/entity/item/EntityMinecartHopper.java +++ ../src-work/minecraft/net/minecraft/entity/item/EntityMinecartHopper.java -@@ -56,6 +56,7 @@ +@@ -57,6 +57,7 @@ - public boolean func_184230_a(EntityPlayer p_184230_1_, ItemStack p_184230_2_, EnumHand p_184230_3_) + public boolean func_184230_a(EntityPlayer p_184230_1_, @Nullable ItemStack p_184230_2_, EnumHand p_184230_3_) { + if(net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.minecart.MinecartInteractEvent(this, p_184230_1_, p_184230_2_, p_184230_3_))) return true; if (!this.field_70170_p.field_72995_K) diff --git a/patches/minecraft/net/minecraft/entity/monster/EntityEnderman.java.patch b/patches/minecraft/net/minecraft/entity/monster/EntityEnderman.java.patch index e085803348..1a1f5343d8 100644 --- a/patches/minecraft/net/minecraft/entity/monster/EntityEnderman.java.patch +++ b/patches/minecraft/net/minecraft/entity/monster/EntityEnderman.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/monster/EntityEnderman.java +++ ../src-work/minecraft/net/minecraft/entity/monster/EntityEnderman.java -@@ -259,7 +259,9 @@ +@@ -260,7 +260,9 @@ private boolean func_70825_j(double p_70825_1_, double p_70825_3_, double p_70825_5_) { @@ -11,7 +11,7 @@ if (flag) { -@@ -342,6 +344,18 @@ +@@ -345,6 +347,18 @@ } } diff --git a/patches/minecraft/net/minecraft/entity/monster/EntityMagmaCube.java.patch b/patches/minecraft/net/minecraft/entity/monster/EntityMagmaCube.java.patch index e44b7a1f83..5e43e090ba 100644 --- a/patches/minecraft/net/minecraft/entity/monster/EntityMagmaCube.java.patch +++ b/patches/minecraft/net/minecraft/entity/monster/EntityMagmaCube.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/monster/EntityMagmaCube.java +++ ../src-work/minecraft/net/minecraft/entity/monster/EntityMagmaCube.java -@@ -86,6 +86,7 @@ +@@ -88,6 +88,7 @@ { this.field_70181_x = (double)(0.42F + (float)this.func_70809_q() * 0.1F); this.field_70160_al = true; diff --git a/patches/minecraft/net/minecraft/entity/monster/EntitySlime.java.patch b/patches/minecraft/net/minecraft/entity/monster/EntitySlime.java.patch index 986396cb2b..8d52e35be9 100644 --- a/patches/minecraft/net/minecraft/entity/monster/EntitySlime.java.patch +++ b/patches/minecraft/net/minecraft/entity/monster/EntitySlime.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/monster/EntitySlime.java +++ ../src-work/minecraft/net/minecraft/entity/monster/EntitySlime.java -@@ -125,7 +125,7 @@ +@@ -126,7 +126,7 @@ if (this.field_70122_E && !this.field_175452_bi) { int i = this.func_70809_q(); @@ -9,7 +9,7 @@ for (int j = 0; j < i * 8; ++j) { float f = this.field_70146_Z.nextFloat() * ((float)Math.PI * 2F); -@@ -291,7 +291,7 @@ +@@ -293,7 +293,7 @@ BlockPos blockpos = new BlockPos(MathHelper.func_76128_c(this.field_70165_t), 0, MathHelper.func_76128_c(this.field_70161_v)); Chunk chunk = this.field_70170_p.func_175726_f(blockpos); @@ -18,7 +18,7 @@ { return false; } -@@ -356,6 +356,14 @@ +@@ -359,6 +359,14 @@ return this.func_189101_db() ? SoundEvents.field_189110_fE : SoundEvents.field_187882_fq; } diff --git a/patches/minecraft/net/minecraft/entity/monster/EntityZombie.java.patch b/patches/minecraft/net/minecraft/entity/monster/EntityZombie.java.patch index f40c0b6316..f33127ad24 100644 --- a/patches/minecraft/net/minecraft/entity/monster/EntityZombie.java.patch +++ b/patches/minecraft/net/minecraft/entity/monster/EntityZombie.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/monster/EntityZombie.java +++ ../src-work/minecraft/net/minecraft/entity/monster/EntityZombie.java -@@ -101,7 +101,7 @@ +@@ -102,7 +102,7 @@ this.func_110148_a(SharedMonsterAttributes.field_111263_d).func_111128_a(0.23000000417232513D); this.func_110148_a(SharedMonsterAttributes.field_111264_e).func_111128_a(3.0D); this.func_110148_a(SharedMonsterAttributes.field_188791_g).func_111128_a(2.0D); @@ -9,7 +9,7 @@ } protected void func_70088_a() -@@ -259,12 +259,24 @@ +@@ -260,12 +260,24 @@ entitylivingbase = (EntityLivingBase)p_70097_1_.func_76346_g(); } @@ -39,7 +39,7 @@ for (int l = 0; l < 50; ++l) { -@@ -272,14 +284,14 @@ +@@ -273,14 +285,14 @@ int j1 = j + MathHelper.func_76136_a(this.field_70146_Z, 7, 40) * MathHelper.func_76136_a(this.field_70146_Z, -1, 1); int k1 = k + MathHelper.func_76136_a(this.field_70146_Z, 7, 40) * MathHelper.func_76136_a(this.field_70146_Z, -1, 1); @@ -56,7 +56,7 @@ entityzombie.func_180482_a(this.field_70170_p.func_175649_E(new BlockPos(entityzombie)), (IEntityLivingData)null); this.func_110148_a(field_110186_bp).func_111121_a(new AttributeModifier("Zombie reinforcement caller charge", -0.05000000074505806D, 0)); entityzombie.func_110148_a(field_110186_bp).func_111121_a(new AttributeModifier("Zombie reinforcement callee charge", -0.05000000074505806D, 0)); -@@ -483,7 +495,7 @@ +@@ -486,7 +498,7 @@ if (p_180482_2_ == null) { diff --git a/patches/minecraft/net/minecraft/entity/passive/EntityHorse.java.patch b/patches/minecraft/net/minecraft/entity/passive/EntityHorse.java.patch index 5c100f3b41..3674103ba5 100644 --- a/patches/minecraft/net/minecraft/entity/passive/EntityHorse.java.patch +++ b/patches/minecraft/net/minecraft/entity/passive/EntityHorse.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/passive/EntityHorse.java +++ ../src-work/minecraft/net/minecraft/entity/passive/EntityHorse.java -@@ -433,6 +433,7 @@ +@@ -436,6 +436,7 @@ this.field_110296_bG.func_110134_a(this); this.func_110232_cE(); @@ -8,15 +8,15 @@ } private void func_110232_cE() -@@ -1200,6 +1201,7 @@ +@@ -1204,6 +1205,7 @@ } this.field_110277_bt = 0.0F; + net.minecraftforge.common.ForgeHooks.onLivingJump(this); } - this.field_70138_W = 1.0F; -@@ -1793,4 +1795,21 @@ + this.field_70747_aH = this.func_70689_ay() * 0.1F; +@@ -1798,4 +1800,21 @@ this.field_188477_b = p_i46589_2_; } } diff --git a/patches/minecraft/net/minecraft/entity/passive/EntityMooshroom.java.patch b/patches/minecraft/net/minecraft/entity/passive/EntityMooshroom.java.patch index 3926c9c077..d28d23cc9e 100644 --- a/patches/minecraft/net/minecraft/entity/passive/EntityMooshroom.java.patch +++ b/patches/minecraft/net/minecraft/entity/passive/EntityMooshroom.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/passive/EntityMooshroom.java +++ ../src-work/minecraft/net/minecraft/entity/passive/EntityMooshroom.java -@@ -13,7 +13,7 @@ +@@ -14,7 +14,7 @@ import net.minecraft.world.World; import net.minecraft.world.storage.loot.LootTableList; @@ -9,15 +9,15 @@ { public EntityMooshroom(World p_i1687_1_) { -@@ -22,6 +22,7 @@ +@@ -23,6 +23,7 @@ this.field_175506_bl = Blocks.field_150391_bh; } + @SuppressWarnings("unused") - public boolean func_184645_a(EntityPlayer p_184645_1_, EnumHand p_184645_2_, ItemStack p_184645_3_) + public boolean func_184645_a(EntityPlayer p_184645_1_, EnumHand p_184645_2_, @Nullable ItemStack p_184645_3_) { if (p_184645_3_ != null && p_184645_3_.func_77973_b() == Items.field_151054_z && this.func_70874_b() >= 0 && !p_184645_1_.field_71075_bZ.field_75098_d) -@@ -37,7 +38,7 @@ +@@ -38,7 +39,7 @@ return true; } @@ -26,7 +26,7 @@ { this.func_70106_y(); this.field_70170_p.func_175688_a(EnumParticleTypes.EXPLOSION_LARGE, this.field_70165_t, this.field_70163_u + (double)(this.field_70131_O / 2.0F), this.field_70161_v, 0.0D, 0.0D, 0.0D, new int[0]); -@@ -78,6 +79,35 @@ +@@ -79,6 +80,35 @@ return new EntityMooshroom(this.field_70170_p); } @@ -59,6 +59,6 @@ + return ret; + } + + @Nullable protected ResourceLocation func_184647_J() { - return LootTableList.field_186400_H; diff --git a/patches/minecraft/net/minecraft/entity/passive/EntityOcelot.java.patch b/patches/minecraft/net/minecraft/entity/passive/EntityOcelot.java.patch index 921dfecbad..37677c0c40 100644 --- a/patches/minecraft/net/minecraft/entity/passive/EntityOcelot.java.patch +++ b/patches/minecraft/net/minecraft/entity/passive/EntityOcelot.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/passive/EntityOcelot.java +++ ../src-work/minecraft/net/minecraft/entity/passive/EntityOcelot.java -@@ -285,7 +285,7 @@ +@@ -288,7 +288,7 @@ IBlockState iblockstate = this.field_70170_p.func_180495_p(blockpos.func_177977_b()); Block block = iblockstate.func_177230_c(); diff --git a/patches/minecraft/net/minecraft/entity/passive/EntitySheep.java.patch b/patches/minecraft/net/minecraft/entity/passive/EntitySheep.java.patch index 7552ad7052..50ef9a971a 100644 --- a/patches/minecraft/net/minecraft/entity/passive/EntitySheep.java.patch +++ b/patches/minecraft/net/minecraft/entity/passive/EntitySheep.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/passive/EntitySheep.java +++ ../src-work/minecraft/net/minecraft/entity/passive/EntitySheep.java -@@ -42,7 +42,7 @@ +@@ -43,7 +43,7 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -9,19 +9,18 @@ { private static final DataParameter field_184774_bv = EntityDataManager.func_187226_a(EntitySheep.class, DataSerializers.field_187191_a); private final InventoryCrafting field_90016_e = new InventoryCrafting(new Container() -@@ -171,9 +171,10 @@ +@@ -173,8 +173,10 @@ } } + @SuppressWarnings("unused") - public boolean func_184645_a(EntityPlayer p_184645_1_, EnumHand p_184645_2_, ItemStack p_184645_3_) + public boolean func_184645_a(EntityPlayer p_184645_1_, EnumHand p_184645_2_, @Nullable ItemStack p_184645_3_) { -- if (p_184645_3_ != null && p_184645_3_.func_77973_b() == Items.field_151097_aZ && !this.func_70892_o() && !this.func_70631_g_()) -+ if (false && p_184645_3_ != null && p_184645_3_.func_77973_b() == Items.field_151097_aZ && !this.func_70892_o() && !this.func_70631_g_()) //Forge: Moved to onSheared ++ if (false) //Forge: Moved to onSheared + if (p_184645_3_ != null && p_184645_3_.func_77973_b() == Items.field_151097_aZ && !this.func_70892_o() && !this.func_70631_g_()) { if (!this.field_70170_p.field_72995_K) - { -@@ -356,4 +357,19 @@ +@@ -359,4 +361,19 @@ field_175514_bm.put(EnumDyeColor.RED, new float[] {0.6F, 0.2F, 0.2F}); field_175514_bm.put(EnumDyeColor.BLACK, new float[] {0.1F, 0.1F, 0.1F}); } diff --git a/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch b/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch index 84bc38a3c1..9e29853472 100644 --- a/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch +++ b/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/passive/EntityVillager.java +++ ../src-work/minecraft/net/minecraft/entity/passive/EntityVillager.java -@@ -74,6 +74,7 @@ +@@ -75,6 +75,7 @@ public class EntityVillager extends EntityAgeable implements IMerchant, INpc { private static final DataParameter field_184752_bw = EntityDataManager.func_187226_a(EntityVillager.class, DataSerializers.field_187192_b); @@ -8,7 +8,7 @@ private int field_70955_e; private boolean field_70952_f; private boolean field_70953_g; -@@ -90,6 +91,7 @@ +@@ -91,6 +92,7 @@ private boolean field_82190_bM; private boolean field_175564_by; private InventoryBasic field_175560_bz; @@ -16,7 +16,7 @@ private static final EntityVillager.ITradeList[][][][] field_175561_bA = new EntityVillager.ITradeList[][][][] {{{{new EntityVillager.EmeraldForItems(Items.field_151015_O, new EntityVillager.PriceInfo(18, 22)), new EntityVillager.EmeraldForItems(Items.field_151174_bG, new EntityVillager.PriceInfo(15, 19)), new EntityVillager.EmeraldForItems(Items.field_151172_bF, new EntityVillager.PriceInfo(15, 19)), new EntityVillager.ListItemForEmeralds(Items.field_151025_P, new EntityVillager.PriceInfo(-4, -2))}, {new EntityVillager.EmeraldForItems(Item.func_150898_a(Blocks.field_150423_aK), new EntityVillager.PriceInfo(8, 13)), new EntityVillager.ListItemForEmeralds(Items.field_151158_bO, new EntityVillager.PriceInfo(-3, -2))}, {new EntityVillager.EmeraldForItems(Item.func_150898_a(Blocks.field_150440_ba), new EntityVillager.PriceInfo(7, 12)), new EntityVillager.ListItemForEmeralds(Items.field_151034_e, new EntityVillager.PriceInfo(-5, -7))}, {new EntityVillager.ListItemForEmeralds(Items.field_151106_aX, new EntityVillager.PriceInfo(-6, -10)), new EntityVillager.ListItemForEmeralds(Items.field_151105_aU, new EntityVillager.PriceInfo(1, 1))}}, {{new EntityVillager.EmeraldForItems(Items.field_151007_F, new EntityVillager.PriceInfo(15, 20)), new EntityVillager.EmeraldForItems(Items.field_151044_h, new EntityVillager.PriceInfo(16, 24)), new EntityVillager.ItemAndEmeraldToItem(Items.field_151115_aP, new EntityVillager.PriceInfo(6, 6), Items.field_179566_aV, new EntityVillager.PriceInfo(6, 6))}, {new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151112_aM, new EntityVillager.PriceInfo(7, 8))}}, {{new EntityVillager.EmeraldForItems(Item.func_150898_a(Blocks.field_150325_L), new EntityVillager.PriceInfo(16, 22)), new EntityVillager.ListItemForEmeralds(Items.field_151097_aZ, new EntityVillager.PriceInfo(3, 4))}, {new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L)), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 1), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 2), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 3), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 4), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 5), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 6), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 7), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 8), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 9), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 10), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 11), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 12), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 13), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 14), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 15), new EntityVillager.PriceInfo(1, 2))}}, {{new EntityVillager.EmeraldForItems(Items.field_151007_F, new EntityVillager.PriceInfo(15, 20)), new EntityVillager.ListItemForEmeralds(Items.field_151032_g, new EntityVillager.PriceInfo(-12, -8))}, {new EntityVillager.ListItemForEmeralds(Items.field_151031_f, new EntityVillager.PriceInfo(2, 3)), new EntityVillager.ItemAndEmeraldToItem(Item.func_150898_a(Blocks.field_150351_n), new EntityVillager.PriceInfo(10, 10), Items.field_151145_ak, new EntityVillager.PriceInfo(6, 10))}}}, {{{new EntityVillager.EmeraldForItems(Items.field_151121_aF, new EntityVillager.PriceInfo(24, 36)), new EntityVillager.ListEnchantedBookForEmeralds()}, {new EntityVillager.EmeraldForItems(Items.field_151122_aG, new EntityVillager.PriceInfo(8, 10)), new EntityVillager.ListItemForEmeralds(Items.field_151111_aL, new EntityVillager.PriceInfo(10, 12)), new EntityVillager.ListItemForEmeralds(Item.func_150898_a(Blocks.field_150342_X), new EntityVillager.PriceInfo(3, 4))}, {new EntityVillager.EmeraldForItems(Items.field_151164_bB, new EntityVillager.PriceInfo(2, 2)), new EntityVillager.ListItemForEmeralds(Items.field_151113_aN, new EntityVillager.PriceInfo(10, 12)), new EntityVillager.ListItemForEmeralds(Item.func_150898_a(Blocks.field_150359_w), new EntityVillager.PriceInfo(-5, -3))}, {new EntityVillager.ListEnchantedBookForEmeralds()}, {new EntityVillager.ListEnchantedBookForEmeralds()}, {new EntityVillager.ListItemForEmeralds(Items.field_151057_cb, new EntityVillager.PriceInfo(20, 22))}}}, {{{new EntityVillager.EmeraldForItems(Items.field_151078_bh, new EntityVillager.PriceInfo(36, 40)), new EntityVillager.EmeraldForItems(Items.field_151043_k, new EntityVillager.PriceInfo(8, 10))}, {new EntityVillager.ListItemForEmeralds(Items.field_151137_ax, new EntityVillager.PriceInfo(-4, -1)), new EntityVillager.ListItemForEmeralds(new ItemStack(Items.field_151100_aR, 1, EnumDyeColor.BLUE.func_176767_b()), new EntityVillager.PriceInfo(-2, -1))}, {new EntityVillager.ListItemForEmeralds(Items.field_151079_bi, new EntityVillager.PriceInfo(4, 7)), new EntityVillager.ListItemForEmeralds(Item.func_150898_a(Blocks.field_150426_aN), new EntityVillager.PriceInfo(-3, -1))}, {new EntityVillager.ListItemForEmeralds(Items.field_151062_by, new EntityVillager.PriceInfo(3, 11))}}}, {{{new EntityVillager.EmeraldForItems(Items.field_151044_h, new EntityVillager.PriceInfo(16, 24)), new EntityVillager.ListItemForEmeralds(Items.field_151028_Y, new EntityVillager.PriceInfo(4, 6))}, {new EntityVillager.EmeraldForItems(Items.field_151042_j, new EntityVillager.PriceInfo(7, 9)), new EntityVillager.ListItemForEmeralds(Items.field_151030_Z, new EntityVillager.PriceInfo(10, 14))}, {new EntityVillager.EmeraldForItems(Items.field_151045_i, new EntityVillager.PriceInfo(3, 4)), new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151163_ad, new EntityVillager.PriceInfo(16, 19))}, {new EntityVillager.ListItemForEmeralds(Items.field_151029_X, new EntityVillager.PriceInfo(5, 7)), new EntityVillager.ListItemForEmeralds(Items.field_151022_W, new EntityVillager.PriceInfo(9, 11)), new EntityVillager.ListItemForEmeralds(Items.field_151020_U, new EntityVillager.PriceInfo(5, 7)), new EntityVillager.ListItemForEmeralds(Items.field_151023_V, new EntityVillager.PriceInfo(11, 15))}}, {{new EntityVillager.EmeraldForItems(Items.field_151044_h, new EntityVillager.PriceInfo(16, 24)), new EntityVillager.ListItemForEmeralds(Items.field_151036_c, new EntityVillager.PriceInfo(6, 8))}, {new EntityVillager.EmeraldForItems(Items.field_151042_j, new EntityVillager.PriceInfo(7, 9)), new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151040_l, new EntityVillager.PriceInfo(9, 10))}, {new EntityVillager.EmeraldForItems(Items.field_151045_i, new EntityVillager.PriceInfo(3, 4)), new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151048_u, new EntityVillager.PriceInfo(12, 15)), new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151056_x, new EntityVillager.PriceInfo(9, 12))}}, {{new EntityVillager.EmeraldForItems(Items.field_151044_h, new EntityVillager.PriceInfo(16, 24)), new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151037_a, new EntityVillager.PriceInfo(5, 7))}, {new EntityVillager.EmeraldForItems(Items.field_151042_j, new EntityVillager.PriceInfo(7, 9)), new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151035_b, new EntityVillager.PriceInfo(9, 11))}, {new EntityVillager.EmeraldForItems(Items.field_151045_i, new EntityVillager.PriceInfo(3, 4)), new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151046_w, new EntityVillager.PriceInfo(12, 15))}}}, {{{new EntityVillager.EmeraldForItems(Items.field_151147_al, new EntityVillager.PriceInfo(14, 18)), new EntityVillager.EmeraldForItems(Items.field_151076_bf, new EntityVillager.PriceInfo(14, 18))}, {new EntityVillager.EmeraldForItems(Items.field_151044_h, new EntityVillager.PriceInfo(16, 24)), new EntityVillager.ListItemForEmeralds(Items.field_151157_am, new EntityVillager.PriceInfo(-7, -5)), new EntityVillager.ListItemForEmeralds(Items.field_151077_bg, new EntityVillager.PriceInfo(-8, -6))}}, {{new EntityVillager.EmeraldForItems(Items.field_151116_aA, new EntityVillager.PriceInfo(9, 12)), new EntityVillager.ListItemForEmeralds(Items.field_151026_S, new EntityVillager.PriceInfo(2, 4))}, {new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151027_R, new EntityVillager.PriceInfo(7, 12))}, {new EntityVillager.ListItemForEmeralds(Items.field_151141_av, new EntityVillager.PriceInfo(8, 10))}}}}; public EntityVillager(World p_i1747_1_) -@@ -221,7 +223,7 @@ +@@ -222,7 +224,7 @@ { boolean flag = p_184645_3_ != null && p_184645_3_.func_77973_b() == Items.field_151063_bx; @@ -25,7 +25,7 @@ { if (!this.field_70170_p.field_72995_K && (this.field_70963_i == null || !this.field_70963_i.isEmpty())) { -@@ -242,12 +244,14 @@ +@@ -243,12 +245,14 @@ { super.func_70088_a(); this.field_70180_af.func_187214_a(field_184752_bw, Integer.valueOf(0)); @@ -40,7 +40,7 @@ p_70014_1_.func_74768_a("Riches", this.field_70956_bz); p_70014_1_.func_74768_a("Career", this.field_175563_bv); p_70014_1_.func_74768_a("CareerLevel", this.field_175562_bw); -@@ -277,6 +281,14 @@ +@@ -278,6 +282,14 @@ { super.func_70037_a(p_70037_1_); this.func_70938_b(p_70037_1_.func_74762_e("Profession")); @@ -55,7 +55,7 @@ this.field_70956_bz = p_70037_1_.func_74762_e("Riches"); this.field_175563_bv = p_70037_1_.func_74762_e("Career"); this.field_175562_bw = p_70037_1_.func_74762_e("CareerLevel"); -@@ -327,6 +339,7 @@ +@@ -328,6 +340,7 @@ public void func_70938_b(int p_70938_1_) { this.field_70180_af.func_187227_b(field_184752_bw, Integer.valueOf(p_70938_1_)); @@ -63,7 +63,7 @@ } public int func_70946_n() -@@ -334,6 +347,39 @@ +@@ -335,6 +348,39 @@ return Math.max(((Integer)this.field_70180_af.func_187225_a(field_184752_bw)).intValue() % 5, 0); } @@ -103,7 +103,7 @@ public boolean func_70941_o() { return this.field_70952_f; -@@ -533,15 +579,13 @@ +@@ -534,15 +580,13 @@ private void func_175554_cu() { @@ -120,7 +120,7 @@ this.field_175562_bw = 1; } -@@ -552,13 +596,11 @@ +@@ -553,13 +597,11 @@ int i = this.field_175563_bv - 1; int j = this.field_175562_bw - 1; @@ -137,7 +137,7 @@ { entityvillager$itradelist.func_179401_a(this.field_70963_i, this.field_70146_Z); } -@@ -647,9 +689,14 @@ +@@ -648,9 +690,14 @@ } } @@ -151,10 +151,10 @@ - TextComponentTranslation textcomponenttranslation = new TextComponentTranslation("entity.Villager." + s1, new Object[0]); + TextComponentTranslation textcomponenttranslation = new TextComponentTranslation(s1, new Object[0]); textcomponenttranslation.func_150256_b().func_150209_a(this.func_174823_aP()); - textcomponenttranslation.func_150256_b().func_179989_a(this.func_110124_au().toString()); + textcomponenttranslation.func_150256_b().func_179989_a(this.func_189512_bd()); -@@ -708,7 +755,7 @@ - public IEntityLivingData func_180482_a(DifficultyInstance p_180482_1_, IEntityLivingData p_180482_2_) +@@ -710,7 +757,7 @@ + public IEntityLivingData func_180482_a(DifficultyInstance p_180482_1_, @Nullable IEntityLivingData p_180482_2_) { p_180482_2_ = super.func_180482_a(p_180482_1_, p_180482_2_); - this.func_70938_b(this.field_70170_p.field_73012_v.nextInt(5)); diff --git a/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch b/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch index 8da477eb31..f168507e7d 100644 --- a/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch +++ b/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/player/EntityPlayer.java +++ ../src-work/minecraft/net/minecraft/entity/player/EntityPlayer.java -@@ -93,6 +93,11 @@ +@@ -94,6 +94,11 @@ @SuppressWarnings("incomplete-switch") public abstract class EntityPlayer extends EntityLivingBase { @@ -12,7 +12,7 @@ private static final DataParameter field_184829_a = EntityDataManager.func_187226_a(EntityPlayer.class, DataSerializers.field_187193_c); private static final DataParameter field_184830_b = EntityDataManager.func_187226_a(EntityPlayer.class, DataSerializers.field_187192_b); protected static final DataParameter field_184827_bp = EntityDataManager.func_187226_a(EntityPlayer.class, DataSerializers.field_187191_a); -@@ -174,6 +179,7 @@ +@@ -175,6 +180,7 @@ public void func_70071_h_() { @@ -20,7 +20,7 @@ this.field_70145_X = this.func_175149_v(); if (this.func_175149_v()) -@@ -219,7 +225,7 @@ +@@ -220,7 +226,7 @@ super.func_70071_h_(); @@ -29,7 +29,7 @@ { this.func_71053_j(); this.field_71070_bA = this.field_71069_bz; -@@ -360,6 +366,7 @@ +@@ -361,6 +367,7 @@ this.func_70105_a(f, f1); } } @@ -37,7 +37,7 @@ } public int func_82145_z() -@@ -442,11 +449,11 @@ +@@ -443,11 +450,11 @@ this.field_71109_bG = 0.0F; this.func_71015_k(this.field_70165_t - d0, this.field_70163_u - d1, this.field_70161_v - d2); @@ -51,7 +51,7 @@ } } } -@@ -576,11 +583,15 @@ +@@ -577,11 +584,15 @@ public void func_70645_a(DamageSource p_70645_1_) { @@ -67,7 +67,7 @@ if (this.func_70005_c_().equals("Notch")) { this.func_146097_a(new ItemStack(Items.field_151034_e, 1), true, false); -@@ -591,6 +602,9 @@ +@@ -592,6 +603,9 @@ this.field_71071_by.func_70436_m(); } @@ -77,8 +77,8 @@ if (p_70645_1_ != null) { this.field_70159_w = (double)(-MathHelper.func_76134_b((this.field_70739_aP + this.field_70177_z) * 0.017453292F) * 0.1F); -@@ -678,12 +692,25 @@ - +@@ -680,13 +694,26 @@ + @Nullable public EntityItem func_71040_bB(boolean p_71040_1_) { - return this.func_146097_a(this.field_71071_by.func_70298_a(this.field_71071_by.field_70461_c, p_71040_1_ && this.field_71071_by.func_70448_g() != null ? this.field_71071_by.func_70448_g().field_77994_a : 1), false, true); @@ -98,38 +98,39 @@ + return null; } - public EntityItem func_71019_a(ItemStack p_71019_1_, boolean p_71019_2_) + @Nullable + public EntityItem func_71019_a(@Nullable ItemStack p_71019_1_, boolean p_71019_2_) { - return this.func_146097_a(p_71019_1_, false, false); + return net.minecraftforge.common.ForgeHooks.onPlayerTossEvent(this, p_71019_1_, false); } - public EntityItem func_146097_a(ItemStack p_146097_1_, boolean p_146097_2_, boolean p_146097_3_) -@@ -746,15 +773,22 @@ - + @Nullable +@@ -751,14 +778,22 @@ + @Nullable public ItemStack func_184816_a(EntityItem p_184816_1_) { + if (captureDrops) capturedDrops.add(p_184816_1_); + else // Forge: Don't indent to keep patch smaller. this.field_70170_p.func_72838_d(p_184816_1_); - ItemStack itemstack = p_184816_1_.func_92059_d(); - return itemstack; + return p_184816_1_.func_92059_d(); } + @Deprecated //Use location sensitive version below public float func_184813_a(IBlockState p_184813_1_) { - float f = this.field_71071_by.func_184438_a(p_184813_1_); -+ return getBreakSpeed(p_184813_1_, new BlockPos(0, -1, 0)); ++ return getDigSpeed(p_184813_1_, null); + } -+ public float getBreakSpeed(IBlockState state, BlockPos pos) ++ public float getDigSpeed(IBlockState state, BlockPos pos) + { + float f = this.field_71071_by.func_184438_a(state); ++ if (f > 1.0F) { int i = EnchantmentHelper.func_185293_e(this); -@@ -804,12 +838,13 @@ +@@ -808,12 +843,13 @@ f /= 5.0F; } @@ -145,7 +146,7 @@ } public void func_70037_a(NBTTagCompound p_70037_1_) -@@ -845,6 +880,16 @@ +@@ -849,6 +885,16 @@ this.field_82248_d = p_70037_1_.func_74767_n("SpawnForced"); } @@ -162,7 +163,7 @@ this.field_71100_bB.func_75112_a(p_70037_1_); this.field_71075_bZ.func_75095_b(p_70037_1_); -@@ -877,6 +922,23 @@ +@@ -881,6 +927,23 @@ p_70014_1_.func_74757_a("SpawnForced", this.field_82248_d); } @@ -186,7 +187,7 @@ this.field_71100_bB.func_75117_b(p_70014_1_); this.field_71075_bZ.func_75091_a(p_70014_1_); p_70014_1_.func_74782_a("EnderItems", this.field_71078_a.func_70487_g()); -@@ -884,6 +946,7 @@ +@@ -888,6 +951,7 @@ public boolean func_70097_a(DamageSource p_70097_1_, float p_70097_2_) { @@ -194,7 +195,7 @@ if (this.func_180431_b(p_70097_1_)) { return false; -@@ -966,6 +1029,7 @@ +@@ -970,6 +1034,7 @@ if (this.field_184627_bm.field_77994_a <= 0) { EnumHand enumhand = this.func_184600_cs(); @@ -202,7 +203,7 @@ if (enumhand == EnumHand.MAIN_HAND) { -@@ -1001,7 +1065,10 @@ +@@ -1005,7 +1070,10 @@ { if (!this.func_180431_b(p_70665_1_)) { @@ -214,7 +215,7 @@ p_70665_2_ = this.func_70672_c(p_70665_1_, p_70665_2_); float f = p_70665_2_; p_70665_2_ = Math.max(p_70665_2_ - this.func_110139_bj(), 0.0F); -@@ -1067,6 +1134,7 @@ +@@ -1071,6 +1139,7 @@ } else { @@ -222,7 +223,7 @@ ItemStack itemstack = p_184822_2_ != null ? p_184822_2_.func_77946_l() : null; if (!p_184822_1_.func_184230_a(this, p_184822_2_, p_184822_3_)) -@@ -1123,6 +1191,7 @@ +@@ -1127,6 +1196,7 @@ public void func_71059_n(Entity p_71059_1_) { @@ -230,16 +231,16 @@ if (p_71059_1_.func_70075_an()) { if (!p_71059_1_.func_85031_j(this)) -@@ -1410,6 +1479,8 @@ +@@ -1414,6 +1484,8 @@ - public EntityPlayer.EnumStatus func_180469_a(BlockPos p_180469_1_) + public EntityPlayer.SleepResult func_180469_a(BlockPos p_180469_1_) { -+ EntityPlayer.EnumStatus ret = net.minecraftforge.event.ForgeEventFactory.onPlayerSleepInBed(this, p_180469_1_); ++ EntityPlayer.SleepResult ret = net.minecraftforge.event.ForgeEventFactory.onPlayerSleepInBed(this, p_180469_1_); + if (ret != null) return ret; if (!this.field_70170_p.field_72995_K) { if (this.func_70608_bn() || !this.func_70089_S()) -@@ -1449,9 +1520,10 @@ +@@ -1453,9 +1525,10 @@ this.func_70105_a(0.2F, 0.2F); @@ -253,7 +254,7 @@ float f = 0.5F; float f1 = 0.5F; -@@ -1514,13 +1586,14 @@ +@@ -1518,13 +1591,14 @@ public void func_70999_a(boolean p_70999_1_, boolean p_70999_2_, boolean p_70999_3_) { @@ -271,7 +272,7 @@ if (blockpos == null) { -@@ -1529,6 +1602,10 @@ +@@ -1533,6 +1607,10 @@ this.func_70107_b((double)((float)blockpos.func_177958_n() + 0.5F), (double)((float)blockpos.func_177956_o() + 0.1F), (double)((float)blockpos.func_177952_p() + 0.5F)); } @@ -282,14 +283,15 @@ this.field_71083_bS = false; -@@ -1547,14 +1624,15 @@ +@@ -1551,15 +1629,16 @@ private boolean func_175143_p() { - return this.field_70170_p.func_180495_p(this.field_71081_bT).func_177230_c() == Blocks.field_150324_C; -+ return net.minecraftforge.event.ForgeEventFactory.fireSleepingLocationCheck(this, field_71081_bT); ++ return net.minecraftforge.event.ForgeEventFactory.fireSleepingLocationCheck(this, this.field_71081_bT); } + @Nullable public static BlockPos func_180467_a(World p_180467_0_, BlockPos p_180467_1_, boolean p_180467_2_) { - Block block = p_180467_0_.func_180495_p(p_180467_1_).func_177230_c(); @@ -301,7 +303,7 @@ { if (!p_180467_2_) { -@@ -1569,16 +1647,17 @@ +@@ -1574,16 +1653,17 @@ } else { @@ -322,7 +324,7 @@ switch (enumfacing) { -@@ -1618,16 +1697,24 @@ +@@ -1623,16 +1703,24 @@ public BlockPos func_180470_cg() { @@ -349,7 +351,7 @@ if (p_180473_1_ != null) { this.field_71077_c = p_180473_1_; -@@ -1822,6 +1909,10 @@ +@@ -1827,6 +1915,10 @@ super.func_180430_e(p_180430_1_, p_180430_2_); } @@ -360,7 +362,7 @@ } protected void func_71061_d_() -@@ -2022,6 +2113,18 @@ +@@ -2027,6 +2119,18 @@ this.field_175152_f = p_71049_1_.field_175152_f; this.field_71078_a = p_71049_1_.field_71078_a; this.func_184212_Q().func_187227_b(field_184827_bp, p_71049_1_.func_184212_Q().func_187225_a(field_184827_bp)); @@ -379,7 +381,7 @@ } protected boolean func_70041_e_() -@@ -2120,7 +2223,10 @@ +@@ -2126,7 +2230,10 @@ public ITextComponent func_145748_c_() { @@ -391,7 +393,7 @@ itextcomponent.func_150256_b().func_150241_a(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/msg " + this.func_70005_c_() + " ")); itextcomponent.func_150256_b().func_150209_a(this.func_174823_aP()); itextcomponent.func_150256_b().func_179989_a(this.func_70005_c_()); -@@ -2129,7 +2235,7 @@ +@@ -2135,7 +2242,7 @@ public float func_70047_e() { @@ -400,7 +402,7 @@ if (this.func_70608_bn()) { -@@ -2340,6 +2446,161 @@ +@@ -2346,6 +2453,161 @@ return (float)this.func_110148_a(SharedMonsterAttributes.field_188792_h).func_111126_e(); } diff --git a/patches/minecraft/net/minecraft/entity/player/EntityPlayerMP.java.patch b/patches/minecraft/net/minecraft/entity/player/EntityPlayerMP.java.patch index e61f8cfbae..15b75ad99e 100644 --- a/patches/minecraft/net/minecraft/entity/player/EntityPlayerMP.java.patch +++ b/patches/minecraft/net/minecraft/entity/player/EntityPlayerMP.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/player/EntityPlayerMP.java +++ ../src-work/minecraft/net/minecraft/entity/player/EntityPlayerMP.java -@@ -134,14 +134,15 @@ +@@ -136,14 +136,15 @@ public int field_71138_i; public boolean field_71136_j; @@ -18,7 +18,7 @@ { int i = Math.max(0, p_i45285_1_.func_184108_a(p_i45285_2_)); int j = MathHelper.func_76128_c(p_i45285_2_.func_175723_af().func_177729_b((double)blockpos.func_177958_n(), (double)blockpos.func_177952_p())); -@@ -250,7 +251,7 @@ +@@ -252,7 +253,7 @@ this.field_71070_bA.func_75142_b(); @@ -27,7 +27,7 @@ { this.func_71053_j(); this.field_71070_bA = this.field_71069_bz; -@@ -433,6 +434,7 @@ +@@ -435,6 +436,7 @@ public void func_70645_a(DamageSource p_70645_1_) { @@ -35,7 +35,7 @@ boolean flag = this.field_70170_p.func_82736_K().func_82766_b("showDeathMessages"); this.field_71135_a.func_147359_a(new SPacketCombatEvent(this.func_110142_aN(), SPacketCombatEvent.Event.ENTITY_DIED, flag)); -@@ -459,7 +461,20 @@ +@@ -461,7 +463,20 @@ if (!this.field_70170_p.func_82736_K().func_82766_b("keepInventory") && !this.func_175149_v()) { @@ -56,15 +56,15 @@ } for (ScoreObjective scoreobjective : this.field_70170_p.func_96441_U().func_96520_a(IScoreCriteria.field_96642_c)) -@@ -540,6 +555,7 @@ - +@@ -543,6 +558,7 @@ + @Nullable public Entity func_184204_a(int p_184204_1_) { + if (!net.minecraftforge.common.ForgeHooks.onTravelToDimension(this, p_184204_1_)) return this; this.field_184851_cj = true; if (this.field_71093_bK == 1 && p_184204_1_ == 1) -@@ -697,7 +713,7 @@ +@@ -700,7 +716,7 @@ BlockPos blockpos = new BlockPos(i, j, k); IBlockState iblockstate = this.field_70170_p.func_180495_p(blockpos); @@ -73,7 +73,7 @@ { BlockPos blockpos1 = blockpos.func_177977_b(); IBlockState iblockstate1 = this.field_70170_p.func_180495_p(blockpos1); -@@ -921,6 +937,7 @@ +@@ -924,6 +940,7 @@ { if (p_71064_1_ != null) { diff --git a/patches/minecraft/net/minecraft/entity/player/InventoryPlayer.java.patch b/patches/minecraft/net/minecraft/entity/player/InventoryPlayer.java.patch index 879c821bdc..c2f9cf7432 100644 --- a/patches/minecraft/net/minecraft/entity/player/InventoryPlayer.java.patch +++ b/patches/minecraft/net/minecraft/entity/player/InventoryPlayer.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/entity/player/InventoryPlayer.java +++ ../src-work/minecraft/net/minecraft/entity/player/InventoryPlayer.java -@@ -270,13 +270,8 @@ +@@ -272,13 +272,8 @@ if (itemstack == null) { @@ -16,7 +16,7 @@ this.func_70299_a(j, itemstack); } -@@ -344,6 +339,14 @@ +@@ -346,6 +341,14 @@ } } } @@ -30,4 +30,4 @@ + } } - public boolean func_70441_a(final ItemStack p_70441_1_) + public boolean func_70441_a(@Nullable final ItemStack p_70441_1_) diff --git a/patches/minecraft/net/minecraft/init/Bootstrap.java.patch b/patches/minecraft/net/minecraft/init/Bootstrap.java.patch index 21ca820f97..d2658df4d6 100644 --- a/patches/minecraft/net/minecraft/init/Bootstrap.java.patch +++ b/patches/minecraft/net/minecraft/init/Bootstrap.java.patch @@ -2,7 +2,7 @@ +++ ../src-work/minecraft/net/minecraft/init/Bootstrap.java @@ -541,6 +541,7 @@ StatList.func_151178_a(); - BiomeGenBase.func_185358_q(); + Biome.func_185358_q(); func_151353_a(); + net.minecraftforge.fml.common.registry.GameData.vanillaSnapshot(); } diff --git a/patches/minecraft/net/minecraft/inventory/Container.java.patch b/patches/minecraft/net/minecraft/inventory/Container.java.patch index a14906ef94..72217bbbf3 100644 --- a/patches/minecraft/net/minecraft/inventory/Container.java.patch +++ b/patches/minecraft/net/minecraft/inventory/Container.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/inventory/Container.java +++ ../src-work/minecraft/net/minecraft/inventory/Container.java -@@ -646,7 +646,7 @@ +@@ -650,7 +650,7 @@ Slot slot1 = (Slot)this.field_75151_b.get(i); ItemStack itemstack1 = slot1.func_75211_c(); diff --git a/patches/minecraft/net/minecraft/inventory/ContainerBeacon.java.patch b/patches/minecraft/net/minecraft/inventory/ContainerBeacon.java.patch index ae5dae8ddc..6529375dc4 100644 --- a/patches/minecraft/net/minecraft/inventory/ContainerBeacon.java.patch +++ b/patches/minecraft/net/minecraft/inventory/ContainerBeacon.java.patch @@ -1,8 +1,8 @@ --- ../src-base/minecraft/net/minecraft/inventory/ContainerBeacon.java +++ ../src-work/minecraft/net/minecraft/inventory/ContainerBeacon.java -@@ -143,7 +143,7 @@ +@@ -145,7 +145,7 @@ - public boolean func_75214_a(ItemStack p_75214_1_) + public boolean func_75214_a(@Nullable ItemStack p_75214_1_) { - return p_75214_1_ == null ? false : p_75214_1_.func_77973_b() == Items.field_151166_bC || p_75214_1_.func_77973_b() == Items.field_151045_i || p_75214_1_.func_77973_b() == Items.field_151043_k || p_75214_1_.func_77973_b() == Items.field_151042_j; + return p_75214_1_ == null ? false : p_75214_1_.func_77973_b().isBeaconPayment(p_75214_1_); diff --git a/patches/minecraft/net/minecraft/inventory/ContainerBrewingStand.java.patch b/patches/minecraft/net/minecraft/inventory/ContainerBrewingStand.java.patch index cf54412a45..29d7458ad1 100644 --- a/patches/minecraft/net/minecraft/inventory/ContainerBrewingStand.java.patch +++ b/patches/minecraft/net/minecraft/inventory/ContainerBrewingStand.java.patch @@ -1,15 +1,15 @@ --- ../src-base/minecraft/net/minecraft/inventory/ContainerBrewingStand.java +++ ../src-work/minecraft/net/minecraft/inventory/ContainerBrewingStand.java -@@ -196,7 +196,7 @@ +@@ -198,7 +198,7 @@ - public boolean func_75214_a(ItemStack p_75214_1_) + public boolean func_75214_a(@Nullable ItemStack p_75214_1_) { - return p_75214_1_ != null && PotionHelper.func_185205_a(p_75214_1_); + return p_75214_1_ != null && net.minecraftforge.common.brewing.BrewingRecipeRegistry.isValidIngredient(p_75214_1_); } public int func_75219_a() -@@ -243,8 +243,7 @@ +@@ -245,8 +245,7 @@ } else { diff --git a/patches/minecraft/net/minecraft/inventory/ContainerEnchantment.java.patch b/patches/minecraft/net/minecraft/inventory/ContainerEnchantment.java.patch index 6eb1cab477..f725b9137a 100644 --- a/patches/minecraft/net/minecraft/inventory/ContainerEnchantment.java.patch +++ b/patches/minecraft/net/minecraft/inventory/ContainerEnchantment.java.patch @@ -1,11 +1,11 @@ --- ../src-base/minecraft/net/minecraft/inventory/ContainerEnchantment.java +++ ../src-work/minecraft/net/minecraft/inventory/ContainerEnchantment.java -@@ -68,9 +68,12 @@ +@@ -69,9 +69,12 @@ }); this.func_75146_a(new Slot(this.field_75168_e, 1, 35, 47) { + java.util.List ores = net.minecraftforge.oredict.OreDictionary.getOres("gemLapis"); - public boolean func_75214_a(ItemStack p_75214_1_) + public boolean func_75214_a(@Nullable ItemStack p_75214_1_) { - return p_75214_1_.func_77973_b() == Items.field_151100_aR && EnumDyeColor.func_176766_a(p_75214_1_.func_77960_j()) == EnumDyeColor.BLUE; + for (ItemStack ore : ores) @@ -14,7 +14,7 @@ } }); -@@ -155,6 +158,7 @@ +@@ -156,6 +159,7 @@ if (!this.field_75172_h.field_72995_K) { int l = 0; @@ -22,7 +22,7 @@ for (int j = -1; j <= 1; ++j) { -@@ -162,37 +166,14 @@ +@@ -163,37 +167,14 @@ { if ((j != 0 || k != 0) && this.field_75172_h.func_175623_d(this.field_178150_j.func_177982_a(k, 0, j)) && this.field_75172_h.func_175623_d(this.field_178150_j.func_177982_a(k, 1, j))) { @@ -66,7 +66,7 @@ } } } -@@ -202,7 +183,7 @@ +@@ -203,7 +184,7 @@ for (int i1 = 0; i1 < 3; ++i1) { diff --git a/patches/minecraft/net/minecraft/inventory/ContainerPlayer.java.patch b/patches/minecraft/net/minecraft/inventory/ContainerPlayer.java.patch index a77e0a042f..0b64ec79a7 100644 --- a/patches/minecraft/net/minecraft/inventory/ContainerPlayer.java.patch +++ b/patches/minecraft/net/minecraft/inventory/ContainerPlayer.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/inventory/ContainerPlayer.java +++ ../src-work/minecraft/net/minecraft/inventory/ContainerPlayer.java -@@ -48,8 +48,7 @@ +@@ -49,8 +49,7 @@ } else { @@ -9,4 +9,4 @@ + return p_75214_1_.func_77973_b().isValidArmor(p_75214_1_, entityequipmentslot, field_82862_h); } } - @SideOnly(Side.CLIENT) + @Nullable diff --git a/patches/minecraft/net/minecraft/inventory/ContainerRepair.java.patch b/patches/minecraft/net/minecraft/inventory/ContainerRepair.java.patch index 78d93064aa..56bd242c8e 100644 --- a/patches/minecraft/net/minecraft/inventory/ContainerRepair.java.patch +++ b/patches/minecraft/net/minecraft/inventory/ContainerRepair.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/inventory/ContainerRepair.java +++ ../src-work/minecraft/net/minecraft/inventory/ContainerRepair.java -@@ -69,6 +69,8 @@ +@@ -70,6 +70,8 @@ p_82870_1_.func_82242_a(-ContainerRepair.this.field_82854_e); } @@ -9,7 +9,7 @@ ContainerRepair.this.field_82853_g.func_70299_a(0, (ItemStack)null); if (ContainerRepair.this.field_82856_l > 0) -@@ -93,7 +95,7 @@ +@@ -94,7 +96,7 @@ ContainerRepair.this.field_82854_e = 0; IBlockState iblockstate = p_i45807_2_.func_180495_p(p_i45807_3_); @@ -18,7 +18,7 @@ { int l = ((Integer)iblockstate.func_177229_b(BlockAnvil.field_176505_b)).intValue(); ++l; -@@ -160,10 +162,12 @@ +@@ -161,10 +163,12 @@ Map map = EnchantmentHelper.func_82781_a(itemstack1); j = j + itemstack.func_82838_A() + (itemstack2 == null ? 0 : itemstack2.func_82838_A()); this.field_82856_l = 0; @@ -32,7 +32,7 @@ if (itemstack1.func_77984_f() && itemstack1.func_77973_b().func_82789_a(itemstack, itemstack2)) { -@@ -235,7 +239,7 @@ +@@ -236,7 +240,7 @@ for (Enchantment enchantment : map.keySet()) { @@ -41,7 +41,7 @@ { flag1 = false; ++i; -@@ -279,6 +283,8 @@ +@@ -280,6 +284,8 @@ } } diff --git a/patches/minecraft/net/minecraft/inventory/Slot.java.patch b/patches/minecraft/net/minecraft/inventory/Slot.java.patch index d47ee2d871..a651fd9ce0 100644 --- a/patches/minecraft/net/minecraft/inventory/Slot.java.patch +++ b/patches/minecraft/net/minecraft/inventory/Slot.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/inventory/Slot.java +++ ../src-work/minecraft/net/minecraft/inventory/Slot.java -@@ -89,7 +89,7 @@ +@@ -92,7 +92,7 @@ @SideOnly(Side.CLIENT) public String func_178171_c() { @@ -9,7 +9,7 @@ } public ItemStack func_75209_a(int p_75209_1_) -@@ -112,4 +112,63 @@ +@@ -115,4 +115,63 @@ { return true; } diff --git a/patches/minecraft/net/minecraft/inventory/SlotCrafting.java.patch b/patches/minecraft/net/minecraft/inventory/SlotCrafting.java.patch index a35783d0c8..8894b89e3b 100644 --- a/patches/minecraft/net/minecraft/inventory/SlotCrafting.java.patch +++ b/patches/minecraft/net/minecraft/inventory/SlotCrafting.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/inventory/SlotCrafting.java +++ ../src-work/minecraft/net/minecraft/inventory/SlotCrafting.java -@@ -107,8 +107,11 @@ +@@ -108,8 +108,11 @@ public void func_82870_a(EntityPlayer p_82870_1_, ItemStack p_82870_2_) { diff --git a/patches/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java.patch b/patches/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java.patch index 090b18f534..9eed3569a8 100644 --- a/patches/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java.patch +++ b/patches/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java +++ ../src-work/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java -@@ -81,6 +81,8 @@ +@@ -82,6 +82,8 @@ this.field_75228_b = 0; diff --git a/patches/minecraft/net/minecraft/item/Item.java.patch b/patches/minecraft/net/minecraft/item/Item.java.patch index 27cfd57bec..cf16a13e86 100644 --- a/patches/minecraft/net/minecraft/item/Item.java.patch +++ b/patches/minecraft/net/minecraft/item/Item.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/item/Item.java +++ ../src-work/minecraft/net/minecraft/item/Item.java -@@ -56,10 +56,10 @@ +@@ -57,10 +57,10 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -14,7 +14,7 @@ private static final IItemPropertyGetter field_185046_b = new IItemPropertyGetter() { @SideOnly(Side.CLIENT) -@@ -192,6 +192,7 @@ +@@ -196,6 +196,7 @@ return p_77654_1_; } @@ -22,7 +22,7 @@ public int func_77639_j() { return this.field_77777_bU; -@@ -312,6 +313,7 @@ +@@ -316,6 +317,7 @@ return this.field_77700_c; } @@ -30,7 +30,7 @@ public boolean func_77634_r() { return this.field_77700_c != null; -@@ -367,7 +369,7 @@ +@@ -371,7 +373,7 @@ public boolean func_77616_k(ItemStack p_77616_1_) { @@ -39,7 +39,7 @@ } protected RayTraceResult func_77621_a(World p_77621_1_, EntityPlayer p_77621_2_, boolean p_77621_3_) -@@ -385,6 +387,10 @@ +@@ -389,6 +391,10 @@ float f6 = f3 * f4; float f7 = f2 * f4; double d3 = 5.0D; @@ -50,7 +50,7 @@ Vec3d vec3d1 = vec3d.func_72441_c((double)f6 * d3, (double)f5 * d3, (double)f7 * d3); return p_77621_1_.func_147447_a(vec3d, vec3d1, p_77621_3_, !p_77621_3_, false); } -@@ -422,11 +428,557 @@ +@@ -426,11 +432,557 @@ return false; } @@ -608,7 +608,7 @@ public static void func_150900_l() { func_179214_a(Blocks.field_150348_b, (new ItemMultiTexture(Blocks.field_150348_b, Blocks.field_150348_b, new Function() -@@ -935,6 +1487,10 @@ +@@ -956,6 +1508,10 @@ private final float field_78011_i; private final int field_78008_j; @@ -619,7 +619,7 @@ private ToolMaterial(int p_i1874_3_, int p_i1874_4_, float p_i1874_5_, float p_i1874_6_, int p_i1874_7_) { this.field_78001_f = p_i1874_3_; -@@ -969,9 +1525,36 @@ +@@ -990,9 +1546,36 @@ return this.field_78008_j; } diff --git a/patches/minecraft/net/minecraft/item/ItemArmor.java.patch b/patches/minecraft/net/minecraft/item/ItemArmor.java.patch index 8559d5846b..bcc4033bcd 100644 --- a/patches/minecraft/net/minecraft/item/ItemArmor.java.patch +++ b/patches/minecraft/net/minecraft/item/ItemArmor.java.patch @@ -1,15 +1,15 @@ --- ../src-base/minecraft/net/minecraft/item/ItemArmor.java +++ ../src-work/minecraft/net/minecraft/item/ItemArmor.java -@@ -235,6 +235,8 @@ - private final int[] field_78049_g; +@@ -239,6 +239,8 @@ private final int field_78055_h; private final SoundEvent field_185020_j; + private final float field_189417_k; + //Added by forge for custom Armor materials. + public Item customCraftingMaterial = null; - private ArmorMaterial(String p_i46796_3_, int p_i46796_4_, int[] p_i46796_5_, int p_i46796_6_, SoundEvent p_i46796_7_) + private ArmorMaterial(String p_i47117_3_, int p_i47117_4_, int[] p_i47117_5_, int p_i47117_6_, SoundEvent p_i47117_7_, float p_i47117_8_) { -@@ -267,7 +269,15 @@ +@@ -272,7 +274,15 @@ public Item func_151685_b() { diff --git a/patches/minecraft/net/minecraft/item/ItemBlock.java.patch b/patches/minecraft/net/minecraft/item/ItemBlock.java.patch index 32dc0c168c..fce484e64f 100644 --- a/patches/minecraft/net/minecraft/item/ItemBlock.java.patch +++ b/patches/minecraft/net/minecraft/item/ItemBlock.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/item/ItemBlock.java +++ ../src-work/minecraft/net/minecraft/item/ItemBlock.java -@@ -50,16 +50,8 @@ +@@ -51,16 +51,8 @@ int i = this.func_77647_b(p_180614_1_.func_77960_j()); IBlockState iblockstate1 = this.field_150939_a.func_180642_a(p_180614_3_, p_180614_4_, p_180614_6_, p_180614_7_, p_180614_8_, p_180614_9_, i, p_180614_2_); diff --git a/patches/minecraft/net/minecraft/item/ItemBow.java.patch b/patches/minecraft/net/minecraft/item/ItemBow.java.patch index f8f76a314d..ffd7dfdc20 100644 --- a/patches/minecraft/net/minecraft/item/ItemBow.java.patch +++ b/patches/minecraft/net/minecraft/item/ItemBow.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/item/ItemBow.java +++ ../src-work/minecraft/net/minecraft/item/ItemBow.java -@@ -90,6 +90,10 @@ +@@ -91,6 +91,10 @@ boolean flag = entityplayer.field_71075_bZ.field_75098_d || EnchantmentHelper.func_77506_a(Enchantments.field_185312_x, p_77615_1_) > 0; ItemStack itemstack = this.func_185060_a(entityplayer); @@ -11,7 +11,7 @@ if (itemstack != null || flag) { if (itemstack == null) -@@ -97,12 +101,11 @@ +@@ -98,12 +102,11 @@ itemstack = new ItemStack(Items.field_151032_g); } @@ -25,7 +25,7 @@ if (!p_77615_2_.field_72995_K) { -@@ -189,6 +192,9 @@ +@@ -190,6 +193,9 @@ { boolean flag = this.func_185060_a(p_77659_3_) != null; diff --git a/patches/minecraft/net/minecraft/item/ItemBucket.java.patch b/patches/minecraft/net/minecraft/item/ItemBucket.java.patch index 344645f977..7ae0a9410c 100644 --- a/patches/minecraft/net/minecraft/item/ItemBucket.java.patch +++ b/patches/minecraft/net/minecraft/item/ItemBucket.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/item/ItemBucket.java +++ ../src-work/minecraft/net/minecraft/item/ItemBucket.java -@@ -36,6 +36,8 @@ +@@ -37,6 +37,8 @@ { boolean flag = this.field_77876_a == Blocks.field_150350_a; RayTraceResult raytraceresult = this.func_77621_a(p_77659_2_, p_77659_3_, flag); diff --git a/patches/minecraft/net/minecraft/item/ItemBucketMilk.java.patch b/patches/minecraft/net/minecraft/item/ItemBucketMilk.java.patch index 3420e53274..1bb9a073ae 100644 --- a/patches/minecraft/net/minecraft/item/ItemBucketMilk.java.patch +++ b/patches/minecraft/net/minecraft/item/ItemBucketMilk.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/item/ItemBucketMilk.java +++ ../src-work/minecraft/net/minecraft/item/ItemBucketMilk.java -@@ -27,7 +27,7 @@ +@@ -29,7 +29,7 @@ if (!p_77654_2_.field_72995_K) { diff --git a/patches/minecraft/net/minecraft/item/ItemDye.java.patch b/patches/minecraft/net/minecraft/item/ItemDye.java.patch index 4ed0d3e9fd..29435d3a4f 100644 --- a/patches/minecraft/net/minecraft/item/ItemDye.java.patch +++ b/patches/minecraft/net/minecraft/item/ItemDye.java.patch @@ -9,45 +9,25 @@ { if (!p_180614_3_.field_72995_K) { -@@ -97,22 +97,32 @@ +@@ -97,8 +97,18 @@ public static boolean func_179234_a(ItemStack p_179234_0_, World p_179234_1_, BlockPos p_179234_2_) { -- IBlockState iblockstate = p_179234_1_.func_180495_p(p_179234_2_); + if (p_179234_1_ instanceof net.minecraft.world.WorldServer) + return applyBonemeal(p_179234_0_, p_179234_1_, p_179234_2_, net.minecraftforge.common.util.FakePlayerFactory.getMinecraft((net.minecraft.world.WorldServer)p_179234_1_)); + return false; + } - -+ public static boolean applyBonemeal(ItemStack stack, World worldIn, BlockPos target, EntityPlayer player) -+ { -+ IBlockState iblockstate = worldIn.func_180495_p(target); + -+ int hook = net.minecraftforge.event.ForgeEventFactory.onApplyBonemeal(player, worldIn, target, iblockstate, stack); ++ public static boolean applyBonemeal(ItemStack p_179234_0_, World p_179234_1_, BlockPos p_179234_2_, EntityPlayer player) ++ { + IBlockState iblockstate = p_179234_1_.func_180495_p(p_179234_2_); + ++ int hook = net.minecraftforge.event.ForgeEventFactory.onApplyBonemeal(player, p_179234_1_, p_179234_2_, iblockstate, p_179234_0_); + if (hook != 0) return hook > 0; + if (iblockstate.func_177230_c() instanceof IGrowable) { IGrowable igrowable = (IGrowable)iblockstate.func_177230_c(); - -- if (igrowable.func_176473_a(p_179234_1_, p_179234_2_, iblockstate, p_179234_1_.field_72995_K)) -+ if (igrowable.func_176473_a(worldIn, target, iblockstate, worldIn.field_72995_K)) - { -- if (!p_179234_1_.field_72995_K) -+ if (!worldIn.field_72995_K) - { -- if (igrowable.func_180670_a(p_179234_1_, p_179234_1_.field_73012_v, p_179234_2_, iblockstate)) -+ if (igrowable.func_180670_a(worldIn, worldIn.field_73012_v, target, iblockstate)) - { -- igrowable.func_176474_b(p_179234_1_, p_179234_1_.field_73012_v, p_179234_2_, iblockstate); -+ igrowable.func_176474_b(worldIn, worldIn.field_73012_v, target, iblockstate); - } - -- --p_179234_0_.field_77994_a; -+ --stack.field_77994_a; - } - - return true; @@ -142,6 +152,16 @@ p_180617_0_.func_175688_a(EnumParticleTypes.VILLAGER_HAPPY, (double)((float)p_180617_1_.func_177958_n() + field_77697_d.nextFloat()), (double)p_180617_1_.func_177956_o() + (double)field_77697_d.nextFloat() * iblockstate.func_185900_c(p_180617_0_, p_180617_1_).field_72337_e, (double)((float)p_180617_1_.func_177952_p() + field_77697_d.nextFloat()), d0, d1, d2, new int[0]); } diff --git a/patches/minecraft/net/minecraft/item/ItemMap.java.patch b/patches/minecraft/net/minecraft/item/ItemMap.java.patch index 81579ba0e6..598de61809 100644 --- a/patches/minecraft/net/minecraft/item/ItemMap.java.patch +++ b/patches/minecraft/net/minecraft/item/ItemMap.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/item/ItemMap.java +++ ../src-work/minecraft/net/minecraft/item/ItemMap.java -@@ -57,7 +57,7 @@ +@@ -58,7 +58,7 @@ mapdata = new MapData(s); mapdata.field_76197_d = 3; mapdata.func_176054_a((double)p_77873_2_.func_72912_H().func_76079_c(), (double)p_77873_2_.func_72912_H().func_76074_e(), mapdata.field_76197_d); @@ -9,7 +9,7 @@ mapdata.func_76185_a(); p_77873_2_.func_72823_a(s, mapdata); } -@@ -67,7 +67,7 @@ +@@ -68,7 +68,7 @@ public void func_77872_a(World p_77872_1_, Entity p_77872_2_, MapData p_77872_3_) { diff --git a/patches/minecraft/net/minecraft/item/ItemMonsterPlacer.java.patch b/patches/minecraft/net/minecraft/item/ItemMonsterPlacer.java.patch index 04e7c10df2..706719598f 100644 --- a/patches/minecraft/net/minecraft/item/ItemMonsterPlacer.java.patch +++ b/patches/minecraft/net/minecraft/item/ItemMonsterPlacer.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/item/ItemMonsterPlacer.java +++ ../src-work/minecraft/net/minecraft/item/ItemMonsterPlacer.java -@@ -88,7 +88,7 @@ +@@ -89,7 +89,7 @@ p_180614_4_ = p_180614_4_.func_177972_a(p_180614_6_); double d0 = 0.0D; @@ -8,23 +8,4 @@ + if (p_180614_6_ == EnumFacing.UP && iblockstate.func_177230_c() instanceof BlockFence) //Forge: Fix Vanilla bug comparing state instead of block { d0 = 0.5D; - } -@@ -195,15 +195,15 @@ - } - } - -- public static Entity func_77840_a(World p_77840_0_, String p_77840_1_, double p_77840_2_, double p_77840_4_, double p_77840_6_) -+ public static Entity func_77840_a(World p_77840_0_, String name, double p_77840_2_, double p_77840_4_, double p_77840_6_) - { -- if (p_77840_1_ != null && EntityList.field_75627_a.containsKey(p_77840_1_)) -+ if (name != null && EntityList.field_75627_a.containsKey(name)) - { - Entity entity = null; - - for (int i = 0; i < 1; ++i) - { -- entity = EntityList.func_188429_b(p_77840_1_, p_77840_0_); -+ entity = EntityList.func_188429_b(name, p_77840_0_); - - if (entity instanceof EntityLivingBase) - { + } \ No newline at end of file diff --git a/patches/minecraft/net/minecraft/item/ItemRecord.java.patch b/patches/minecraft/net/minecraft/item/ItemRecord.java.patch index 16e050b5be..ae10bcd67c 100644 --- a/patches/minecraft/net/minecraft/item/ItemRecord.java.patch +++ b/patches/minecraft/net/minecraft/item/ItemRecord.java.patch @@ -1,7 +1,7 @@ --- ../src-base/minecraft/net/minecraft/item/ItemRecord.java +++ ../src-work/minecraft/net/minecraft/item/ItemRecord.java -@@ -73,6 +73,17 @@ - return EnumRarity.RARE; +@@ -63,6 +63,17 @@ + p_77624_3_.add(this.func_150927_i()); } + /** @@ -16,5 +16,5 @@ + } + @SideOnly(Side.CLIENT) - public static ItemRecord func_185074_a(SoundEvent p_185074_0_) + public String func_150927_i() { diff --git a/patches/minecraft/net/minecraft/item/ItemStack.java.patch b/patches/minecraft/net/minecraft/item/ItemStack.java.patch index f7f888960b..39a3c359c6 100644 --- a/patches/minecraft/net/minecraft/item/ItemStack.java.patch +++ b/patches/minecraft/net/minecraft/item/ItemStack.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/item/ItemStack.java +++ ../src-work/minecraft/net/minecraft/item/ItemStack.java -@@ -41,7 +41,7 @@ +@@ -42,7 +42,7 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -9,7 +9,7 @@ { public static final DecimalFormat field_111284_a = new DecimalFormat("#.##"); public int field_77994_a; -@@ -55,6 +55,10 @@ +@@ -56,6 +56,10 @@ private Block field_179550_j; private boolean field_179551_k; @@ -20,7 +20,7 @@ public ItemStack(Block p_i1876_1_) { this((Block)p_i1876_1_, 1); -@@ -80,13 +84,15 @@ +@@ -81,13 +85,15 @@ this((Item)p_i1880_1_, p_i1880_2_, 0); } @@ -38,7 +38,7 @@ this.field_77994_a = p_i1881_2_; this.field_77991_e = p_i1881_3_; -@@ -114,7 +120,7 @@ +@@ -115,7 +121,7 @@ public ItemStack func_77979_a(int p_77979_1_) { p_77979_1_ = Math.min(p_77979_1_, this.field_77994_a); @@ -47,7 +47,7 @@ if (this.field_77990_d != null) { -@@ -127,11 +133,12 @@ +@@ -128,11 +134,12 @@ public Item func_77973_b() { @@ -61,7 +61,7 @@ EnumActionResult enumactionresult = this.func_77973_b().func_180614_a(this, p_179546_1_, p_179546_2_, p_179546_3_, p_179546_4_, p_179546_5_, p_179546_6_, p_179546_7_, p_179546_8_); if (enumactionresult == EnumActionResult.SUCCESS) -@@ -169,12 +176,16 @@ +@@ -171,12 +178,16 @@ p_77955_1_.func_74782_a("tag", this.field_77990_d); } @@ -79,7 +79,7 @@ this.field_77994_a = p_77963_1_.func_74771_c("Count"); this.field_77991_e = p_77963_1_.func_74765_d("Damage"); -@@ -196,7 +207,7 @@ +@@ -198,7 +209,7 @@ public int func_77976_d() { @@ -88,7 +88,7 @@ } public boolean func_77985_e() -@@ -206,7 +217,7 @@ +@@ -208,7 +219,7 @@ public boolean func_77984_f() { @@ -97,7 +97,7 @@ } public boolean func_77981_g() -@@ -216,32 +227,27 @@ +@@ -218,32 +229,27 @@ public boolean func_77951_h() { @@ -135,7 +135,7 @@ } public boolean func_96631_a(int p_96631_1_, Random p_96631_2_) -@@ -273,8 +279,8 @@ +@@ -275,8 +281,8 @@ } } @@ -146,7 +146,7 @@ } } -@@ -328,7 +334,7 @@ +@@ -330,7 +336,7 @@ public boolean func_150998_b(IBlockState p_150998_1_) { @@ -155,7 +155,7 @@ } public boolean func_111282_a(EntityPlayer p_111282_1_, EntityLivingBase p_111282_2_, EnumHand p_111282_3_) -@@ -338,7 +344,7 @@ +@@ -340,7 +346,7 @@ public ItemStack func_77946_l() { @@ -164,7 +164,7 @@ if (this.field_77990_d != null) { -@@ -759,6 +765,7 @@ +@@ -762,6 +768,7 @@ } } @@ -172,7 +172,7 @@ return list; } -@@ -869,7 +876,7 @@ +@@ -873,7 +880,7 @@ } else { @@ -181,8 +181,8 @@ } return multimap; -@@ -901,6 +908,18 @@ - +@@ -906,6 +913,18 @@ + @Deprecated public void func_150996_a(Item p_150996_1_) { + if (p_150996_1_ == this.field_151002_e && field_151002_e != null && this.capabilities != null) //Item Didn't change but refreshed @@ -200,7 +200,7 @@ this.field_151002_e = p_150996_1_; } -@@ -987,4 +1006,26 @@ +@@ -991,4 +1010,26 @@ return false; } } diff --git a/patches/minecraft/net/minecraft/item/crafting/FurnaceRecipes.java.patch b/patches/minecraft/net/minecraft/item/crafting/FurnaceRecipes.java.patch index 0d6a291aab..fdeca6c9cd 100644 --- a/patches/minecraft/net/minecraft/item/crafting/FurnaceRecipes.java.patch +++ b/patches/minecraft/net/minecraft/item/crafting/FurnaceRecipes.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/item/crafting/FurnaceRecipes.java +++ ../src-work/minecraft/net/minecraft/item/crafting/FurnaceRecipes.java -@@ -73,6 +73,7 @@ +@@ -74,6 +74,7 @@ public void func_151394_a(ItemStack p_151394_1_, ItemStack p_151394_2_, float p_151394_3_) { @@ -8,7 +8,7 @@ this.field_77604_b.put(p_151394_1_, p_151394_2_); this.field_77605_c.put(p_151394_2_, Float.valueOf(p_151394_3_)); } -@@ -102,6 +103,9 @@ +@@ -104,6 +105,9 @@ public float func_151398_b(ItemStack p_151398_1_) { diff --git a/patches/minecraft/net/minecraft/item/crafting/RecipeFireworks.java.patch b/patches/minecraft/net/minecraft/item/crafting/RecipeFireworks.java.patch index 4db989adfd..d11fff6716 100644 --- a/patches/minecraft/net/minecraft/item/crafting/RecipeFireworks.java.patch +++ b/patches/minecraft/net/minecraft/item/crafting/RecipeFireworks.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/item/crafting/RecipeFireworks.java +++ ../src-work/minecraft/net/minecraft/item/crafting/RecipeFireworks.java -@@ -86,9 +86,9 @@ +@@ -87,9 +87,9 @@ { this.field_92102_a = new ItemStack(Items.field_151152_bP); @@ -11,7 +11,7 @@ NBTTagCompound nbttagcompound3 = new NBTTagCompound(); NBTTagList nbttaglist = new NBTTagList(); -@@ -105,9 +105,9 @@ +@@ -106,9 +106,9 @@ nbttagcompound3.func_74782_a("Explosions", nbttaglist); nbttagcompound3.func_74774_a("Flight", (byte)j); nbttagcompound1.func_74782_a("Fireworks", nbttagcompound3); @@ -22,7 +22,7 @@ return true; } else if (j == 1 && i == 0 && l == 0 && k > 0 && j1 <= 1) -@@ -249,11 +249,7 @@ +@@ -252,11 +252,7 @@ for (int i = 0; i < aitemstack.length; ++i) { ItemStack itemstack = p_179532_1_.func_70301_a(i); diff --git a/patches/minecraft/net/minecraft/item/crafting/RecipeRepairItem.java.patch b/patches/minecraft/net/minecraft/item/crafting/RecipeRepairItem.java.patch index bda702d1b8..49a16cc358 100644 --- a/patches/minecraft/net/minecraft/item/crafting/RecipeRepairItem.java.patch +++ b/patches/minecraft/net/minecraft/item/crafting/RecipeRepairItem.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/item/crafting/RecipeRepairItem.java +++ ../src-work/minecraft/net/minecraft/item/crafting/RecipeRepairItem.java -@@ -25,7 +25,7 @@ +@@ -26,7 +26,7 @@ { ItemStack itemstack1 = (ItemStack)list.get(0); @@ -9,7 +9,7 @@ { return false; } -@@ -52,7 +52,7 @@ +@@ -54,7 +54,7 @@ { ItemStack itemstack1 = (ItemStack)list.get(0); @@ -18,7 +18,7 @@ { return null; } -@@ -65,7 +65,7 @@ +@@ -67,7 +67,7 @@ ItemStack itemstack2 = (ItemStack)list.get(0); ItemStack itemstack3 = (ItemStack)list.get(1); @@ -27,7 +27,7 @@ { Item item = itemstack2.func_77973_b(); int j = item.func_77612_l() - itemstack2.func_77952_i(); -@@ -102,11 +102,7 @@ +@@ -105,11 +105,7 @@ for (int i = 0; i < aitemstack.length; ++i) { ItemStack itemstack = p_179532_1_.func_70301_a(i); diff --git a/patches/minecraft/net/minecraft/item/crafting/RecipesArmorDyes.java.patch b/patches/minecraft/net/minecraft/item/crafting/RecipesArmorDyes.java.patch index 15ed231ae0..e4e23c5615 100644 --- a/patches/minecraft/net/minecraft/item/crafting/RecipesArmorDyes.java.patch +++ b/patches/minecraft/net/minecraft/item/crafting/RecipesArmorDyes.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/item/crafting/RecipesArmorDyes.java +++ ../src-work/minecraft/net/minecraft/item/crafting/RecipesArmorDyes.java -@@ -146,11 +146,7 @@ +@@ -149,11 +149,7 @@ for (int i = 0; i < aitemstack.length; ++i) { ItemStack itemstack = p_179532_1_.func_70301_a(i); diff --git a/patches/minecraft/net/minecraft/item/crafting/RecipesBanners.java.patch b/patches/minecraft/net/minecraft/item/crafting/RecipesBanners.java.patch index d5afab9c37..8650ce0031 100644 --- a/patches/minecraft/net/minecraft/item/crafting/RecipesBanners.java.patch +++ b/patches/minecraft/net/minecraft/item/crafting/RecipesBanners.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/item/crafting/RecipesBanners.java +++ ../src-work/minecraft/net/minecraft/item/crafting/RecipesBanners.java -@@ -89,9 +89,10 @@ +@@ -91,9 +91,10 @@ { ItemStack itemstack2 = p_77572_1_.func_70301_a(j); @@ -13,7 +13,7 @@ break; } } -@@ -135,11 +136,7 @@ +@@ -138,11 +139,7 @@ for (int i = 0; i < aitemstack.length; ++i) { ItemStack itemstack = p_179532_1_.func_70301_a(i); @@ -26,7 +26,7 @@ } return aitemstack; -@@ -164,7 +161,7 @@ +@@ -168,7 +165,7 @@ if (itemstack != null && itemstack.func_77973_b() != Items.field_179564_cE) { @@ -35,7 +35,7 @@ { if (flag2) { -@@ -204,7 +201,7 @@ +@@ -208,7 +205,7 @@ if (itemstack1 != null && itemstack1.func_77973_b() != Items.field_179564_cE) { @@ -44,7 +44,7 @@ { flag = false; break; -@@ -245,6 +242,38 @@ +@@ -249,6 +246,38 @@ return null; } @@ -83,7 +83,7 @@ } public static class RecipeDuplicatePattern implements IRecipe -@@ -356,9 +385,9 @@ +@@ -362,9 +391,9 @@ if (itemstack != null) { diff --git a/patches/minecraft/net/minecraft/item/crafting/RecipesMapCloning.java.patch b/patches/minecraft/net/minecraft/item/crafting/RecipesMapCloning.java.patch index b67dc5759a..31f2fbe1d0 100644 --- a/patches/minecraft/net/minecraft/item/crafting/RecipesMapCloning.java.patch +++ b/patches/minecraft/net/minecraft/item/crafting/RecipesMapCloning.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/item/crafting/RecipesMapCloning.java +++ ../src-work/minecraft/net/minecraft/item/crafting/RecipesMapCloning.java -@@ -108,11 +108,7 @@ +@@ -111,11 +111,7 @@ for (int i = 0; i < aitemstack.length; ++i) { ItemStack itemstack = p_179532_1_.func_70301_a(i); diff --git a/patches/minecraft/net/minecraft/item/crafting/ShapedRecipes.java.patch b/patches/minecraft/net/minecraft/item/crafting/ShapedRecipes.java.patch index 1db66a2979..e04487d29e 100644 --- a/patches/minecraft/net/minecraft/item/crafting/ShapedRecipes.java.patch +++ b/patches/minecraft/net/minecraft/item/crafting/ShapedRecipes.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/item/crafting/ShapedRecipes.java +++ ../src-work/minecraft/net/minecraft/item/crafting/ShapedRecipes.java -@@ -33,11 +33,7 @@ +@@ -35,11 +35,7 @@ for (int i = 0; i < aitemstack.length; ++i) { ItemStack itemstack = p_179532_1_.func_70301_a(i); diff --git a/patches/minecraft/net/minecraft/item/crafting/ShapelessRecipes.java.patch b/patches/minecraft/net/minecraft/item/crafting/ShapelessRecipes.java.patch index e2155f1986..5cd70c62bd 100644 --- a/patches/minecraft/net/minecraft/item/crafting/ShapelessRecipes.java.patch +++ b/patches/minecraft/net/minecraft/item/crafting/ShapelessRecipes.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/item/crafting/ShapelessRecipes.java +++ ../src-work/minecraft/net/minecraft/item/crafting/ShapelessRecipes.java -@@ -29,11 +29,7 @@ +@@ -31,11 +31,7 @@ for (int i = 0; i < aitemstack.length; ++i) { ItemStack itemstack = p_179532_1_.func_70301_a(i); diff --git a/patches/minecraft/net/minecraft/nbt/NBTTagCompound.java.patch b/patches/minecraft/net/minecraft/nbt/NBTTagCompound.java.patch index c626278f8a..7ce73e17c7 100644 --- a/patches/minecraft/net/minecraft/nbt/NBTTagCompound.java.patch +++ b/patches/minecraft/net/minecraft/nbt/NBTTagCompound.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/nbt/NBTTagCompound.java +++ ../src-work/minecraft/net/minecraft/nbt/NBTTagCompound.java -@@ -454,6 +454,7 @@ +@@ -456,6 +456,7 @@ private static byte func_152447_a(DataInput p_152447_0_, NBTSizeTracker p_152447_1_) throws IOException { @@ -8,7 +8,7 @@ return p_152447_0_.readByte(); } -@@ -464,6 +465,7 @@ +@@ -466,6 +467,7 @@ static NBTBase func_152449_a(byte p_152449_0_, String p_152449_1_, DataInput p_152449_2_, int p_152449_3_, NBTSizeTracker p_152449_4_) throws IOException { diff --git a/patches/minecraft/net/minecraft/network/NetworkManager.java.patch b/patches/minecraft/net/minecraft/network/NetworkManager.java.patch index e2a7a2c035..28063a3f79 100644 --- a/patches/minecraft/net/minecraft/network/NetworkManager.java.patch +++ b/patches/minecraft/net/minecraft/network/NetworkManager.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/network/NetworkManager.java +++ ../src-work/minecraft/net/minecraft/network/NetworkManager.java -@@ -89,6 +89,11 @@ +@@ -90,6 +90,11 @@ this.field_179294_g = p_i46004_1_; } @@ -12,7 +12,7 @@ public void channelActive(ChannelHandlerContext p_channelActive_1_) throws Exception { super.channelActive(p_channelActive_1_); -@@ -205,7 +210,7 @@ +@@ -206,7 +211,7 @@ final EnumConnectionState enumconnectionstate = EnumConnectionState.func_150752_a(p_150732_1_); final EnumConnectionState enumconnectionstate1 = (EnumConnectionState)this.field_150746_k.attr(field_150739_c).get(); @@ -21,7 +21,7 @@ { field_150735_g.debug("Disabled auto read"); this.field_150746_k.config().setAutoRead(false); -@@ -213,7 +218,7 @@ +@@ -214,7 +219,7 @@ if (this.field_150746_k.eventLoop().inEventLoop()) { @@ -30,7 +30,7 @@ { this.func_150723_a(enumconnectionstate); } -@@ -233,7 +238,7 @@ +@@ -234,7 +239,7 @@ { public void run() { @@ -39,7 +39,7 @@ { NetworkManager.this.func_150723_a(enumconnectionstate); } -@@ -452,6 +457,11 @@ +@@ -453,6 +458,11 @@ } } diff --git a/patches/minecraft/net/minecraft/potion/Potion.java.patch b/patches/minecraft/net/minecraft/potion/Potion.java.patch index 438c3e5d6e..a2671ff10c 100644 --- a/patches/minecraft/net/minecraft/potion/Potion.java.patch +++ b/patches/minecraft/net/minecraft/potion/Potion.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/potion/Potion.java +++ ../src-work/minecraft/net/minecraft/potion/Potion.java -@@ -21,9 +21,9 @@ +@@ -22,9 +22,9 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -12,7 +12,7 @@ private final Map field_111188_I = Maps.newHashMap(); private final boolean field_76418_K; private final int field_76414_N; -@@ -195,7 +195,6 @@ +@@ -198,7 +198,6 @@ return this.field_76417_J; } @@ -20,7 +20,7 @@ public boolean func_76398_f() { return this.field_76418_K; -@@ -266,7 +265,61 @@ +@@ -269,7 +268,61 @@ return p_111183_2_.func_111164_d() * (double)(p_111183_1_ + 1); } diff --git a/patches/minecraft/net/minecraft/potion/PotionType.java.patch b/patches/minecraft/net/minecraft/potion/PotionType.java.patch index 43c7e4b7d1..56a32b4805 100644 --- a/patches/minecraft/net/minecraft/potion/PotionType.java.patch +++ b/patches/minecraft/net/minecraft/potion/PotionType.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/potion/PotionType.java +++ ../src-work/minecraft/net/minecraft/potion/PotionType.java -@@ -8,10 +8,11 @@ +@@ -9,10 +9,11 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; diff --git a/patches/minecraft/net/minecraft/realms/RealmsConnect.java.patch b/patches/minecraft/net/minecraft/realms/RealmsConnect.java.patch index cc68754548..48c2e07a72 100644 --- a/patches/minecraft/net/minecraft/realms/RealmsConnect.java.patch +++ b/patches/minecraft/net/minecraft/realms/RealmsConnect.java.patch @@ -12,8 +12,8 @@ return; } -- RealmsConnect.this.connection.func_179290_a(new C00Handshake(107, p_connect_1_, p_connect_2_, EnumConnectionState.LOGIN)); -+ RealmsConnect.this.connection.func_179290_a(new C00Handshake(107, p_connect_1_, p_connect_2_, EnumConnectionState.LOGIN, true)); +- RealmsConnect.this.connection.func_179290_a(new C00Handshake(110, p_connect_1_, p_connect_2_, EnumConnectionState.LOGIN)); ++ RealmsConnect.this.connection.func_179290_a(new C00Handshake(110, p_connect_1_, p_connect_2_, EnumConnectionState.LOGIN, true)); if (RealmsConnect.this.aborted) { diff --git a/patches/minecraft/net/minecraft/server/MinecraftServer.java.patch b/patches/minecraft/net/minecraft/server/MinecraftServer.java.patch index 213ce818bb..b2ee322bbf 100644 --- a/patches/minecraft/net/minecraft/server/MinecraftServer.java.patch +++ b/patches/minecraft/net/minecraft/server/MinecraftServer.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/server/MinecraftServer.java +++ ../src-work/minecraft/net/minecraft/server/MinecraftServer.java -@@ -100,7 +100,7 @@ +@@ -102,7 +102,7 @@ @SideOnly(Side.SERVER) private String field_71320_r; private int field_71319_s = -1; @@ -9,7 +9,7 @@ private PlayerList field_71318_t; private boolean field_71317_u = true; private boolean field_71316_v; -@@ -117,7 +117,8 @@ +@@ -119,7 +119,8 @@ private int field_71280_D; private int field_143008_E = 0; public final long[] field_71311_j = new long[100]; @@ -19,7 +19,7 @@ private KeyPair field_71292_I; private String field_71293_J; private String field_71294_K; -@@ -215,8 +216,6 @@ +@@ -217,8 +218,6 @@ { this.func_71237_c(p_71247_1_); this.func_71192_d("menu.loadingLevel"); @@ -28,7 +28,7 @@ ISaveHandler isavehandler = this.field_71310_m.func_75804_a(p_71247_1_, true); this.func_175584_a(this.func_71270_I(), isavehandler); WorldInfo worldinfo = isavehandler.func_75757_d(); -@@ -247,47 +246,21 @@ +@@ -249,47 +248,21 @@ worldsettings = new WorldSettings(worldinfo); } @@ -39,7 +39,7 @@ { - int j = 0; + WorldServer world = (dim == 0 ? overWorld : (WorldServer)new WorldServerMulti(this, isavehandler, dim, overWorld, field_71304_b).func_175643_b()); -+ world.func_72954_a(new WorldManager(this, world)); ++ world.func_72954_a(new ServerWorldEventHandler(this, world)); - if (i == 1) - { @@ -69,7 +69,7 @@ - this.field_71305_c[i] = (WorldServer)(new WorldServerMulti(this, isavehandler, j, this.field_71305_c[0], this.field_71304_b)).func_175643_b(); - } - -- this.field_71305_c[i].func_72954_a(new WorldManager(this, this.field_71305_c[i])); +- this.field_71305_c[i].func_72954_a(new ServerWorldEventHandler(this, this.field_71305_c[i])); - if (!this.func_71264_H()) { @@ -84,7 +84,7 @@ this.func_147139_a(this.func_147135_j()); this.func_71222_d(); } -@@ -302,7 +275,7 @@ +@@ -304,7 +277,7 @@ this.func_71192_d("menu.generatingTerrain"); int j1 = 0; field_147145_h.info("Preparing start region for level " + j1); @@ -93,7 +93,7 @@ BlockPos blockpos = worldserver.func_175694_M(); long k1 = func_130071_aq(); -@@ -420,9 +393,15 @@ +@@ -422,9 +395,15 @@ { if (this.field_71305_c[j] != null) { @@ -110,7 +110,7 @@ } if (this.field_71307_n.func_76468_d()) -@@ -447,6 +426,7 @@ +@@ -449,6 +428,7 @@ { if (this.func_71197_b()) { @@ -118,7 +118,7 @@ this.field_175591_ab = func_130071_aq(); long i = 0L; this.field_147147_p.func_151315_a(new TextComponentString(this.field_71286_C)); -@@ -491,12 +471,20 @@ +@@ -493,12 +473,20 @@ Thread.sleep(Math.max(1L, 50L - i)); this.field_71296_Q = true; } @@ -139,7 +139,7 @@ catch (Throwable throwable1) { field_147145_h.error("Encountered an unexpected exception", throwable1); -@@ -522,14 +510,15 @@ +@@ -524,14 +512,15 @@ field_147145_h.error("We were unable to save this crash report to disk."); } @@ -156,7 +156,7 @@ } catch (Throwable throwable) { -@@ -537,6 +526,8 @@ +@@ -539,6 +528,8 @@ } finally { @@ -165,7 +165,7 @@ this.func_71240_o(); } } -@@ -604,6 +595,7 @@ +@@ -606,6 +597,7 @@ public void func_71217_p() { long i = System.nanoTime(); @@ -173,7 +173,7 @@ ++this.field_71315_w; if (this.field_71295_T) -@@ -630,6 +622,7 @@ +@@ -632,6 +624,7 @@ Collections.shuffle(Arrays.asList(agameprofile)); this.field_147147_p.func_151318_b().func_151330_a(agameprofile); @@ -181,7 +181,7 @@ } if (this.field_71315_w % 900 == 0) -@@ -657,6 +650,7 @@ +@@ -659,6 +652,7 @@ this.field_71304_b.func_76319_b(); this.field_71304_b.func_76319_b(); @@ -189,7 +189,7 @@ } public void func_71190_q() -@@ -672,24 +666,28 @@ +@@ -674,24 +668,28 @@ } this.field_71304_b.func_76318_c("levels"); @@ -222,7 +222,7 @@ try { -@@ -713,6 +711,7 @@ +@@ -715,6 +713,7 @@ throw new ReportedException(crashreport1); } @@ -230,7 +230,7 @@ this.field_71304_b.func_76319_b(); this.field_71304_b.func_76320_a("tracker"); worldserver.func_73039_n().func_72788_a(); -@@ -720,9 +719,11 @@ +@@ -722,9 +721,11 @@ this.field_71304_b.func_76319_b(); } @@ -243,7 +243,7 @@ this.field_71304_b.func_76318_c("connection"); this.func_147137_ag().func_151269_c(); this.field_71304_b.func_76318_c("players"); -@@ -744,6 +745,7 @@ +@@ -746,6 +747,7 @@ public void func_71256_s() { @@ -251,7 +251,7 @@ this.field_175590_aa = new Thread(this, "Server thread"); this.field_175590_aa.start(); } -@@ -760,7 +762,13 @@ +@@ -762,7 +764,13 @@ public WorldServer func_71218_a(int p_71218_1_) { @@ -266,7 +266,7 @@ } public String func_71249_w() -@@ -790,7 +798,7 @@ +@@ -792,7 +800,7 @@ public String getServerModName() { diff --git a/patches/minecraft/net/minecraft/server/dedicated/DedicatedServer.java.patch b/patches/minecraft/net/minecraft/server/dedicated/DedicatedServer.java.patch index 719172a642..fb8a487b02 100644 --- a/patches/minecraft/net/minecraft/server/dedicated/DedicatedServer.java.patch +++ b/patches/minecraft/net/minecraft/server/dedicated/DedicatedServer.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/server/dedicated/DedicatedServer.java +++ ../src-work/minecraft/net/minecraft/server/dedicated/DedicatedServer.java -@@ -56,6 +56,7 @@ +@@ -55,6 +55,7 @@ private boolean field_71338_p; private WorldSettings.GameType field_71337_q; private boolean field_71335_s; @@ -8,7 +8,7 @@ public DedicatedServer(File p_i47086_1_, DataFixer p_i47086_2_, YggdrasilAuthenticationService p_i47086_3_, MinecraftSessionService p_i47086_4_, GameProfileRepository p_i47086_5_, PlayerProfileCache p_i47086_6_) { -@@ -89,6 +90,7 @@ +@@ -88,6 +89,7 @@ { public void run() { @@ -16,7 +16,7 @@ BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(System.in)); String s4; -@@ -114,6 +116,8 @@ +@@ -113,6 +115,8 @@ field_155771_h.warn("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\""); } @@ -25,7 +25,7 @@ field_155771_h.info("Loading properties"); this.field_71340_o = new PropertyManager(new File("server.properties")); this.field_154332_n = new ServerEula(new File("eula.txt")); -@@ -205,6 +209,7 @@ +@@ -204,6 +208,7 @@ } else { @@ -33,7 +33,7 @@ this.func_184105_a(new DedicatedPlayerList(this)); long j = System.nanoTime(); -@@ -254,6 +259,7 @@ +@@ -253,6 +258,7 @@ TileEntitySkull.func_184293_a(this.func_152358_ax()); TileEntitySkull.func_184294_a(this.func_147130_as()); PlayerProfileCache.func_187320_a(this.func_71266_T()); @@ -41,7 +41,7 @@ field_155771_h.info("Preparing level \"" + this.func_71270_I() + "\""); this.func_71247_a(this.func_71270_I(), this.func_71270_I(), k, worldtype, s2); long i1 = System.nanoTime() - j; -@@ -282,7 +288,7 @@ +@@ -281,7 +287,7 @@ thread1.start(); } @@ -50,7 +50,7 @@ } } } -@@ -506,7 +512,7 @@ +@@ -505,7 +511,7 @@ public boolean func_175579_a(World p_175579_1_, BlockPos p_175579_2_, EntityPlayer p_175579_3_) { @@ -59,7 +59,7 @@ { return false; } -@@ -580,6 +586,9 @@ +@@ -579,6 +585,9 @@ return this.field_71340_o.func_73669_a("network-compression-threshold", super.func_175577_aI()); } diff --git a/patches/minecraft/net/minecraft/server/integrated/IntegratedServer.java.patch b/patches/minecraft/net/minecraft/server/integrated/IntegratedServer.java.patch index 473fa124d4..43fcd26f70 100644 --- a/patches/minecraft/net/minecraft/server/integrated/IntegratedServer.java.patch +++ b/patches/minecraft/net/minecraft/server/integrated/IntegratedServer.java.patch @@ -23,7 +23,7 @@ - - if (i == 1) + WorldServer world = (dim == 0 ? overWorld : (WorldServer)(new WorldServerMulti(this, isavehandler, dim, overWorld, this.field_71304_b)).func_175643_b()); -+ world.func_72954_a(new WorldManager(this, world)); ++ world.func_72954_a(new ServerWorldEventHandler(this, world)); + if (!this.func_71264_H()) { - j = -1; @@ -53,7 +53,7 @@ - this.field_71305_c[i] = (WorldServer)(new WorldServerMulti(this, isavehandler, j, this.field_71305_c[0], this.field_71304_b)).func_175643_b(); - } - -- this.field_71305_c[i].func_72954_a(new WorldManager(this, this.field_71305_c[i])); +- this.field_71305_c[i].func_72954_a(new ServerWorldEventHandler(this, this.field_71305_c[i])); + net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.WorldEvent.Load(world)); } diff --git a/patches/minecraft/net/minecraft/server/management/PlayerChunkMapEntry.java.patch b/patches/minecraft/net/minecraft/server/management/PlayerChunkMapEntry.java.patch new file mode 100644 index 0000000000..443d0d914b --- /dev/null +++ b/patches/minecraft/net/minecraft/server/management/PlayerChunkMapEntry.java.patch @@ -0,0 +1,117 @@ +--- ../src-base/minecraft/net/minecraft/server/management/PlayerChunkMapEntry.java ++++ ../src-work/minecraft/net/minecraft/server/management/PlayerChunkMapEntry.java +@@ -32,12 +32,19 @@ + private int field_187288_h; + private long field_187289_i; + private boolean field_187290_j; ++ private Runnable loadedRunnable = new Runnable() ++ { ++ public void run() ++ { ++ PlayerChunkMapEntry.this.field_187286_f = PlayerChunkMapEntry.this.field_187282_b.func_72688_a().func_72863_F().func_186028_c(PlayerChunkMapEntry.this.field_187284_d.field_77276_a, PlayerChunkMapEntry.this.field_187284_d.field_77275_b); ++ } ++ }; + + public PlayerChunkMapEntry(PlayerChunkMap p_i1518_1_, int p_i1518_2_, int p_i1518_3_) + { + this.field_187282_b = p_i1518_1_; + this.field_187284_d = new ChunkPos(p_i1518_2_, p_i1518_3_); +- this.field_187286_f = p_i1518_1_.func_72688_a().func_72863_F().func_186028_c(p_i1518_2_, p_i1518_3_); ++ p_i1518_1_.func_72688_a().func_72863_F().loadChunk(p_i1518_2_, p_i1518_3_, this.loadedRunnable); + } + + public ChunkPos func_187264_a() +@@ -71,6 +78,20 @@ + { + if (this.field_187283_c.contains(p_187277_1_)) + { ++ // If we haven't loaded yet don't load the chunk just so we can clean it up ++ if (this.field_187286_f == null) ++ { ++ this.field_187283_c.remove(p_187277_1_); ++ ++ if (this.field_187283_c.isEmpty()) ++ { ++ net.minecraftforge.common.chunkio.ChunkIOExecutor.dropQueuedChunkLoad(this.field_187282_b.func_72688_a(), this.field_187284_d.field_77276_a, this.field_187284_d.field_77275_b, this.loadedRunnable); ++ this.field_187282_b.func_187305_b(this); ++ } ++ ++ return; ++ } ++ + if (this.field_187290_j) + { + p_187277_1_.field_71135_a.func_147359_a(new SPacketUnloadChunk(this.field_187284_d.field_77276_a, this.field_187284_d.field_77275_b)); +@@ -78,6 +99,8 @@ + + this.field_187283_c.remove(p_187277_1_); + ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.ChunkWatchEvent.UnWatch(this.field_187284_d, p_187277_1_)); ++ + if (this.field_187283_c.isEmpty()) + { + this.field_187282_b.func_187305_b(this); +@@ -167,7 +190,7 @@ + + this.field_187288_h |= 1 << (p_187265_2_ >> 4); + +- if (this.field_187287_g < 64) ++ //Forge; Cache everything, so always run + { + short short1 = (short)(p_187265_1_ << 12 | p_187265_3_ << 8 | p_187265_2_); + +@@ -178,7 +201,8 @@ + return; + } + } +- ++ if (this.field_187287_g == this.field_187285_e.length) ++ this.field_187285_e = java.util.Arrays.copyOf(this.field_187285_e, this.field_187285_e.length << 1); + this.field_187285_e[this.field_187287_g++] = short1; + } + } +@@ -195,6 +219,7 @@ + } + } + ++ @SuppressWarnings("unused") + public void func_187280_d() + { + if (this.field_187290_j && this.field_187286_f != null) +@@ -208,28 +233,32 @@ + int k = (this.field_187285_e[0] >> 8 & 15) + this.field_187284_d.field_77275_b * 16; + BlockPos blockpos = new BlockPos(i, j, k); + this.func_187267_a(new SPacketBlockChange(this.field_187282_b.func_72688_a(), blockpos)); ++ net.minecraft.block.state.IBlockState state = this.field_187282_b.func_72688_a().func_180495_p(blockpos); + +- if (this.field_187282_b.func_72688_a().func_180495_p(blockpos).func_177230_c().func_149716_u()) ++ if (state.func_177230_c().hasTileEntity(state)) + { + this.func_187273_a(this.field_187282_b.func_72688_a().func_175625_s(blockpos)); + } + } +- else if (this.field_187287_g == 64) ++ else if (this.field_187287_g >= net.minecraftforge.common.ForgeModContainer.clumpingThreshold) + { + this.func_187267_a(new SPacketChunkData(this.field_187286_f, this.field_187288_h)); ++ //TODO: FDix Mojang's fuckup to modded by combining all TE data into the chunk data packet... seriously... packet size explosion! + } + else + { + this.func_187267_a(new SPacketMultiBlockChange(this.field_187287_g, this.field_187285_e, this.field_187286_f)); +- ++ //} Keep this in the else until we figure out a fix for mojang's derpitude on the data packet so we don't double send crap. ++ //{// Forge: Send only the tile entities that are updated, Adding this brace lets us keep the indent and the patch small + for (int l = 0; l < this.field_187287_g; ++l) + { + int i1 = (this.field_187285_e[l] >> 12 & 15) + this.field_187284_d.field_77276_a * 16; + int j1 = this.field_187285_e[l] & 255; + int k1 = (this.field_187285_e[l] >> 8 & 15) + this.field_187284_d.field_77275_b * 16; + BlockPos blockpos1 = new BlockPos(i1, j1, k1); ++ net.minecraft.block.state.IBlockState state = this.field_187282_b.func_72688_a().func_180495_p(blockpos1); + +- if (this.field_187282_b.func_72688_a().func_180495_p(blockpos1).func_177230_c().func_149716_u()) ++ if (state.func_177230_c().hasTileEntity(state)) + { + this.func_187273_a(this.field_187282_b.func_72688_a().func_175625_s(blockpos1)); + } diff --git a/patches/minecraft/net/minecraft/server/management/PlayerInteractionManager.java.patch b/patches/minecraft/net/minecraft/server/management/PlayerInteractionManager.java.patch index 623e191d2f..830573df1a 100644 --- a/patches/minecraft/net/minecraft/server/management/PlayerInteractionManager.java.patch +++ b/patches/minecraft/net/minecraft/server/management/PlayerInteractionManager.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/server/management/PlayerInteractionManager.java +++ ../src-work/minecraft/net/minecraft/server/management/PlayerInteractionManager.java -@@ -27,6 +27,8 @@ +@@ -28,6 +28,8 @@ public class PlayerInteractionManager { @@ -9,7 +9,7 @@ public World field_73092_a; public EntityPlayerMP field_73090_b; private WorldSettings.GameType field_73091_c = WorldSettings.GameType.NOT_SET; -@@ -88,7 +90,7 @@ +@@ -89,7 +91,7 @@ IBlockState iblockstate = this.field_73092_a.func_180495_p(this.field_180241_i); Block block = iblockstate.func_177230_c(); @@ -18,7 +18,7 @@ { this.field_73097_j = false; } -@@ -115,7 +117,7 @@ +@@ -116,7 +118,7 @@ IBlockState iblockstate1 = this.field_73092_a.func_180495_p(this.field_180240_f); Block block1 = iblockstate1.func_177230_c(); @@ -27,7 +27,7 @@ { this.field_73092_a.func_175715_c(this.field_73090_b.func_145782_y(), this.field_180240_f, -1); this.field_73094_o = -1; -@@ -124,7 +126,7 @@ +@@ -125,7 +127,7 @@ else { int k = this.field_73100_i - this.field_73089_e; @@ -36,7 +36,7 @@ int l = (int)(f1 * 10.0F); if (l != this.field_73094_o) -@@ -138,6 +140,15 @@ +@@ -139,6 +141,15 @@ public void func_180784_a(BlockPos p_180784_1_, EnumFacing p_180784_2_) { @@ -52,7 +52,7 @@ if (this.func_73083_d()) { if (!this.field_73092_a.func_175719_a((EntityPlayer)null, p_180784_1_, p_180784_2_)) -@@ -173,17 +184,36 @@ +@@ -174,17 +185,36 @@ } } @@ -93,7 +93,7 @@ { this.func_180237_b(p_180784_1_); } -@@ -205,7 +235,7 @@ +@@ -206,7 +236,7 @@ int i = this.field_73100_i - this.field_73089_e; IBlockState iblockstate = this.field_73092_a.func_180495_p(p_180785_1_); @@ -102,7 +102,7 @@ { float f = iblockstate.func_185903_a(this.field_73090_b, this.field_73090_b.field_70170_p, p_180785_1_) * (float)(i + 1); -@@ -234,13 +264,17 @@ +@@ -235,13 +265,17 @@ private boolean func_180235_c(BlockPos p_180235_1_) { @@ -124,7 +124,7 @@ } return flag; -@@ -248,7 +282,8 @@ +@@ -249,7 +283,8 @@ public boolean func_180237_b(BlockPos p_180237_1_) { @@ -134,7 +134,7 @@ { return false; } -@@ -264,41 +299,22 @@ +@@ -265,41 +300,22 @@ } else { @@ -181,7 +181,7 @@ if (itemstack1 != null) { -@@ -310,12 +326,18 @@ +@@ -311,12 +327,18 @@ } } @@ -200,7 +200,7 @@ return flag1; } } -@@ -333,6 +355,7 @@ +@@ -334,6 +356,7 @@ } else { @@ -208,7 +208,7 @@ int i = p_187250_3_.field_77994_a; int j = p_187250_3_.func_77960_j(); ActionResult actionresult = p_187250_3_.func_77957_a(p_187250_2_, p_187250_1_, p_187250_4_); -@@ -359,6 +382,7 @@ +@@ -360,6 +383,7 @@ if (itemstack.field_77994_a == 0) { p_187250_1_.func_184611_a(p_187250_4_, (ItemStack)null); @@ -216,7 +216,7 @@ } if (!p_187250_1_.func_184587_cr()) -@@ -403,13 +427,26 @@ +@@ -404,13 +428,26 @@ } else { @@ -246,7 +246,7 @@ } } -@@ -429,14 +466,21 @@ +@@ -430,14 +467,21 @@ { int j = p_187251_3_.func_77960_j(); int i = p_187251_3_.field_77994_a; @@ -268,7 +268,7 @@ } } } -@@ -445,4 +489,13 @@ +@@ -446,4 +490,13 @@ { this.field_73092_a = p_73080_1_; } diff --git a/patches/minecraft/net/minecraft/server/management/PlayerList.java.patch b/patches/minecraft/net/minecraft/server/management/PlayerList.java.patch index 0ca5c6ef71..12da4cfaf1 100644 --- a/patches/minecraft/net/minecraft/server/management/PlayerList.java.patch +++ b/patches/minecraft/net/minecraft/server/management/PlayerList.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/server/management/PlayerList.java +++ ../src-work/minecraft/net/minecraft/server/management/PlayerList.java -@@ -101,7 +101,7 @@ +@@ -102,7 +102,7 @@ this.field_72405_c = 8; } @@ -9,7 +9,7 @@ { GameProfile gameprofile = p_72355_2_.func_146103_bH(); PlayerProfileCache playerprofilecache = this.field_72400_f.func_152358_ax(); -@@ -110,6 +110,17 @@ +@@ -111,6 +111,17 @@ playerprofilecache.func_152649_a(gameprofile); NBTTagCompound nbttagcompound = this.func_72380_a(p_72355_2_); p_72355_2_.func_70029_a(this.field_72400_f.func_71218_a(p_72355_2_.field_71093_bK)); @@ -27,7 +27,7 @@ p_72355_2_.field_71134_c.func_73080_a((WorldServer)p_72355_2_.field_70170_p); String s1 = "local"; -@@ -123,8 +134,8 @@ +@@ -124,8 +135,8 @@ WorldInfo worldinfo = worldserver.func_72912_H(); BlockPos blockpos = worldserver.func_175694_M(); this.func_72381_a(p_72355_2_, (EntityPlayerMP)null, worldserver); @@ -38,7 +38,7 @@ nethandlerplayserver.func_147359_a(new SPacketCustomPayload("MC|Brand", (new PacketBuffer(Unpooled.buffer())).func_180714_a(this.func_72365_p().getServerModName()))); nethandlerplayserver.func_147359_a(new SPacketServerDifficulty(worldinfo.func_176130_y(), worldinfo.func_176123_z())); nethandlerplayserver.func_147359_a(new SPacketSpawnPosition(blockpos)); -@@ -213,6 +224,7 @@ +@@ -214,6 +225,7 @@ } p_72355_2_.func_71116_b(); @@ -46,7 +46,7 @@ } protected void func_96456_a(ServerScoreboard p_96456_1_, EntityPlayerMP p_96456_2_) -@@ -302,6 +314,7 @@ +@@ -303,6 +315,7 @@ nbttagcompound1 = this.field_72400_f.func_184110_aI().func_188257_a(FixTypes.PLAYER, nbttagcompound); p_72380_1_.func_70020_e(nbttagcompound1); field_148546_d.debug("loading single player"); @@ -54,7 +54,7 @@ } else { -@@ -311,8 +324,24 @@ +@@ -312,8 +325,24 @@ return nbttagcompound1; } @@ -77,9 +77,9 @@ + if (p_72391_1_.field_71135_a == null) return; + this.field_72412_k.func_75753_a(p_72391_1_); - StatisticsFile statisticsfile = (StatisticsFile)this.field_148547_k.get(p_72391_1_.func_110124_au()); + StatisticsManagerServer statisticsmanagerserver = (StatisticsManagerServer)this.field_148547_k.get(p_72391_1_.func_110124_au()); -@@ -334,6 +363,7 @@ +@@ -335,6 +364,7 @@ p_72377_1_.field_71135_a.func_147359_a(new SPacketPlayerListItem(SPacketPlayerListItem.Action.ADD_PLAYER, new EntityPlayerMP[] {(EntityPlayerMP)this.field_72404_b.get(i)})); } @@ -87,7 +87,7 @@ worldserver.func_72838_d(p_72377_1_); this.func_72375_a(p_72377_1_, (WorldServer)null); } -@@ -345,6 +375,7 @@ +@@ -346,6 +376,7 @@ public void func_72367_e(EntityPlayerMP p_72367_1_) { @@ -95,7 +95,7 @@ WorldServer worldserver = p_72367_1_.func_71121_q(); p_72367_1_.func_71029_a(StatList.field_75947_j); this.func_72391_b(p_72367_1_); -@@ -379,6 +410,7 @@ +@@ -380,6 +411,7 @@ this.field_177454_f.remove(uuid); this.field_148547_k.remove(uuid); } @@ -103,7 +103,7 @@ this.func_148540_a(new SPacketPlayerListItem(SPacketPlayerListItem.Action.REMOVE_PLAYER, new EntityPlayerMP[] {p_72367_1_})); } -@@ -462,13 +494,23 @@ +@@ -463,13 +495,23 @@ public EntityPlayerMP func_72368_a(EntityPlayerMP p_72368_1_, int p_72368_2_, boolean p_72368_3_) { @@ -129,7 +129,7 @@ p_72368_1_.field_71093_bK = p_72368_2_; PlayerInteractionManager playerinteractionmanager; -@@ -484,7 +526,8 @@ +@@ -485,7 +527,8 @@ EntityPlayerMP entityplayermp = new EntityPlayerMP(this.field_72400_f, this.field_72400_f.func_71218_a(p_72368_1_.field_71093_bK), p_72368_1_.func_146103_bH(), playerinteractionmanager); entityplayermp.field_71135_a = p_72368_1_.field_71135_a; entityplayermp.func_71049_a(p_72368_1_, p_72368_3_); @@ -139,7 +139,7 @@ entityplayermp.func_174817_o(p_72368_1_); entityplayermp.func_184819_a(p_72368_1_.func_184591_cq()); -@@ -531,6 +574,7 @@ +@@ -532,6 +575,7 @@ this.field_177454_f.put(entityplayermp.func_110124_au(), entityplayermp); entityplayermp.func_71116_b(); entityplayermp.func_70606_j(entityplayermp.func_110143_aJ()); @@ -147,7 +147,7 @@ return entityplayermp; } -@@ -545,15 +589,20 @@ +@@ -546,15 +590,20 @@ public void func_187242_a(EntityPlayerMP p_187242_1_, int p_187242_2_) { @@ -170,7 +170,7 @@ this.func_72375_a(p_187242_1_, worldserver); p_187242_1_.field_71135_a.func_147364_a(p_187242_1_.field_70165_t, p_187242_1_.field_70163_u, p_187242_1_.field_70161_v, p_187242_1_.field_70177_z, p_187242_1_.field_70125_A); p_187242_1_.field_71134_c.func_73080_a(worldserver1); -@@ -565,17 +614,27 @@ +@@ -566,17 +615,27 @@ { p_187242_1_.field_71135_a.func_147359_a(new SPacketEntityEffect(p_187242_1_.func_145782_y(), potioneffect)); } @@ -201,7 +201,7 @@ { d0 = MathHelper.func_151237_a(d0 / d2, p_82448_4_.func_175723_af().func_177726_b() + 16.0D, p_82448_4_.func_175723_af().func_177728_d() - 16.0D); d1 = MathHelper.func_151237_a(d1 / d2, p_82448_4_.func_175723_af().func_177736_c() + 16.0D, p_82448_4_.func_175723_af().func_177733_e() - 16.0D); -@@ -586,7 +645,7 @@ +@@ -587,7 +646,7 @@ p_82448_3_.func_72866_a(p_82448_1_, false); } } @@ -210,7 +210,7 @@ { d0 = MathHelper.func_151237_a(d0 * d2, p_82448_4_.func_175723_af().func_177726_b() + 16.0D, p_82448_4_.func_175723_af().func_177728_d() - 16.0D); d1 = MathHelper.func_151237_a(d1 * d2, p_82448_4_.func_175723_af().func_177736_c() + 16.0D, p_82448_4_.func_175723_af().func_177733_e() - 16.0D); -@@ -597,7 +656,8 @@ +@@ -598,7 +657,8 @@ p_82448_3_.func_72866_a(p_82448_1_, false); } } @@ -220,7 +220,7 @@ { BlockPos blockpos; -@@ -632,7 +692,7 @@ +@@ -633,7 +693,7 @@ if (p_82448_1_.func_70089_S()) { p_82448_1_.func_70012_b(d0, p_82448_1_.field_70163_u, d1, p_82448_1_.field_70177_z, p_82448_1_.field_70125_A); diff --git a/patches/minecraft/net/minecraft/server/management/PlayerManager.java.patch b/patches/minecraft/net/minecraft/server/management/PlayerManager.java.patch deleted file mode 100644 index 7340a0b5a5..0000000000 --- a/patches/minecraft/net/minecraft/server/management/PlayerManager.java.patch +++ /dev/null @@ -1,121 +0,0 @@ ---- ../src-base/minecraft/net/minecraft/server/management/PlayerManager.java -+++ ../src-work/minecraft/net/minecraft/server/management/PlayerManager.java -@@ -468,11 +468,18 @@ - private int field_187288_h; - private long field_187289_i; - private boolean field_187290_j; -+ private Runnable loadedRunnable = new Runnable() -+ { -+ public void run() -+ { -+ PlayerInstance.this.field_187286_f = PlayerManager.this.func_72688_a().func_72863_F().func_186028_c(PlayerInstance.this.field_187284_d.field_77276_a, PlayerInstance.this.field_187284_d.field_77275_b); -+ } -+ }; - - public PlayerInstance(int p_i1518_2_, int p_i1518_3_) - { - this.field_187284_d = new ChunkCoordIntPair(p_i1518_2_, p_i1518_3_); -- this.field_187286_f = PlayerManager.this.func_72688_a().func_72863_F().func_186028_c(p_i1518_2_, p_i1518_3_); -+ PlayerManager.this.func_72688_a().func_72863_F().loadChunk(p_i1518_2_, p_i1518_3_, this.loadedRunnable); - } - - public ChunkCoordIntPair func_187264_a() -@@ -506,6 +513,20 @@ - { - if (this.field_187283_c.contains(p_187277_1_)) - { -+ // If we haven't loaded yet don't load the chunk just so we can clean it up -+ if (this.field_187286_f == null) -+ { -+ this.field_187283_c.remove(p_187277_1_); -+ -+ if (this.field_187283_c.isEmpty()) -+ { -+ net.minecraftforge.common.chunkio.ChunkIOExecutor.dropQueuedChunkLoad(PlayerManager.this.func_72688_a(), this.field_187284_d.field_77276_a, this.field_187284_d.field_77275_b, this.loadedRunnable); -+ PlayerManager.this.func_187305_b(this); -+ } -+ -+ return; -+ } -+ - if (this.field_187290_j) - { - p_187277_1_.field_71135_a.func_147359_a(new SPacketUnloadChunk(this.field_187284_d.field_77276_a, this.field_187284_d.field_77275_b)); -@@ -513,6 +534,8 @@ - - this.field_187283_c.remove(p_187277_1_); - -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.ChunkWatchEvent.UnWatch(this.field_187284_d, p_187277_1_)); -+ - if (this.field_187283_c.isEmpty()) - { - PlayerManager.this.func_187305_b(this); -@@ -625,7 +648,7 @@ - - this.field_187288_h |= 1 << (p_187265_2_ >> 4); - -- if (this.field_187287_g < 64) -+ //Forge; Cache everything, so always run - { - short short1 = (short)(p_187265_1_ << 12 | p_187265_3_ << 8 | p_187265_2_); - -@@ -637,6 +660,8 @@ - } - } - -+ if (this.field_187287_g == this.field_187285_e.length) -+ this.field_187285_e = java.util.Arrays.copyOf(this.field_187285_e, this.field_187285_e.length << 1); - this.field_187285_e[this.field_187287_g++] = short1; - } - } -@@ -653,6 +678,7 @@ - } - } - -+ @SuppressWarnings("unused") - public void func_187280_d() - { - if (this.field_187290_j && this.field_187286_f != null) -@@ -666,18 +692,20 @@ - int k = (this.field_187285_e[0] >> 8 & 15) + this.field_187284_d.field_77275_b * 16; - BlockPos blockpos = new BlockPos(i, j, k); - this.func_187267_a(new SPacketBlockChange(PlayerManager.this.func_72688_a(), blockpos)); -+ net.minecraft.block.state.IBlockState state = PlayerManager.this.func_72688_a().func_180495_p(blockpos); - -- if (PlayerManager.this.func_72688_a().func_180495_p(blockpos).func_177230_c().func_149716_u()) -+ if (state.func_177230_c().hasTileEntity(state)) - { - this.func_187273_a(PlayerManager.this.func_72688_a().func_175625_s(blockpos)); - } - } -- else if (this.field_187287_g == 64) -+ else if (this.field_187287_g >= net.minecraftforge.common.ForgeModContainer.clumpingThreshold) - { - int i1 = this.field_187284_d.field_77276_a * 16; - int k1 = this.field_187284_d.field_77275_b * 16; - this.func_187267_a(new SPacketChunkData(this.field_187286_f, false, this.field_187288_h)); - -+ if (false) // Forge: Grabs ALL the tile entities, costly on a modded server, only send needed ones - for (int i2 = 0; i2 < 16; ++i2) - { - if ((this.field_187288_h & 1 << i2) != 0) -@@ -695,15 +723,17 @@ - else - { - this.func_187267_a(new SPacketMultiBlockChange(this.field_187287_g, this.field_187285_e, this.field_187286_f)); -- -+ } -+ { // Forge: Send only the tile entities that are updated, Adding this brace lets us keep the indent and the patch small - for (int j1 = 0; j1 < this.field_187287_g; ++j1) - { - int l1 = (this.field_187285_e[j1] >> 12 & 15) + this.field_187284_d.field_77276_a * 16; - int j2 = this.field_187285_e[j1] & 255; - int l2 = (this.field_187285_e[j1] >> 8 & 15) + this.field_187284_d.field_77275_b * 16; - BlockPos blockpos1 = new BlockPos(l1, j2, l2); -+ net.minecraft.block.state.IBlockState state = PlayerManager.this.func_72688_a().func_180495_p(blockpos1); - -- if (PlayerManager.this.func_72688_a().func_180495_p(blockpos1).func_177230_c().func_149716_u()) -+ if (state.func_177230_c().hasTileEntity(state)) - { - this.func_187273_a(PlayerManager.this.func_72688_a().func_175625_s(blockpos1)); - } diff --git a/patches/minecraft/net/minecraft/stats/StatList.java.patch b/patches/minecraft/net/minecraft/stats/StatList.java.patch index 8eca044945..1efa70d8ff 100644 --- a/patches/minecraft/net/minecraft/stats/StatList.java.patch +++ b/patches/minecraft/net/minecraft/stats/StatList.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/stats/StatList.java +++ ../src-work/minecraft/net/minecraft/stats/StatList.java -@@ -155,7 +155,7 @@ +@@ -162,7 +162,7 @@ } } @@ -9,7 +9,7 @@ } private static void func_151181_c() -@@ -177,7 +177,7 @@ +@@ -184,7 +184,7 @@ } } @@ -18,7 +18,7 @@ } private static void func_75925_c() -@@ -201,7 +201,7 @@ +@@ -208,7 +208,7 @@ } } @@ -27,7 +27,7 @@ } private static void func_151179_e() -@@ -220,7 +220,7 @@ +@@ -227,7 +227,7 @@ } } @@ -36,7 +36,7 @@ } private static void func_188054_f() -@@ -240,7 +240,7 @@ +@@ -247,7 +247,7 @@ } } @@ -45,7 +45,7 @@ } private static String func_180204_a(Item p_180204_0_) -@@ -249,28 +249,35 @@ +@@ -256,28 +256,35 @@ return resourcelocation != null ? resourcelocation.toString().replace(':', '.') : null; } diff --git a/patches/minecraft/net/minecraft/tileentity/TileEntity.java.patch b/patches/minecraft/net/minecraft/tileentity/TileEntity.java.patch index 8e771c7091..67eb002d68 100644 --- a/patches/minecraft/net/minecraft/tileentity/TileEntity.java.patch +++ b/patches/minecraft/net/minecraft/tileentity/TileEntity.java.patch @@ -17,30 +17,30 @@ + if (this.capabilities != null && p_145839_1_.func_74764_b("ForgeCaps")) this.capabilities.deserializeNBT(p_145839_1_.func_74775_l("ForgeCaps")); } - public void func_145841_b(NBTTagCompound p_145841_1_) -@@ -76,6 +78,8 @@ - p_145841_1_.func_74768_a("x", this.field_174879_c.func_177958_n()); - p_145841_1_.func_74768_a("y", this.field_174879_c.func_177956_o()); - p_145841_1_.func_74768_a("z", this.field_174879_c.func_177952_p()); -+ if (this.customTileData != null) p_145841_1_.func_74782_a("ForgeData", this.customTileData); -+ if (this.capabilities != null) p_145841_1_.func_74782_a("ForgeCaps", this.capabilities.serializeNBT()); + public NBTTagCompound func_189515_b(NBTTagCompound p_189515_1_) +@@ -81,6 +83,8 @@ + p_189516_1_.func_74768_a("x", this.field_174879_c.func_177958_n()); + p_189516_1_.func_74768_a("y", this.field_174879_c.func_177956_o()); + p_189516_1_.func_74768_a("z", this.field_174879_c.func_177952_p()); ++ if (this.customTileData != null) p_189516_1_.func_74782_a("ForgeData", this.customTileData); ++ if (this.capabilities != null) p_189516_1_.func_74782_a("ForgeCaps", this.capabilities.serializeNBT()); + return p_189516_1_; } } - -@@ -83,10 +87,11 @@ +@@ -89,10 +93,11 @@ { TileEntity tileentity = null; - String s = p_184246_1_.func_74779_i("id"); + String s = p_189514_0_.func_74779_i("id"); + Class oclass = null; try { - Class oclass = (Class)field_145855_i.get(s); -+ oclass = (Class)field_145855_i.get(s); ++ oclass = field_145855_i.get(s); if (oclass != null) { -@@ -96,6 +101,9 @@ +@@ -102,6 +107,9 @@ catch (Throwable throwable1) { field_145852_a.error("Failed to create block entity " + s, throwable1); @@ -50,7 +50,7 @@ } if (tileentity != null) -@@ -107,6 +115,9 @@ +@@ -113,6 +121,9 @@ catch (Throwable throwable) { field_145852_a.error("Failed to load data for block entity " + s, throwable); @@ -60,7 +60,7 @@ tileentity = null; } } -@@ -144,7 +155,6 @@ +@@ -150,7 +161,6 @@ } } @@ -68,7 +68,7 @@ public double func_145835_a(double p_145835_1_, double p_145835_3_, double p_145835_5_) { double d0 = (double)this.field_174879_c.func_177958_n() + 0.5D - p_145835_1_; -@@ -271,6 +281,186 @@ +@@ -283,6 +293,186 @@ return false; } @@ -248,7 +248,7 @@ + public NBTTagCompound serializeNBT() + { + NBTTagCompound ret = new NBTTagCompound(); -+ this.func_145841_b(ret); ++ this.func_189515_b(ret); + return ret; + } + diff --git a/patches/minecraft/net/minecraft/tileentity/TileEntityBeacon.java.patch b/patches/minecraft/net/minecraft/tileentity/TileEntityBeacon.java.patch index 6ba50bb6ff..0e6710dac9 100644 --- a/patches/minecraft/net/minecraft/tileentity/TileEntityBeacon.java.patch +++ b/patches/minecraft/net/minecraft/tileentity/TileEntityBeacon.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/tileentity/TileEntityBeacon.java +++ ../src-work/minecraft/net/minecraft/tileentity/TileEntityBeacon.java -@@ -179,7 +179,7 @@ +@@ -181,7 +181,7 @@ { Block block = this.field_145850_b.func_180495_p(new BlockPos(j1, i2, k1)).func_177230_c(); @@ -9,7 +9,7 @@ { flag1 = false; break; -@@ -371,7 +371,7 @@ +@@ -382,7 +382,7 @@ public boolean func_94041_b(int p_94041_1_, ItemStack p_94041_2_) { diff --git a/patches/minecraft/net/minecraft/tileentity/TileEntityBrewingStand.java.patch b/patches/minecraft/net/minecraft/tileentity/TileEntityBrewingStand.java.patch index bba76fd606..ffeea5eb09 100644 --- a/patches/minecraft/net/minecraft/tileentity/TileEntityBrewingStand.java.patch +++ b/patches/minecraft/net/minecraft/tileentity/TileEntityBrewingStand.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/tileentity/TileEntityBrewingStand.java +++ ../src-work/minecraft/net/minecraft/tileentity/TileEntityBrewingStand.java -@@ -140,7 +140,7 @@ +@@ -141,7 +141,7 @@ private boolean func_145934_k() { @@ -9,7 +9,7 @@ { ItemStack itemstack = this.field_145945_j[3]; -@@ -165,25 +165,23 @@ +@@ -166,25 +166,23 @@ } else { @@ -40,7 +40,7 @@ if (itemstack.field_77994_a <= 0) { -@@ -202,6 +200,7 @@ +@@ -203,6 +201,7 @@ this.field_145945_j[3] = itemstack; this.field_145850_b.func_175718_b(1035, blockpos, 0); @@ -48,7 +48,7 @@ } public void func_145839_a(NBTTagCompound p_145839_1_) -@@ -303,12 +302,12 @@ +@@ -308,12 +307,12 @@ { if (p_94041_1_ == 3) { @@ -63,7 +63,7 @@ } } -@@ -362,6 +361,21 @@ +@@ -367,6 +366,21 @@ } } diff --git a/patches/minecraft/net/minecraft/tileentity/TileEntityChest.java.patch b/patches/minecraft/net/minecraft/tileentity/TileEntityChest.java.patch index d7766de5e6..9aa186e5f3 100644 --- a/patches/minecraft/net/minecraft/tileentity/TileEntityChest.java.patch +++ b/patches/minecraft/net/minecraft/tileentity/TileEntityChest.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/tileentity/TileEntityChest.java +++ ../src-work/minecraft/net/minecraft/tileentity/TileEntityChest.java -@@ -171,6 +171,7 @@ +@@ -176,6 +176,7 @@ { super.func_145836_u(); this.field_145984_a = false; @@ -8,10 +8,11 @@ } @SuppressWarnings("incomplete-switch") -@@ -457,6 +458,27 @@ +@@ -462,4 +463,26 @@ + this.field_145985_p[i] = null; } } - ++ + public net.minecraftforge.items.VanillaDoubleChestItemHandler doubleChestHandler; + + @SuppressWarnings("unchecked") @@ -33,6 +34,4 @@ + return super.getCapability(net.minecraftforge.items.CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null); + } + - public void func_184287_a(ResourceLocation p_184287_1_, long p_184287_2_) - { - this.field_184284_m = p_184287_1_; + } diff --git a/patches/minecraft/net/minecraft/tileentity/TileEntityFurnace.java.patch b/patches/minecraft/net/minecraft/tileentity/TileEntityFurnace.java.patch index 41e782be4f..4a601515df 100644 --- a/patches/minecraft/net/minecraft/tileentity/TileEntityFurnace.java.patch +++ b/patches/minecraft/net/minecraft/tileentity/TileEntityFurnace.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/tileentity/TileEntityFurnace.java +++ ../src-work/minecraft/net/minecraft/tileentity/TileEntityFurnace.java -@@ -110,9 +110,9 @@ +@@ -114,9 +114,9 @@ } } @@ -13,20 +13,20 @@ this.field_145963_i = func_145952_a(this.field_145957_n[1]); if (p_145839_1_.func_150297_b("CustomName", 8)) -@@ -124,9 +124,9 @@ - public void func_145841_b(NBTTagCompound p_145841_1_) +@@ -128,9 +128,9 @@ + public NBTTagCompound func_189515_b(NBTTagCompound p_189515_1_) { - super.func_145841_b(p_145841_1_); -- p_145841_1_.func_74777_a("BurnTime", (short)this.field_145956_a); -- p_145841_1_.func_74777_a("CookTime", (short)this.field_174906_k); -- p_145841_1_.func_74777_a("CookTimeTotal", (short)this.field_174905_l); -+ p_145841_1_.func_74768_a("BurnTime", this.field_145956_a); -+ p_145841_1_.func_74768_a("CookTime", this.field_174906_k); -+ p_145841_1_.func_74768_a("CookTimeTotal", this.field_174905_l); + super.func_189515_b(p_189515_1_); +- p_189515_1_.func_74777_a("BurnTime", (short)this.field_145956_a); +- p_189515_1_.func_74777_a("CookTime", (short)this.field_174906_k); +- p_189515_1_.func_74777_a("CookTimeTotal", (short)this.field_174905_l); ++ p_189515_1_.func_74768_a("BurnTime", this.field_145956_a); ++ p_189515_1_.func_74768_a("CookTime", this.field_174906_k); ++ p_189515_1_.func_74768_a("CookTimeTotal", this.field_174905_l); NBTTagList nbttaglist = new NBTTagList(); for (int i = 0; i < this.field_145957_n.length; ++i) -@@ -192,8 +192,7 @@ +@@ -198,8 +198,7 @@ if (this.field_145957_n[1].field_77994_a == 0) { @@ -36,7 +36,7 @@ } } } -@@ -248,7 +247,11 @@ +@@ -254,7 +253,11 @@ else { ItemStack itemstack = FurnaceRecipes.func_77602_a().func_151395_a(this.field_145957_n[0]); @@ -49,7 +49,7 @@ } } -@@ -264,7 +267,7 @@ +@@ -270,7 +273,7 @@ } else if (this.field_145957_n[2].func_77973_b() == itemstack.func_77973_b()) { @@ -58,7 +58,7 @@ } if (this.field_145957_n[0].func_77973_b() == Item.func_150898_a(Blocks.field_150360_v) && this.field_145957_n[0].func_77960_j() == 1 && this.field_145957_n[1] != null && this.field_145957_n[1].func_77973_b() == Items.field_151133_ar) -@@ -311,7 +314,15 @@ +@@ -317,7 +320,15 @@ } } @@ -75,7 +75,7 @@ } } -@@ -432,4 +443,22 @@ +@@ -438,4 +449,22 @@ this.field_145957_n[i] = null; } } diff --git a/patches/minecraft/net/minecraft/tileentity/TileEntityHopper.java.patch b/patches/minecraft/net/minecraft/tileentity/TileEntityHopper.java.patch index d55f5e0a4a..2ffd6a6843 100644 --- a/patches/minecraft/net/minecraft/tileentity/TileEntityHopper.java.patch +++ b/patches/minecraft/net/minecraft/tileentity/TileEntityHopper.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/tileentity/TileEntityHopper.java +++ ../src-work/minecraft/net/minecraft/tileentity/TileEntityHopper.java -@@ -237,6 +237,7 @@ +@@ -243,6 +243,7 @@ private boolean func_145883_k() { @@ -8,7 +8,7 @@ IInventory iinventory = this.func_145895_l(); if (iinventory == null) -@@ -343,6 +344,7 @@ +@@ -349,6 +350,7 @@ public static boolean func_145891_a(IHopper p_145891_0_) { @@ -16,7 +16,7 @@ IInventory iinventory = func_145884_b(p_145891_0_); if (iinventory != null) -@@ -492,17 +494,31 @@ +@@ -498,17 +500,31 @@ if (itemstack == null) { @@ -49,7 +49,7 @@ } if (flag) -@@ -648,4 +664,10 @@ +@@ -654,4 +670,10 @@ this.field_145900_a[i] = null; } } diff --git a/patches/minecraft/net/minecraft/tileentity/TileEntityLockable.java.patch b/patches/minecraft/net/minecraft/tileentity/TileEntityLockable.java.patch index 6c31d0dcdd..399b55c21a 100644 --- a/patches/minecraft/net/minecraft/tileentity/TileEntityLockable.java.patch +++ b/patches/minecraft/net/minecraft/tileentity/TileEntityLockable.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/tileentity/TileEntityLockable.java +++ ../src-work/minecraft/net/minecraft/tileentity/TileEntityLockable.java -@@ -47,4 +47,26 @@ +@@ -49,4 +49,26 @@ { return (ITextComponent)(this.func_145818_k_() ? new TextComponentString(this.func_70005_c_()) : new TextComponentTranslation(this.func_70005_c_(), new Object[0])); } diff --git a/patches/minecraft/net/minecraft/tileentity/TileEntityNote.java.patch b/patches/minecraft/net/minecraft/tileentity/TileEntityNote.java.patch index a47e343929..49be21b183 100644 --- a/patches/minecraft/net/minecraft/tileentity/TileEntityNote.java.patch +++ b/patches/minecraft/net/minecraft/tileentity/TileEntityNote.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/tileentity/TileEntityNote.java +++ ../src-work/minecraft/net/minecraft/tileentity/TileEntityNote.java -@@ -29,7 +29,9 @@ +@@ -30,7 +30,9 @@ public void func_145877_a() { diff --git a/patches/minecraft/net/minecraft/tileentity/TileEntitySign.java.patch b/patches/minecraft/net/minecraft/tileentity/TileEntitySign.java.patch index 0919e78045..6b66af8ce5 100644 --- a/patches/minecraft/net/minecraft/tileentity/TileEntitySign.java.patch +++ b/patches/minecraft/net/minecraft/tileentity/TileEntitySign.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/tileentity/TileEntitySign.java +++ ../src-work/minecraft/net/minecraft/tileentity/TileEntitySign.java -@@ -60,7 +60,7 @@ +@@ -61,7 +61,7 @@ } public boolean func_70003_b(int p_70003_1_, String p_70003_2_) { diff --git a/patches/minecraft/net/minecraft/util/EnumFacing.java.patch b/patches/minecraft/net/minecraft/util/EnumFacing.java.patch index 241b4620f5..1ceeb65ba6 100644 --- a/patches/minecraft/net/minecraft/util/EnumFacing.java.patch +++ b/patches/minecraft/net/minecraft/util/EnumFacing.java.patch @@ -1,7 +1,7 @@ --- ../src-base/minecraft/net/minecraft/util/EnumFacing.java +++ ../src-work/minecraft/net/minecraft/util/EnumFacing.java -@@ -8,8 +8,6 @@ - import java.util.Random; +@@ -9,8 +9,6 @@ + import javax.annotation.Nullable; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.Vec3i; -import net.minecraftforge.fml.relauncher.Side; @@ -9,7 +9,7 @@ public enum EnumFacing implements IStringSerializable { -@@ -62,7 +60,6 @@ +@@ -63,7 +61,6 @@ return func_82600_a(this.field_176759_h); } @@ -17,7 +17,7 @@ public EnumFacing func_176732_a(EnumFacing.Axis p_176732_1_) { switch (p_176732_1_) -@@ -113,7 +110,6 @@ +@@ -114,7 +111,6 @@ } } @@ -25,7 +25,7 @@ private EnumFacing func_176744_n() { switch (this) -@@ -133,7 +129,6 @@ +@@ -134,7 +130,6 @@ } } @@ -33,15 +33,15 @@ private EnumFacing func_176738_p() { switch (this) -@@ -194,7 +189,6 @@ - return this.field_176758_k; +@@ -196,7 +191,6 @@ } + @Nullable - @SideOnly(Side.CLIENT) public static EnumFacing func_176739_a(String p_176739_0_) { return p_176739_0_ == null ? null : (EnumFacing)field_176761_p.get(p_176739_0_.toLowerCase()); -@@ -225,7 +219,6 @@ +@@ -227,7 +221,6 @@ return values()[p_176741_0_.nextInt(values().length)]; } @@ -49,7 +49,7 @@ public static EnumFacing func_176737_a(float p_176737_0_, float p_176737_1_, float p_176737_2_) { EnumFacing enumfacing = NORTH; -@@ -268,7 +261,6 @@ +@@ -270,7 +263,6 @@ throw new IllegalArgumentException("No such direction: " + p_181076_0_ + " " + p_181076_1_); } @@ -57,10 +57,10 @@ public Vec3i func_176730_m() { return this.field_176756_m; -@@ -304,7 +296,6 @@ - this.field_176723_f = p_i46015_4_; +@@ -307,7 +299,6 @@ } + @Nullable - @SideOnly(Side.CLIENT) public static EnumFacing.Axis func_176717_a(String p_176717_0_) { diff --git a/patches/minecraft/net/minecraft/util/IntIdentityHashBiMap.java.patch b/patches/minecraft/net/minecraft/util/IntIdentityHashBiMap.java.patch index 2b9932be97..a26f3cfc57 100644 --- a/patches/minecraft/net/minecraft/util/IntIdentityHashBiMap.java.patch +++ b/patches/minecraft/net/minecraft/util/IntIdentityHashBiMap.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/util/IntIdentityHashBiMap.java +++ ../src-work/minecraft/net/minecraft/util/IntIdentityHashBiMap.java -@@ -166,7 +166,6 @@ +@@ -168,7 +168,6 @@ return Iterators.filter(Iterators.forArray(this.field_186820_d), Predicates.notNull()); } diff --git a/patches/minecraft/net/minecraft/util/Session.java.patch b/patches/minecraft/net/minecraft/util/Session.java.patch index db649de70e..8f807d2a92 100644 --- a/patches/minecraft/net/minecraft/util/Session.java.patch +++ b/patches/minecraft/net/minecraft/util/Session.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/util/Session.java +++ ../src-work/minecraft/net/minecraft/util/Session.java -@@ -15,9 +15,25 @@ +@@ -16,9 +16,25 @@ private final String field_148257_b; private final String field_148258_c; private final Session.Type field_152429_d; @@ -26,7 +26,7 @@ this.field_74286_b = p_i1098_1_; this.field_148257_b = p_i1098_2_; this.field_148258_c = p_i1098_3_; -@@ -49,14 +65,29 @@ +@@ -50,14 +66,29 @@ try { UUID uuid = UUIDTypeAdapter.fromString(this.func_148255_b()); diff --git a/patches/minecraft/net/minecraft/util/TabCompleter.java.patch b/patches/minecraft/net/minecraft/util/TabCompleter.java.patch index 5fe77be006..e86dd9d753 100644 --- a/patches/minecraft/net/minecraft/util/TabCompleter.java.patch +++ b/patches/minecraft/net/minecraft/util/TabCompleter.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/util/TabCompleter.java +++ ../src-work/minecraft/net/minecraft/util/TabCompleter.java -@@ -53,13 +53,14 @@ +@@ -54,13 +54,14 @@ this.field_186844_a.func_146175_b(i - this.field_186844_a.func_146198_h()); } @@ -16,7 +16,7 @@ Minecraft.func_71410_x().field_71439_g.field_71174_a.func_147297_a(new CPacketTabComplete(p_186838_1_, this.func_186839_b(), this.field_186845_b)); this.field_186847_d = true; } -@@ -74,6 +75,12 @@ +@@ -76,6 +77,12 @@ this.field_186846_c = false; this.field_186849_f.clear(); @@ -29,7 +29,7 @@ for (String s : p_186840_1_) { if (!s.isEmpty()) -@@ -84,6 +91,7 @@ +@@ -86,6 +93,7 @@ String s1 = this.field_186844_a.func_146179_b().substring(this.field_186844_a.func_146197_a(-1, this.field_186844_a.func_146198_h(), false)); String s2 = org.apache.commons.lang3.StringUtils.getCommonPrefix(p_186840_1_); diff --git a/patches/minecraft/net/minecraft/util/math/BlockPos.java.patch b/patches/minecraft/net/minecraft/util/math/BlockPos.java.patch deleted file mode 100644 index 33fca8b2b9..0000000000 --- a/patches/minecraft/net/minecraft/util/math/BlockPos.java.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ../src-base/minecraft/net/minecraft/util/math/BlockPos.java -+++ ../src-work/minecraft/net/minecraft/util/math/BlockPos.java -@@ -443,5 +443,8 @@ - { - return this.func_185343_d(this.field_185347_c + p_185341_1_.func_82601_c(), this.field_185348_d + p_185341_1_.func_96559_d(), this.field_185349_e + p_185341_1_.func_82599_e()); - } -+ -+ // This method can safely be removed once vanilla adds it - MC-100165 -+ @Override public BlockPos func_185334_h() { return new BlockPos(this); } - } - } diff --git a/patches/minecraft/net/minecraft/util/math/Vec3d.java.patch b/patches/minecraft/net/minecraft/util/math/Vec3d.java.patch index 662335a594..b40d5474cc 100644 --- a/patches/minecraft/net/minecraft/util/math/Vec3d.java.patch +++ b/patches/minecraft/net/minecraft/util/math/Vec3d.java.patch @@ -1,15 +1,16 @@ --- ../src-base/minecraft/net/minecraft/util/math/Vec3d.java +++ ../src-work/minecraft/net/minecraft/util/math/Vec3d.java -@@ -1,8 +1,5 @@ +@@ -1,9 +1,6 @@ package net.minecraft.util.math; + import javax.annotation.Nullable; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - public class Vec3d { public static final Vec3d field_186680_a = new Vec3d(0.0D, 0.0D, 0.0D); -@@ -53,7 +50,6 @@ +@@ -54,7 +51,6 @@ return this.field_72450_a * p_72430_1_.field_72450_a + this.field_72448_b * p_72430_1_.field_72448_b + this.field_72449_c * p_72430_1_.field_72449_c; } diff --git a/patches/minecraft/net/minecraft/util/registry/RegistryNamespacedDefaultedByKey.java.patch b/patches/minecraft/net/minecraft/util/registry/RegistryNamespacedDefaultedByKey.java.patch index ae4a01c842..2d0e3585fb 100644 --- a/patches/minecraft/net/minecraft/util/registry/RegistryNamespacedDefaultedByKey.java.patch +++ b/patches/minecraft/net/minecraft/util/registry/RegistryNamespacedDefaultedByKey.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/util/registry/RegistryNamespacedDefaultedByKey.java +++ ../src-work/minecraft/net/minecraft/util/registry/RegistryNamespacedDefaultedByKey.java -@@ -57,4 +57,11 @@ +@@ -63,4 +63,11 @@ V v = super.func_186801_a(p_186801_1_); return (V)(v == null ? this.field_148761_e : v); } diff --git a/patches/minecraft/net/minecraft/util/text/Style.java.patch b/patches/minecraft/net/minecraft/util/text/Style.java.patch index 93a20c90a4..2aa70dad9c 100644 --- a/patches/minecraft/net/minecraft/util/text/Style.java.patch +++ b/patches/minecraft/net/minecraft/util/text/Style.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/util/text/Style.java +++ ../src-work/minecraft/net/minecraft/util/text/Style.java -@@ -229,7 +229,6 @@ +@@ -238,7 +238,6 @@ return this; } diff --git a/patches/minecraft/net/minecraft/util/text/TextComponentBase.java.patch b/patches/minecraft/net/minecraft/util/text/TextComponentBase.java.patch index 4307987cc3..41d3f8c38e 100644 --- a/patches/minecraft/net/minecraft/util/text/TextComponentBase.java.patch +++ b/patches/minecraft/net/minecraft/util/text/TextComponentBase.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/util/text/TextComponentBase.java +++ ../src-work/minecraft/net/minecraft/util/text/TextComponentBase.java -@@ -74,7 +74,6 @@ +@@ -75,7 +75,6 @@ return stringbuilder.toString(); } diff --git a/patches/minecraft/net/minecraft/world/BossInfoServer.java.patch b/patches/minecraft/net/minecraft/world/BossInfoServer.java.patch index a10f0ab75e..29ad09714a 100644 --- a/patches/minecraft/net/minecraft/world/BossInfoServer.java.patch +++ b/patches/minecraft/net/minecraft/world/BossInfoServer.java.patch @@ -1,7 +1,7 @@ --- ../src-base/minecraft/net/minecraft/world/BossInfoServer.java +++ ../src-work/minecraft/net/minecraft/world/BossInfoServer.java @@ -9,8 +9,6 @@ - import net.minecraft.network.play.server.SPacketUpdateEntityNBT; + import net.minecraft.network.play.server.SPacketUpdateBossInfo; import net.minecraft.util.math.MathHelper; import net.minecraft.util.text.ITextComponent; -import net.minecraftforge.fml.relauncher.Side; diff --git a/patches/minecraft/net/minecraft/world/ChunkCache.java.patch b/patches/minecraft/net/minecraft/world/ChunkCache.java.patch index 7c90984810..b41b17ed17 100644 --- a/patches/minecraft/net/minecraft/world/ChunkCache.java.patch +++ b/patches/minecraft/net/minecraft/world/ChunkCache.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/ChunkCache.java +++ ../src-work/minecraft/net/minecraft/world/ChunkCache.java -@@ -61,6 +61,8 @@ +@@ -63,6 +63,8 @@ { int i = (p_175625_1_.func_177958_n() >> 4) - this.field_72818_a; int j = (p_175625_1_.func_177952_p() >> 4) - this.field_72816_b; @@ -9,7 +9,7 @@ return this.field_72817_c[i][j].func_177424_a(p_175625_1_, Chunk.EnumCreateEntityType.IMMEDIATE); } -@@ -139,6 +141,8 @@ +@@ -143,6 +145,8 @@ { int i = (p_175629_2_.func_177958_n() >> 4) - this.field_72818_a; int j = (p_175629_2_.func_177952_p() >> 4) - this.field_72816_b; @@ -18,7 +18,7 @@ return this.field_72817_c[i][j].func_177413_a(p_175629_1_, p_175629_2_); } } -@@ -150,7 +154,8 @@ +@@ -154,7 +158,8 @@ public boolean func_175623_d(BlockPos p_175623_1_) { @@ -28,7 +28,7 @@ } @SideOnly(Side.CLIENT) -@@ -160,6 +165,7 @@ +@@ -164,6 +169,7 @@ { int i = (p_175628_2_.func_177958_n() >> 4) - this.field_72818_a; int j = (p_175628_2_.func_177952_p() >> 4) - this.field_72816_b; @@ -36,7 +36,7 @@ return this.field_72817_c[i][j].func_177413_a(p_175628_1_, p_175628_2_); } else -@@ -178,4 +184,17 @@ +@@ -182,4 +188,17 @@ { return this.field_72815_e.func_175624_G(); } diff --git a/patches/minecraft/net/minecraft/world/IBlockAccess.java.patch b/patches/minecraft/net/minecraft/world/IBlockAccess.java.patch index e6b7d331dd..2936065b97 100644 --- a/patches/minecraft/net/minecraft/world/IBlockAccess.java.patch +++ b/patches/minecraft/net/minecraft/world/IBlockAccess.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/IBlockAccess.java +++ ../src-work/minecraft/net/minecraft/world/IBlockAccess.java -@@ -29,4 +29,14 @@ +@@ -31,4 +31,14 @@ @SideOnly(Side.CLIENT) WorldType func_175624_G(); diff --git a/patches/minecraft/net/minecraft/world/WorldManager.java.patch b/patches/minecraft/net/minecraft/world/ServerWorldEventHandler.java.patch similarity index 80% rename from patches/minecraft/net/minecraft/world/WorldManager.java.patch rename to patches/minecraft/net/minecraft/world/ServerWorldEventHandler.java.patch index 2d28c30411..bc0e848a5a 100644 --- a/patches/minecraft/net/minecraft/world/WorldManager.java.patch +++ b/patches/minecraft/net/minecraft/world/ServerWorldEventHandler.java.patch @@ -1,15 +1,15 @@ ---- ../src-base/minecraft/net/minecraft/world/WorldManager.java -+++ ../src-work/minecraft/net/minecraft/world/WorldManager.java -@@ -50,7 +50,7 @@ +--- ../src-base/minecraft/net/minecraft/world/ServerWorldEventHandler.java ++++ ../src-work/minecraft/net/minecraft/world/ServerWorldEventHandler.java +@@ -51,7 +51,7 @@ - public void func_184375_a(EntityPlayer p_184375_1_, SoundEvent p_184375_2_, SoundCategory p_184375_3_, double p_184375_4_, double p_184375_6_, double p_184375_8_, float p_184375_10_, float p_184375_11_) + public void func_184375_a(@Nullable EntityPlayer p_184375_1_, SoundEvent p_184375_2_, SoundCategory p_184375_3_, double p_184375_4_, double p_184375_6_, double p_184375_8_, float p_184375_10_, float p_184375_11_) { - this.field_72783_a.func_184103_al().func_148543_a(p_184375_1_, p_184375_4_, p_184375_6_, p_184375_8_, p_184375_10_ > 1.0F ? (double)(16.0F * p_184375_10_) : 16.0D, this.field_72782_b.field_73011_w.func_186058_p().func_186068_a(), new SPacketSoundEffect(p_184375_2_, p_184375_3_, p_184375_4_, p_184375_6_, p_184375_8_, p_184375_10_, p_184375_11_)); + this.field_72783_a.func_184103_al().func_148543_a(p_184375_1_, p_184375_4_, p_184375_6_, p_184375_8_, p_184375_10_ > 1.0F ? (double)(16.0F * p_184375_10_) : 16.0D, this.field_72782_b.field_73011_w.getDimension(), new SPacketSoundEffect(p_184375_2_, p_184375_3_, p_184375_4_, p_184375_6_, p_184375_8_, p_184375_10_, p_184375_11_)); } public void func_147585_a(int p_147585_1_, int p_147585_2_, int p_147585_3_, int p_147585_4_, int p_147585_5_, int p_147585_6_) -@@ -72,7 +72,7 @@ +@@ -73,7 +73,7 @@ public void func_180439_a(EntityPlayer p_180439_1_, int p_180439_2_, BlockPos p_180439_3_, int p_180439_4_) { diff --git a/patches/minecraft/net/minecraft/world/World.java.patch b/patches/minecraft/net/minecraft/world/World.java.patch index 5e1530d23e..9560baf5de 100644 --- a/patches/minecraft/net/minecraft/world/World.java.patch +++ b/patches/minecraft/net/minecraft/world/World.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/World.java +++ ../src-work/minecraft/net/minecraft/world/World.java -@@ -60,6 +60,13 @@ +@@ -61,6 +61,13 @@ public abstract class World implements IBlockAccess { @@ -14,7 +14,7 @@ private int field_181546_a = 63; protected boolean field_72999_e; public final List field_72996_f = Lists.newArrayList(); -@@ -101,6 +108,10 @@ +@@ -102,6 +109,10 @@ private final WorldBorder field_175728_M; int[] field_72994_J; @@ -25,7 +25,7 @@ protected World(ISaveHandler p_i45749_1_, WorldInfo p_i45749_2_, WorldProvider p_i45749_3_, Profiler p_i45749_4_, boolean p_i45749_5_) { this.field_73021_x = Lists.newArrayList(new IWorldEventListener[] {this.field_184152_t}); -@@ -115,6 +126,7 @@ +@@ -116,6 +127,7 @@ this.field_73011_w = p_i45749_3_; this.field_72995_K = p_i45749_5_; this.field_175728_M = p_i45749_3_.func_177501_r(); @@ -33,47 +33,19 @@ } public World func_175643_b() -@@ -124,13 +136,18 @@ +@@ -125,6 +137,11 @@ - public BiomeGenBase func_180494_b(final BlockPos p_180494_1_) + public Biome func_180494_b(final BlockPos p_180494_1_) { -- if (this.func_175667_e(p_180494_1_)) -+ return this.field_73011_w.getBiomeGenForCoords(p_180494_1_); ++ return this.field_73011_w.getBiomeForCoords(p_180494_1_); + } + -+ public BiomeGenBase getBiomeGenForCoordsBody(final BlockPos pos) ++ public Biome getBiomeForCoordsBody(final BlockPos p_180494_1_) + { -+ if (this.func_175667_e(pos)) + if (this.func_175667_e(p_180494_1_)) { -- Chunk chunk = this.func_175726_f(p_180494_1_); -+ Chunk chunk = this.func_175726_f(pos); - - try - { -- return chunk.func_177411_a(p_180494_1_, this.field_73011_w.func_177499_m()); -+ return chunk.func_177411_a(pos, this.field_73011_w.func_177499_m()); - } - catch (Throwable throwable) - { -@@ -140,7 +157,7 @@ - { - public String call() throws Exception - { -- return CrashReportCategory.func_180522_a(p_180494_1_); -+ return CrashReportCategory.func_180522_a(pos); - } - }); - throw new ReportedException(crashreport); -@@ -148,7 +165,7 @@ - } - else - { -- return this.field_73011_w.func_177499_m().func_180300_a(p_180494_1_, Biomes.field_76772_c); -+ return this.field_73011_w.func_177499_m().func_180300_a(pos, Biomes.field_76772_c); - } - } - -@@ -194,7 +211,7 @@ + Chunk chunk = this.func_175726_f(p_180494_1_); +@@ -201,7 +218,7 @@ public boolean func_175623_d(BlockPos p_175623_1_) { @@ -82,7 +54,7 @@ } public boolean func_175667_e(BlockPos p_175667_1_) -@@ -291,37 +308,61 @@ +@@ -298,23 +315,49 @@ { Chunk chunk = this.func_175726_f(p_180501_1_); Block block = p_180501_2_.func_177230_c(); @@ -117,35 +89,29 @@ - if ((p_180501_3_ & 2) != 0 && (!this.field_72995_K || (p_180501_3_ & 4) == 0) && chunk.func_150802_k()) + if (blockSnapshot == null) // Don't notify clients or update physics while capturing blockstates { -- this.func_184138_a(p_180501_1_, iblockstate, p_180501_2_, p_180501_3_); + this.markAndNotifyBlock(p_180501_1_, chunk, iblockstate, p_180501_2_, p_180501_3_); - } ++ } + return true; + } + } + } - -- if (!this.field_72995_K && (p_180501_3_ & 1) != 0) ++ + // Split off from original setBlockState(BlockPos, IBlockState, int) method in order to directly send client and physic updates -+ public void markAndNotifyBlock(BlockPos pos, Chunk chunk, IBlockState iblockstate, IBlockState newState, int flags) ++ public void markAndNotifyBlock(BlockPos p_180501_1_, Chunk chunk, IBlockState iblockstate, IBlockState p_180501_2_, int p_180501_3_) + { + { + { -+ if ((flags & 2) != 0 && (!this.field_72995_K || (flags & 4) == 0) && (chunk == null || chunk.func_150802_k())) - { -- this.func_175722_b(p_180501_1_, iblockstate.func_177230_c()); -+ this.func_184138_a(pos, iblockstate, newState, flags); -+ } - -- if (p_180501_2_.func_185912_n()) -+ if (!this.field_72995_K && (flags & 1) != 0) ++ if ((p_180501_3_ & 2) != 0 && (!this.field_72995_K || (p_180501_3_ & 4) == 0) && (chunk == null || chunk.func_150802_k())) + { -+ this.func_175722_b(pos, iblockstate.func_177230_c()); -+ -+ if (newState.func_185912_n()) + this.func_184138_a(p_180501_1_, iblockstate, p_180501_2_, p_180501_3_); + } + +@@ -324,11 +367,9 @@ + + if (p_180501_2_.func_185912_n()) { - this.func_175666_e(p_180501_1_, block); -+ this.func_175666_e(pos, newState.func_177230_c()); ++ this.func_175666_e(p_180501_1_, p_180501_2_.func_177230_c()); } } - @@ -153,7 +119,7 @@ } } } -@@ -336,7 +377,7 @@ +@@ -343,7 +384,7 @@ IBlockState iblockstate = this.func_180495_p(p_175655_1_); Block block = iblockstate.func_177230_c(); @@ -162,7 +128,7 @@ { return false; } -@@ -409,6 +450,9 @@ +@@ -416,6 +457,9 @@ public void func_175685_c(BlockPos p_175685_1_, Block p_175685_2_) { @@ -172,7 +138,7 @@ this.func_180496_d(p_175685_1_.func_177976_e(), p_175685_2_); this.func_180496_d(p_175685_1_.func_177974_f(), p_175685_2_); this.func_180496_d(p_175685_1_.func_177977_b(), p_175685_2_); -@@ -419,6 +463,11 @@ +@@ -426,6 +470,11 @@ public void func_175695_a(BlockPos p_175695_1_, Block p_175695_2_, EnumFacing p_175695_3_) { @@ -184,7 +150,7 @@ if (p_175695_3_ != EnumFacing.WEST) { this.func_180496_d(p_175695_1_.func_177976_e(), p_175695_2_); -@@ -514,7 +563,7 @@ +@@ -521,7 +570,7 @@ { IBlockState iblockstate = this.func_180495_p(blockpos); @@ -193,7 +159,7 @@ { return false; } -@@ -782,7 +831,7 @@ +@@ -790,7 +839,7 @@ public boolean func_72935_r() { @@ -201,10 +167,10 @@ + return this.field_73011_w.isDaytime(); } - public RayTraceResult func_72933_a(Vec3d p_72933_1_, Vec3d p_72933_2_) -@@ -982,6 +1031,13 @@ + @Nullable +@@ -993,6 +1042,13 @@ - public void func_184148_a(EntityPlayer p_184148_1_, double p_184148_2_, double p_184148_4_, double p_184148_6_, SoundEvent p_184148_8_, SoundCategory p_184148_9_, float p_184148_10_, float p_184148_11_) + public void func_184148_a(@Nullable EntityPlayer p_184148_1_, double p_184148_2_, double p_184148_4_, double p_184148_6_, SoundEvent p_184148_8_, SoundCategory p_184148_9_, float p_184148_10_, float p_184148_11_) { + net.minecraftforge.event.entity.PlaySoundAtEntityEvent event = net.minecraftforge.event.ForgeEventFactory.onPlaySoundAtEntity(p_184148_1_, p_184148_8_, p_184148_9_, p_184148_10_, p_184148_11_); + if (event.isCanceled() || event.getSound() == null) return; @@ -216,7 +182,7 @@ for (int i = 0; i < this.field_73021_x.size(); ++i) { ((IWorldEventListener)this.field_73021_x.get(i)).func_184375_a(p_184148_1_, p_184148_8_, p_184148_9_, p_184148_2_, p_184148_4_, p_184148_6_, p_184148_10_, p_184148_11_); -@@ -1027,6 +1083,9 @@ +@@ -1038,6 +1094,9 @@ public boolean func_72838_d(Entity p_72838_1_) { @@ -226,7 +192,7 @@ int i = MathHelper.func_76128_c(p_72838_1_.field_70165_t / 16.0D); int j = MathHelper.func_76128_c(p_72838_1_.field_70161_v / 16.0D); boolean flag = p_72838_1_.field_98038_p; -@@ -1049,6 +1108,8 @@ +@@ -1060,6 +1119,8 @@ this.func_72854_c(); } @@ -235,7 +201,7 @@ this.func_72964_e(i, j).func_76612_a(p_72838_1_); this.field_72996_f.add(p_72838_1_); this.func_72923_a(p_72838_1_); -@@ -1285,7 +1346,6 @@ +@@ -1291,7 +1352,6 @@ return list; } @@ -243,7 +209,7 @@ public void func_72848_b(IWorldEventListener p_72848_1_) { this.field_73021_x.remove(p_72848_1_); -@@ -1348,19 +1408,38 @@ +@@ -1354,19 +1414,38 @@ public int func_72967_a(float p_72967_1_) { @@ -284,61 +250,31 @@ float f = this.func_72826_c(p_72971_1_); float f1 = 1.0F - (MathHelper.func_76134_b(f * ((float)Math.PI * 2F)) * 2.0F + 0.2F); f1 = MathHelper.func_76131_a(f1, 0.0F, 1.0F); -@@ -1373,23 +1452,27 @@ +@@ -1379,6 +1458,12 @@ @SideOnly(Side.CLIENT) public Vec3d func_72833_a(Entity p_72833_1_, float p_72833_2_) { -- float f = this.func_72826_c(p_72833_2_); + return this.field_73011_w.getSkyColor(p_72833_1_, p_72833_2_); + } + + @SideOnly(Side.CLIENT) -+ public Vec3d getSkyColorBody(Entity entityIn, float partialTicks) ++ public Vec3d getSkyColorBody(Entity p_72833_1_, float p_72833_2_) + { -+ float f = this.func_72826_c(partialTicks); + float f = this.func_72826_c(p_72833_2_); float f1 = MathHelper.func_76134_b(f * ((float)Math.PI * 2F)) * 2.0F + 0.5F; f1 = MathHelper.func_76131_a(f1, 0.0F, 1.0F); -- int i = MathHelper.func_76128_c(p_72833_1_.field_70165_t); -- int j = MathHelper.func_76128_c(p_72833_1_.field_70163_u); -- int k = MathHelper.func_76128_c(p_72833_1_.field_70161_v); -+ int i = MathHelper.func_76128_c(entityIn.field_70165_t); -+ int j = MathHelper.func_76128_c(entityIn.field_70163_u); -+ int k = MathHelper.func_76128_c(entityIn.field_70161_v); +@@ -1386,9 +1471,7 @@ + int j = MathHelper.func_76128_c(p_72833_1_.field_70163_u); + int k = MathHelper.func_76128_c(p_72833_1_.field_70161_v); BlockPos blockpos = new BlockPos(i, j, k); -- BiomeGenBase biomegenbase = this.func_180494_b(blockpos); -- float f2 = biomegenbase.func_180626_a(blockpos); -- int l = biomegenbase.func_76731_a(f2); +- Biome biome = this.func_180494_b(blockpos); +- float f2 = biome.func_180626_a(blockpos); +- int l = biome.func_76731_a(f2); + int l = net.minecraftforge.client.ForgeHooksClient.getSkyBlendColour(this, blockpos); float f3 = (float)(l >> 16 & 255) / 255.0F; float f4 = (float)(l >> 8 & 255) / 255.0F; float f5 = (float)(l & 255) / 255.0F; - f3 = f3 * f1; - f4 = f4 * f1; - f5 = f5 * f1; -- float f6 = this.func_72867_j(p_72833_2_); -+ float f6 = this.func_72867_j(partialTicks); - - if (f6 > 0.0F) - { -@@ -1400,7 +1483,7 @@ - f5 = f5 * f8 + f7 * (1.0F - f8); - } - -- float f10 = this.func_72819_i(p_72833_2_); -+ float f10 = this.func_72819_i(partialTicks); - - if (f10 > 0.0F) - { -@@ -1413,7 +1496,7 @@ - - if (this.field_73016_r > 0) - { -- float f12 = (float)this.field_73016_r - p_72833_2_; -+ float f12 = (float)this.field_73016_r - partialTicks; - - if (f12 > 1.0F) - { -@@ -1442,6 +1525,11 @@ +@@ -1448,6 +1531,11 @@ public float func_130001_d() { @@ -350,38 +286,20 @@ return WorldProvider.field_111203_a[this.field_73011_w.func_76559_b(this.field_72986_A.func_76073_f())]; } -@@ -1454,13 +1542,19 @@ +@@ -1460,6 +1548,12 @@ @SideOnly(Side.CLIENT) public Vec3d func_72824_f(float p_72824_1_) { -- float f = this.func_72826_c(p_72824_1_); + return this.field_73011_w.getCloudColor(p_72824_1_); + } + + @SideOnly(Side.CLIENT) -+ public Vec3d getCloudColorBody(float partialTicks) ++ public Vec3d getCloudColorBody(float p_72824_1_) + { -+ float f = this.func_72826_c(partialTicks); + float f = this.func_72826_c(p_72824_1_); float f1 = MathHelper.func_76134_b(f * ((float)Math.PI * 2F)) * 2.0F + 0.5F; f1 = MathHelper.func_76131_a(f1, 0.0F, 1.0F); - float f2 = (float)(this.field_73001_c >> 16 & 255L) / 255.0F; - float f3 = (float)(this.field_73001_c >> 8 & 255L) / 255.0F; - float f4 = (float)(this.field_73001_c & 255L) / 255.0F; -- float f5 = this.func_72867_j(p_72824_1_); -+ float f5 = this.func_72867_j(partialTicks); - - if (f5 > 0.0F) - { -@@ -1474,7 +1568,7 @@ - f2 = f2 * (f1 * 0.9F + 0.1F); - f3 = f3 * (f1 * 0.9F + 0.1F); - f4 = f4 * (f1 * 0.85F + 0.15F); -- float f9 = this.func_72819_i(p_72824_1_); -+ float f9 = this.func_72819_i(partialTicks); - - if (f9 > 0.0F) - { -@@ -1509,9 +1603,9 @@ +@@ -1515,9 +1609,9 @@ for (blockpos = new BlockPos(p_175672_1_.func_177958_n(), chunk.func_76625_h() + 16, p_175672_1_.func_177952_p()); blockpos.func_177956_o() >= 0; blockpos = blockpos1) { blockpos1 = blockpos.func_177977_b(); @@ -393,7 +311,7 @@ { break; } -@@ -1523,6 +1617,12 @@ +@@ -1529,6 +1623,12 @@ @SideOnly(Side.CLIENT) public float func_72880_h(float p_72880_1_) { @@ -406,7 +324,7 @@ float f = this.func_72826_c(p_72880_1_); float f1 = 1.0F - (MathHelper.func_76134_b(f * ((float)Math.PI * 2F)) * 2.0F + 0.25F); f1 = MathHelper.func_76131_a(f1, 0.0F, 1.0F); -@@ -1574,6 +1674,12 @@ +@@ -1580,6 +1680,12 @@ entity.func_85029_a(crashreportcategory); } @@ -419,7 +337,7 @@ throw new ReportedException(crashreport); } -@@ -1635,6 +1741,12 @@ +@@ -1641,6 +1747,12 @@ CrashReport crashreport1 = CrashReport.func_85055_a(throwable1, "Ticking entity"); CrashReportCategory crashreportcategory1 = crashreport1.func_85058_a("Entity being ticked"); entity2.func_85029_a(crashreportcategory1); @@ -432,7 +350,7 @@ throw new ReportedException(crashreport1); } } -@@ -1684,6 +1796,13 @@ +@@ -1690,6 +1802,13 @@ CrashReport crashreport2 = CrashReport.func_85055_a(throwable, "Ticking block entity"); CrashReportCategory crashreportcategory2 = crashreport2.func_85058_a("Block entity being ticked"); tileentity.func_145828_a(crashreportcategory2); @@ -446,7 +364,7 @@ throw new ReportedException(crashreport2); } } -@@ -1701,15 +1820,20 @@ +@@ -1707,15 +1826,20 @@ } } @@ -469,7 +387,7 @@ this.field_72984_F.func_76318_c("pendingBlockEntities"); if (!this.field_147484_a.isEmpty()) -@@ -1748,7 +1872,8 @@ +@@ -1754,7 +1878,8 @@ public boolean func_175700_a(TileEntity p_175700_1_) { @@ -479,12 +397,12 @@ if (flag && p_175700_1_ instanceof ITickable) { -@@ -1782,9 +1907,13 @@ +@@ -1788,9 +1913,13 @@ { int i = MathHelper.func_76128_c(p_72866_1_.field_70165_t); int j = MathHelper.func_76128_c(p_72866_1_.field_70161_v); - int k = 32; -+ boolean isForced = getPersistentChunks().containsKey(new ChunkCoordIntPair(i >> 4, j >> 4)); ++ boolean isForced = getPersistentChunks().containsKey(new net.minecraft.util.math.ChunkPos(i >> 4, j >> 4)); + int k = isForced ? 0 : 32; + boolean canUpdate = !p_72866_2_ || this.func_175663_a(i - k, 0, j - k, i + k, 0, j + k, true); @@ -495,16 +413,7 @@ { p_72866_1_.field_70142_S = p_72866_1_.field_70165_t; p_72866_1_.field_70137_T = p_72866_1_.field_70163_u; -@@ -1913,7 +2042,7 @@ - { - IBlockState iblockstate = this.func_180495_p(blockpos$pooledmutableblockpos.func_185343_d(k1, l1, i2)); - -- if (iblockstate.func_185904_a() != Material.field_151579_a) -+ if (!iblockstate.func_177230_c().isAir(iblockstate, this, new BlockPos(k1, l1, i2))) - { - blockpos$pooledmutableblockpos.func_185344_t(); - return true; -@@ -1983,6 +2112,10 @@ +@@ -1989,6 +2118,10 @@ blockpos$pooledmutableblockpos.func_185344_t(); return true; } @@ -515,7 +424,7 @@ } } } -@@ -2022,6 +2155,16 @@ +@@ -2028,6 +2161,16 @@ IBlockState iblockstate = this.func_180495_p(blockpos$pooledmutableblockpos); Block block = iblockstate.func_177230_c(); @@ -532,7 +441,7 @@ if (iblockstate.func_185904_a() == p_72918_2_) { double d0 = (double)((float)(l1 + 1) - BlockLiquid.func_149801_b(((Integer)iblockstate.func_177229_b(BlockLiquid.field_176367_b)).intValue())); -@@ -2098,6 +2241,9 @@ +@@ -2104,6 +2247,9 @@ { IBlockState iblockstate = this.func_180495_p(blockpos$pooledmutableblockpos.func_185343_d(k1, l1, i2)); @@ -542,43 +451,35 @@ if (iblockstate.func_185904_a() == p_72830_2_) { int j2 = ((Integer)iblockstate.func_177229_b(BlockLiquid.field_176367_b)).intValue(); -@@ -2130,6 +2276,7 @@ - public Explosion func_72885_a(Entity p_72885_1_, double p_72885_2_, double p_72885_4_, double p_72885_6_, float p_72885_8_, boolean p_72885_9_, boolean p_72885_10_) +@@ -2136,6 +2282,7 @@ + public Explosion func_72885_a(@Nullable Entity p_72885_1_, double p_72885_2_, double p_72885_4_, double p_72885_6_, float p_72885_8_, boolean p_72885_9_, boolean p_72885_10_) { Explosion explosion = new Explosion(this, p_72885_1_, p_72885_2_, p_72885_4_, p_72885_6_, p_72885_8_, p_72885_9_, p_72885_10_); + if (net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this, explosion)) return explosion; explosion.func_77278_a(); explosion.func_77279_a(true); return explosion; -@@ -2253,6 +2400,7 @@ +@@ -2258,6 +2405,7 @@ - public void func_175690_a(BlockPos p_175690_1_, TileEntity p_175690_2_) + public void func_175690_a(BlockPos p_175690_1_, @Nullable TileEntity p_175690_2_) { + p_175690_1_ = p_175690_1_.func_185334_h(); // Forge - prevent mutable BlockPos leaks - if (p_175690_2_ != null && !p_175690_2_.func_145837_r()) + if (!this.func_189509_E(p_175690_1_)) { - if (this.field_147481_N) -@@ -2276,19 +2424,27 @@ - else - { - this.func_175700_a(p_175690_2_); -- this.func_175726_f(p_175690_1_).func_177426_a(p_175690_1_, p_175690_2_); -+ Chunk chunk = this.func_175726_f(p_175690_1_); //Forge add NPE protection -+ if (chunk != null) chunk.func_177426_a(p_175690_1_, p_175690_2_); + if (p_175690_2_ != null && !p_175690_2_.func_145837_r()) +@@ -2283,8 +2431,10 @@ + else + { + this.func_175700_a(p_175690_2_); +- this.func_175726_f(p_175690_1_).func_177426_a(p_175690_1_, p_175690_2_); ++ Chunk chunk = this.func_175726_f(p_175690_1_); //Forge add NPE protection ++ if (chunk != null) chunk.func_177426_a(p_175690_1_, p_175690_2_); + } ++ this.func_175666_e(p_175690_1_, func_180495_p(p_175690_1_).func_177230_c()); //Notify neighbors of changes } -+ this.func_175666_e(p_175690_1_, func_180495_p(p_175690_1_).func_177230_c()); //Notify neighbors of changes } } - - public void func_175713_t(BlockPos p_175713_1_) - { -+ //Chunk chunk = this.getChunkFromBlockCoords(pos); -+ //if (chunk != null) chunk.removeTileEntity(pos); -+ //Forge ToDO: Are these patches needed anymore? -+ - TileEntity tileentity = this.func_175625_s(p_175713_1_); - - if (tileentity != null && this.field_147481_N) +@@ -2297,6 +2447,8 @@ { tileentity.func_145843_s(); this.field_147484_a.remove(tileentity); @@ -587,7 +488,7 @@ } else { -@@ -2301,6 +2457,7 @@ +@@ -2309,6 +2461,7 @@ this.func_175726_f(p_175713_1_).func_177425_e(p_175713_1_); } @@ -595,7 +496,7 @@ } public void func_147457_a(TileEntity p_147457_1_) -@@ -2327,7 +2484,7 @@ +@@ -2335,7 +2488,7 @@ if (chunk != null && !chunk.func_76621_g()) { IBlockState iblockstate = this.func_180495_p(p_175677_1_); @@ -604,7 +505,7 @@ } else { -@@ -2350,6 +2507,7 @@ +@@ -2358,6 +2511,7 @@ { this.field_72985_G = p_72891_1_; this.field_72992_H = p_72891_2_; @@ -612,7 +513,7 @@ } public void func_72835_b() -@@ -2359,6 +2517,11 @@ +@@ -2367,6 +2521,11 @@ protected void func_72947_a() { @@ -624,7 +525,7 @@ if (this.field_72986_A.func_76059_o()) { this.field_73004_o = 1.0F; -@@ -2372,6 +2535,11 @@ +@@ -2380,6 +2539,11 @@ protected void func_72979_l() { @@ -636,83 +537,40 @@ if (!this.field_73011_w.func_177495_o()) { if (!this.field_72995_K) -@@ -2491,28 +2659,33 @@ +@@ -2499,6 +2663,11 @@ public boolean func_175670_e(BlockPos p_175670_1_, boolean p_175670_2_) { -- BiomeGenBase biomegenbase = this.func_180494_b(p_175670_1_); -- float f = biomegenbase.func_180626_a(p_175670_1_); + return this.field_73011_w.canBlockFreeze(p_175670_1_, p_175670_2_); + } - -+ public boolean canBlockFreezeBody(BlockPos pos, boolean noWaterAdj) -+ { -+ BiomeGenBase biomegenbase = this.func_180494_b(pos); -+ float f = biomegenbase.func_180626_a(pos); + - if (f > 0.15F) - { - return false; - } - else - { -- if (p_175670_1_.func_177956_o() >= 0 && p_175670_1_.func_177956_o() < 256 && this.func_175642_b(EnumSkyBlock.BLOCK, p_175670_1_) < 10) -+ if (pos.func_177956_o() >= 0 && pos.func_177956_o() < 256 && this.func_175642_b(EnumSkyBlock.BLOCK, pos) < 10) - { -- IBlockState iblockstate = this.func_180495_p(p_175670_1_); -+ IBlockState iblockstate = this.func_180495_p(pos); - Block block = iblockstate.func_177230_c(); ++ public boolean canBlockFreezeBody(BlockPos p_175670_1_, boolean p_175670_2_) ++ { + Biome biome = this.func_180494_b(p_175670_1_); + float f = biome.func_180626_a(p_175670_1_); - if ((block == Blocks.field_150355_j || block == Blocks.field_150358_i) && ((Integer)iblockstate.func_177229_b(BlockLiquid.field_176367_b)).intValue() == 0) - { -- if (!p_175670_2_) -+ if (!noWaterAdj) - { - return true; - } - -- boolean flag = this.func_175696_F(p_175670_1_.func_177976_e()) && this.func_175696_F(p_175670_1_.func_177974_f()) && this.func_175696_F(p_175670_1_.func_177978_c()) && this.func_175696_F(p_175670_1_.func_177968_d()); -+ boolean flag = this.func_175696_F(pos.func_177976_e()) && this.func_175696_F(pos.func_177974_f()) && this.func_175696_F(pos.func_177978_c()) && this.func_175696_F(pos.func_177968_d()); - - if (!flag) - { -@@ -2532,24 +2705,29 @@ +@@ -2540,6 +2709,11 @@ public boolean func_175708_f(BlockPos p_175708_1_, boolean p_175708_2_) { -- BiomeGenBase biomegenbase = this.func_180494_b(p_175708_1_); -- float f = biomegenbase.func_180626_a(p_175708_1_); + return this.field_73011_w.canSnowAt(p_175708_1_, p_175708_2_); + } - -+ public boolean canSnowAtBody(BlockPos pos, boolean checkLight) -+ { -+ BiomeGenBase biomegenbase = this.func_180494_b(pos); -+ float f = biomegenbase.func_180626_a(pos); + - if (f > 0.15F) - { - return false; - } -- else if (!p_175708_2_) -+ else if (!checkLight) - { - return true; - } - else - { -- if (p_175708_1_.func_177956_o() >= 0 && p_175708_1_.func_177956_o() < 256 && this.func_175642_b(EnumSkyBlock.BLOCK, p_175708_1_) < 10) -+ if (pos.func_177956_o() >= 0 && pos.func_177956_o() < 256 && this.func_175642_b(EnumSkyBlock.BLOCK, pos) < 10) ++ public boolean canSnowAtBody(BlockPos p_175708_1_, boolean p_175708_2_) ++ { + Biome biome = this.func_180494_b(p_175708_1_); + float f = biome.func_180626_a(p_175708_1_); + +@@ -2557,7 +2731,7 @@ { -- IBlockState iblockstate = this.func_180495_p(p_175708_1_); -+ IBlockState iblockstate = this.func_180495_p(pos); + IBlockState iblockstate = this.func_180495_p(p_175708_1_); - if (iblockstate.func_185904_a() == Material.field_151579_a && Blocks.field_150431_aC.func_176196_c(this, p_175708_1_)) -+ if (iblockstate.func_177230_c().isAir(iblockstate, this, pos) && Blocks.field_150431_aC.func_176196_c(this, pos)) ++ if (iblockstate.func_177230_c().isAir(iblockstate, this, p_175708_1_) && Blocks.field_150431_aC.func_176196_c(this, p_175708_1_)) { return true; } -@@ -2581,10 +2759,11 @@ +@@ -2589,10 +2763,11 @@ else { IBlockState iblockstate = this.func_180495_p(p_175638_1_); @@ -727,7 +585,7 @@ { j = 1; } -@@ -2683,7 +2862,7 @@ +@@ -2692,7 +2867,7 @@ int j4 = j2 + enumfacing.func_96559_d(); int k4 = k2 + enumfacing.func_82599_e(); blockpos$pooledmutableblockpos.func_185343_d(i4, j4, k4); @@ -736,8 +594,8 @@ i3 = this.func_175642_b(p_180500_1_, blockpos$pooledmutableblockpos); if (i3 == l2 - l4 && j < this.field_72994_J.length) -@@ -2789,10 +2968,10 @@ - public List func_175674_a(Entity p_175674_1_, AxisAlignedBB p_175674_2_, Predicate p_175674_3_) +@@ -2799,10 +2974,10 @@ + public List func_175674_a(@Nullable Entity p_175674_1_, AxisAlignedBB p_175674_2_, @Nullable Predicate p_175674_3_) { List list = Lists.newArrayList(); - int i = MathHelper.func_76128_c((p_175674_2_.field_72340_a - 2.0D) / 16.0D); @@ -751,9 +609,9 @@ for (int i1 = i; i1 <= j; ++i1) { -@@ -2845,10 +3024,10 @@ +@@ -2855,10 +3030,10 @@ - public List func_175647_a(Class p_175647_1_, AxisAlignedBB p_175647_2_, Predicate p_175647_3_) + public List func_175647_a(Class p_175647_1_, AxisAlignedBB p_175647_2_, @Nullable Predicate p_175647_3_) { - int i = MathHelper.func_76128_c((p_175647_2_.field_72340_a - 2.0D) / 16.0D); - int j = MathHelper.func_76143_f((p_175647_2_.field_72336_d + 2.0D) / 16.0D); @@ -766,7 +624,7 @@ List list = Lists.newArrayList(); for (int i1 = i; i1 < j; ++i1) -@@ -2926,11 +3105,13 @@ +@@ -2938,11 +3113,13 @@ public void func_175650_b(Collection p_175650_1_) { @@ -783,7 +641,7 @@ } } -@@ -2943,7 +3124,7 @@ +@@ -2955,7 +3132,7 @@ { IBlockState iblockstate = this.func_180495_p(p_175716_2_); AxisAlignedBB axisalignedbb = p_175716_3_ ? null : p_175716_1_.func_176223_P().func_185890_d(this, p_175716_2_); @@ -792,7 +650,7 @@ } public int func_181545_F() -@@ -3026,7 +3207,7 @@ +@@ -3038,7 +3215,7 @@ public int func_175651_c(BlockPos p_175651_1_, EnumFacing p_175651_2_) { IBlockState iblockstate = this.func_180495_p(p_175651_1_); @@ -801,7 +659,7 @@ } public boolean func_175640_z(BlockPos p_175640_1_) -@@ -3215,7 +3396,7 @@ +@@ -3235,7 +3412,7 @@ public long func_72905_C() { @@ -810,7 +668,7 @@ } public long func_82737_E() -@@ -3225,17 +3406,17 @@ +@@ -3245,17 +3422,17 @@ public long func_72820_D() { @@ -831,7 +689,7 @@ if (!this.func_175723_af().func_177746_a(blockpos)) { -@@ -3247,7 +3428,7 @@ +@@ -3267,7 +3444,7 @@ public void func_175652_B(BlockPos p_175652_1_) { @@ -840,7 +698,7 @@ } @SideOnly(Side.CLIENT) -@@ -3267,12 +3448,18 @@ +@@ -3287,12 +3464,18 @@ if (!this.field_72996_f.contains(p_72897_1_)) { @@ -854,22 +712,22 @@ + return this.field_73011_w.canMineBlock(p_175660_1_, p_175660_2_); + } + -+ public boolean canMineBlockBody(EntityPlayer player, BlockPos pos) ++ public boolean canMineBlockBody(EntityPlayer p_175660_1_, BlockPos p_175660_2_) + { return true; } -@@ -3366,8 +3553,7 @@ +@@ -3386,8 +3569,7 @@ public boolean func_180502_D(BlockPos p_180502_1_) { -- BiomeGenBase biomegenbase = this.func_180494_b(p_180502_1_); -- return biomegenbase.func_76736_e(); +- Biome biome = this.func_180494_b(p_180502_1_); +- return biome.func_76736_e(); + return this.field_73011_w.isBlockHighHumidity(p_180502_1_); } - public MapStorage func_175693_T() -@@ -3426,12 +3612,12 @@ + @Nullable +@@ -3448,12 +3630,12 @@ public int func_72800_K() { @@ -884,7 +742,7 @@ } public Random func_72843_D(int p_72843_1_, int p_72843_2_, int p_72843_3_) -@@ -3481,7 +3667,7 @@ +@@ -3503,7 +3685,7 @@ @SideOnly(Side.CLIENT) public double func_72919_O() { @@ -893,7 +751,7 @@ } public void func_175715_c(int p_175715_1_, BlockPos p_175715_2_, int p_175715_3_) -@@ -3515,7 +3701,7 @@ +@@ -3537,7 +3719,7 @@ public void func_175666_e(BlockPos p_175666_1_, Block p_175666_2_) { @@ -902,7 +760,7 @@ { BlockPos blockpos = p_175666_1_.func_177972_a(enumfacing); -@@ -3523,18 +3709,14 @@ +@@ -3545,18 +3727,14 @@ { IBlockState iblockstate = this.func_180495_p(blockpos); @@ -910,7 +768,7 @@ + iblockstate.func_177230_c().onNeighborChange(this, blockpos, p_175666_1_); + if (iblockstate.func_177230_c().isNormalCube(iblockstate, this, blockpos)) { -- iblockstate.func_177230_c().func_176204_a(this, blockpos, iblockstate, p_175666_2_); +- iblockstate.func_189546_a(this, blockpos, p_175666_2_); - } - else if (iblockstate.func_185915_l()) - { @@ -920,12 +778,12 @@ - if (Blocks.field_150441_bU.func_185547_C(iblockstate)) + if (iblockstate.func_177230_c().getWeakChanges(this, blockpos)) { -- iblockstate.func_177230_c().func_176204_a(this, blockpos, iblockstate, p_175666_2_); +- iblockstate.func_189546_a(this, blockpos, p_175666_2_); + iblockstate.func_177230_c().onNeighborChange(this, blockpos, p_175666_1_); } } } -@@ -3600,6 +3782,87 @@ +@@ -3622,6 +3800,87 @@ return i >= -k && i <= k && j >= -k && j <= k; } @@ -967,7 +825,7 @@ + * + * @return + */ -+ public com.google.common.collect.ImmutableSetMultimap getPersistentChunks() ++ public com.google.common.collect.ImmutableSetMultimap getPersistentChunks() + { + return net.minecraftforge.common.ForgeChunkManager.getPersistentChunksFor(this); + } diff --git a/patches/minecraft/net/minecraft/world/WorldEntitySpawner.java.patch b/patches/minecraft/net/minecraft/world/WorldEntitySpawner.java.patch index b8d9d1052a..3ae10c8cbe 100644 --- a/patches/minecraft/net/minecraft/world/WorldEntitySpawner.java.patch +++ b/patches/minecraft/net/minecraft/world/WorldEntitySpawner.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/WorldEntitySpawner.java +++ ../src-work/minecraft/net/minecraft/world/WorldEntitySpawner.java -@@ -77,15 +77,17 @@ +@@ -78,15 +78,17 @@ { if ((!enumcreaturetype.func_75599_d() || p_77192_3_) && (enumcreaturetype.func_75599_d() || p_77192_2_) && (!enumcreaturetype.func_82705_e() || p_77192_4_)) { @@ -10,17 +10,17 @@ if (k4 <= l4) { -+ java.util.ArrayList shuffled = com.google.common.collect.Lists.newArrayList(this.field_77193_b); ++ java.util.ArrayList shuffled = com.google.common.collect.Lists.newArrayList(this.field_77193_b); + java.util.Collections.shuffle(shuffled); BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos(); label415: -- for (ChunkCoordIntPair chunkcoordintpair1 : this.field_77193_b) -+ for (ChunkCoordIntPair chunkcoordintpair1 : shuffled) +- for (ChunkPos chunkpos1 : this.field_77193_b) ++ for (ChunkPos chunkpos1 : shuffled) { - BlockPos blockpos = func_180621_a(p_77192_1_, chunkcoordintpair1.field_77276_a, chunkcoordintpair1.field_77275_b); + BlockPos blockpos = func_180621_a(p_77192_1_, chunkpos1.field_77276_a, chunkpos1.field_77275_b); int k1 = blockpos.func_177958_n(); -@@ -144,8 +146,10 @@ +@@ -145,8 +147,10 @@ entityliving.func_70012_b((double)f, (double)i3, (double)f1, p_77192_1_.field_73012_v.nextFloat() * 360.0F, 0.0F); @@ -32,7 +32,7 @@ ientitylivingdata = entityliving.func_180482_a(p_77192_1_.func_175649_E(new BlockPos(entityliving)), ientitylivingdata); if (entityliving.func_70058_J()) -@@ -158,7 +162,7 @@ +@@ -159,7 +163,7 @@ entityliving.func_70106_y(); } @@ -41,7 +41,7 @@ { continue label415; } -@@ -211,8 +215,9 @@ +@@ -212,8 +216,9 @@ else { BlockPos blockpos = p_180267_2_.func_177977_b(); diff --git a/patches/minecraft/net/minecraft/world/WorldProvider.java.patch b/patches/minecraft/net/minecraft/world/WorldProvider.java.patch index e5de49716f..78c382d6c3 100644 --- a/patches/minecraft/net/minecraft/world/WorldProvider.java.patch +++ b/patches/minecraft/net/minecraft/world/WorldProvider.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/WorldProvider.java +++ ../src-work/minecraft/net/minecraft/world/WorldProvider.java -@@ -52,26 +52,12 @@ +@@ -53,26 +53,12 @@ protected void func_76572_b() { @@ -9,7 +9,7 @@ - if (worldtype == WorldType.field_77138_c) - { - FlatGeneratorInfo flatgeneratorinfo = FlatGeneratorInfo.func_82651_a(this.field_76579_a.func_72912_H().func_82571_y()); -- this.field_76578_c = new BiomeProviderSingle(BiomeGenBase.func_180276_a(flatgeneratorinfo.func_82648_a(), Biomes.field_180279_ad)); +- this.field_76578_c = new BiomeProviderSingle(Biome.func_180276_a(flatgeneratorinfo.func_82648_a(), Biomes.field_180279_ad)); - } - else if (worldtype == WorldType.field_180272_g) - { @@ -29,7 +29,7 @@ } public boolean func_76566_a(int p_76566_1_, int p_76566_2_) -@@ -156,7 +142,7 @@ +@@ -158,7 +144,7 @@ @SideOnly(Side.CLIENT) public float func_76571_f() { @@ -38,7 +38,7 @@ } @SideOnly(Side.CLIENT) -@@ -172,13 +158,13 @@ +@@ -174,13 +160,13 @@ public int func_76557_i() { @@ -54,7 +54,7 @@ } @SideOnly(Side.CLIENT) -@@ -212,6 +198,327 @@ +@@ -214,6 +200,327 @@ return new WorldBorder(); } @@ -222,9 +222,9 @@ + + /*======================================= Start Moved From World =========================================*/ + -+ public BiomeGenBase getBiomeGenForCoords(BlockPos pos) ++ public Biome getBiomeForCoords(BlockPos pos) + { -+ return field_76579_a.getBiomeGenForCoordsBody(pos); ++ return field_76579_a.getBiomeForCoordsBody(pos); + } + + public boolean isDaytime() diff --git a/patches/minecraft/net/minecraft/world/WorldSavedData.java.patch b/patches/minecraft/net/minecraft/world/WorldSavedData.java.patch index 6e33e0f03f..8356a8a705 100644 --- a/patches/minecraft/net/minecraft/world/WorldSavedData.java.patch +++ b/patches/minecraft/net/minecraft/world/WorldSavedData.java.patch @@ -9,7 +9,7 @@ { public final String field_76190_i; private boolean field_76189_a; -@@ -30,4 +30,16 @@ +@@ -30,4 +30,14 @@ { return this.field_76189_a; } @@ -21,8 +21,6 @@ + + public NBTTagCompound serializeNBT() + { -+ NBTTagCompound ret = new NBTTagCompound(); -+ this.func_76187_b(ret); -+ return ret; ++ return this.func_189551_b(new NBTTagCompound()); + } } diff --git a/patches/minecraft/net/minecraft/world/WorldServer.java.patch b/patches/minecraft/net/minecraft/world/WorldServer.java.patch index 35ca6d5ab5..2497d26f7f 100644 --- a/patches/minecraft/net/minecraft/world/WorldServer.java.patch +++ b/patches/minecraft/net/minecraft/world/WorldServer.java.patch @@ -1,11 +1,11 @@ --- ../src-base/minecraft/net/minecraft/world/WorldServer.java +++ ../src-work/minecraft/net/minecraft/world/WorldServer.java -@@ -97,30 +97,39 @@ +@@ -98,30 +98,39 @@ private int field_147489_T; private List field_94579_S = Lists.newArrayList(); + /** Stores the recently processed (lighting) chunks */ -+ protected Set doneChunks = new java.util.HashSet(); ++ protected Set doneChunks = new java.util.HashSet(); + public List customTeleporters = new ArrayList(); + public WorldServer(MinecraftServer p_i45921_1_, ISaveHandler p_i45921_2_, WorldInfo p_i45921_3_, int p_i45921_4_, Profiler p_i45921_5_) @@ -14,7 +14,7 @@ + super(p_i45921_2_, p_i45921_3_, net.minecraftforge.common.DimensionManager.createProviderFor(p_i45921_4_), p_i45921_5_, false); this.field_73061_a = p_i45921_1_; this.field_73062_L = new EntityTracker(this); - this.field_73063_M = new PlayerManager(this); + this.field_73063_M = new PlayerChunkMap(this); + // Guarantee the dimension ID was not reset by the provider + int providerDim = this.field_73011_w.getDimension(); this.field_73011_w.func_76558_a(this); @@ -43,7 +43,7 @@ } else { -@@ -214,6 +223,10 @@ +@@ -215,6 +224,10 @@ this.field_175740_d.func_75528_a(); this.field_72984_F.func_76318_c("portalForcer"); this.field_85177_Q.func_85189_a(this.func_82737_E()); @@ -54,22 +54,22 @@ this.field_72984_F.func_76319_b(); this.func_147488_Z(); } -@@ -221,12 +234,14 @@ - public BiomeGenBase.SpawnListEntry func_175734_a(EnumCreatureType p_175734_1_, BlockPos p_175734_2_) +@@ -223,12 +236,14 @@ + public Biome.SpawnListEntry func_175734_a(EnumCreatureType p_175734_1_, BlockPos p_175734_2_) { - List list = this.func_72863_F().func_177458_a(p_175734_1_, p_175734_2_); + List list = this.func_72863_F().func_177458_a(p_175734_1_, p_175734_2_); + list = net.minecraftforge.event.ForgeEventFactory.getPotentialSpawns(this, p_175734_1_, p_175734_2_, list); - return list != null && !list.isEmpty() ? (BiomeGenBase.SpawnListEntry)WeightedRandom.func_76271_a(this.field_73012_v, list) : null; + return list != null && !list.isEmpty() ? (Biome.SpawnListEntry)WeightedRandom.func_76271_a(this.field_73012_v, list) : null; } - public boolean func_175732_a(EnumCreatureType p_175732_1_, BiomeGenBase.SpawnListEntry p_175732_2_, BlockPos p_175732_3_) + public boolean func_175732_a(EnumCreatureType p_175732_1_, Biome.SpawnListEntry p_175732_2_, BlockPos p_175732_3_) { - List list = this.func_72863_F().func_177458_a(p_175732_1_, p_175732_3_); + List list = this.func_72863_F().func_177458_a(p_175732_1_, p_175732_3_); + list = net.minecraftforge.event.ForgeEventFactory.getPotentialSpawns(this, p_175732_1_, p_175732_3_, list); return list != null && !list.isEmpty() ? list.contains(p_175732_2_) : false; } -@@ -272,10 +287,7 @@ +@@ -274,10 +289,7 @@ private void func_73051_P() { @@ -81,7 +81,7 @@ } public boolean func_73056_e() -@@ -368,7 +380,7 @@ +@@ -370,7 +382,7 @@ boolean flag1 = this.func_72911_I(); this.field_72984_F.func_76320_a("pollingChunks"); @@ -90,7 +90,7 @@ { this.field_72984_F.func_76320_a("getChunk"); Chunk chunk = (Chunk)iterator.next(); -@@ -380,7 +392,7 @@ +@@ -382,7 +394,7 @@ chunk.func_150804_b(false); this.field_72984_F.func_76318_c("thunder"); @@ -99,7 +99,7 @@ { this.field_73005_l = this.field_73005_l * 3 + 1013904223; int l = this.field_73005_l >> 2; -@@ -409,7 +421,7 @@ +@@ -411,7 +423,7 @@ this.field_72984_F.func_76318_c("iceandsnow"); @@ -108,17 +108,19 @@ { this.field_73005_l = this.field_73005_l * 3 + 1013904223; int j2 = this.field_73005_l >> 2; -@@ -527,6 +539,9 @@ +@@ -527,7 +539,10 @@ + { if (p_175654_2_.func_149698_L()) { - i = 8; +- if (this.func_175707_a(p_175654_1_.func_177982_a(-8, -8, -8), p_175654_1_.func_177982_a(8, 8, 8))) + //Keeping here as a note for future when it may be restored. -+ boolean isForced = getPersistentChunks().containsKey(new ChunkCoordIntPair(p_175654_1_.func_177958_n() >> 4, p_175654_1_.func_177952_p() >> 4)); -+ i = isForced ? 0 : 8; - - if (this.func_175707_a(p_175654_1_.func_177982_a(-i, -i, -i), p_175654_1_.func_177982_a(i, i, i))) ++ boolean isForced = getPersistentChunks().containsKey(new ChunkPos(p_175654_1_)); ++ int range = isForced ? 0 : 8; ++ if (this.func_175707_a(p_175654_1_.func_177982_a(-range, -range, -range), p_175654_1_.func_177982_a(range, range, range))) { -@@ -588,7 +603,7 @@ + IBlockState iblockstate = this.func_180495_p(p_175654_1_); + +@@ -587,7 +602,7 @@ public void func_72939_s() { @@ -127,84 +129,44 @@ { if (this.field_80004_Q++ >= 300) { -@@ -712,6 +727,9 @@ +@@ -711,6 +726,9 @@ { NextTickListEntry nextticklistentry1 = (NextTickListEntry)iterator.next(); iterator.remove(); + //Keeping here as a note for future when it may be restored. -+ //boolean isForced = getPersistentChunks().containsKey(new ChunkCoordIntPair(nextticklistentry.xCoord >> 4, nextticklistentry.zCoord >> 4)); ++ //boolean isForced = getPersistentChunks().containsKey(new ChunkPos(nextticklistentry.xCoord >> 4, nextticklistentry.zCoord >> 4)); + //byte b0 = isForced ? 0 : 8; int k = 0; if (this.func_175707_a(nextticklistentry1.field_180282_a.func_177982_a(-k, -k, -k), nextticklistentry1.field_180282_a.func_177982_a(k, k, k))) -@@ -838,24 +856,42 @@ - { - List list = Lists.newArrayList(); - -- for (int i = 0; i < this.field_147482_g.size(); ++i) -+ //Forge: Optimize this loop to only grab from the chunks it needs -+ for (int x = (p_147486_1_ & ~0x0F); x < p_147486_4_; x += 16) - { -- TileEntity tileentity = (TileEntity)this.field_147482_g.get(i); -- BlockPos blockpos = tileentity.func_174877_v(); -- -- if (blockpos.func_177958_n() >= p_147486_1_ && blockpos.func_177956_o() >= p_147486_2_ && blockpos.func_177952_p() >= p_147486_3_ && blockpos.func_177958_n() < p_147486_4_ && blockpos.func_177956_o() < p_147486_5_ && blockpos.func_177952_p() < p_147486_6_) -+ for (int z = (p_147486_3_ & ~0x0F); z < p_147486_6_; z += 16) // & ~0xF Floors it by 16. Yay bitmath! - { -- list.add(tileentity); -+ if (!this.func_175680_a(x >> 4, z >> 4, true)) continue; //Prevent loading extra chunks to just read data. This causes orphaned chunks that never unload. -+ Chunk chunk = this.func_72964_e(x >> 4, z >> 4); -+ if (chunk != null && !chunk.func_76621_g()) -+ { -+ for (TileEntity entity : chunk.func_177434_r().values()) -+ { -+ if (!entity.func_145837_r()) -+ { -+ BlockPos pos = entity.func_174877_v(); -+ if (pos.func_177958_n() >= p_147486_1_ && pos.func_177956_o() >= p_147486_2_ && pos.func_177952_p() >= p_147486_3_ && -+ pos.func_177958_n() < p_147486_4_ && pos.func_177956_o() < p_147486_5_ && pos.func_177952_p() < p_147486_6_) -+ { -+ list.add(entity); -+ } -+ -+ } -+ } -+ } - } - } -- - return list; - } +@@ -837,6 +855,10 @@ public boolean func_175660_a(EntityPlayer p_175660_1_, BlockPos p_175660_2_) { -- return !this.field_73061_a.func_175579_a(this, p_175660_2_, p_175660_1_) && this.func_175723_af().func_177746_a(p_175660_2_); + return super.func_175660_a(p_175660_1_, p_175660_2_); - } -+ public boolean canMineBlockBody(EntityPlayer player, BlockPos pos) -+ { -+ return !this.field_73061_a.func_175579_a(this, pos, player) && this.func_175723_af().func_177746_a(pos); + } ++ public boolean canMineBlockBody(EntityPlayer p_175660_1_, BlockPos p_175660_2_) ++ { + return !this.field_73061_a.func_175579_a(this, p_175660_2_, p_175660_1_) && this.func_175723_af().func_177746_a(p_175660_2_); + } - public void func_72963_a(WorldSettings p_72963_1_) - { -@@ -919,6 +955,7 @@ +@@ -902,6 +924,7 @@ } else { + if (net.minecraftforge.event.ForgeEventFactory.onCreateWorldSpawn(this, p_73052_1_)) return; this.field_72987_B = true; BiomeProvider biomeprovider = this.field_73011_w.func_177499_m(); - List list = biomeprovider.func_76932_a(); -@@ -1003,6 +1040,7 @@ + List list = biomeprovider.func_76932_a(); +@@ -986,6 +1009,7 @@ } chunkproviderserver.func_186027_a(p_73044_1_); + net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.WorldEvent.Save(this)); - for (Chunk chunk : Lists.newArrayList(chunkproviderserver.func_152380_a())) + for (Chunk chunk : Lists.newArrayList(chunkproviderserver.func_189548_a())) { -@@ -1047,6 +1085,7 @@ +@@ -1030,6 +1054,7 @@ this.field_72986_A.func_176135_e(this.func_175723_af().func_177732_i()); this.field_73019_z.func_75755_a(this.field_72986_A, this.field_73061_a.func_184103_al().func_72378_q()); this.field_72988_C.func_75744_a(); @@ -212,7 +174,7 @@ } public boolean func_72838_d(Entity p_72838_1_) -@@ -1058,7 +1097,7 @@ +@@ -1041,7 +1066,7 @@ { for (Entity entity : Lists.newArrayList(p_175650_1_)) { @@ -221,7 +183,7 @@ { this.field_72996_f.add(entity); this.func_72923_a(entity); -@@ -1139,7 +1178,7 @@ +@@ -1122,7 +1147,7 @@ { if (super.func_72942_c(p_72942_1_)) { @@ -230,15 +192,15 @@ return true; } else -@@ -1161,6 +1200,7 @@ - public Explosion func_72885_a(Entity p_72885_1_, double p_72885_2_, double p_72885_4_, double p_72885_6_, float p_72885_8_, boolean p_72885_9_, boolean p_72885_10_) +@@ -1144,6 +1169,7 @@ + public Explosion func_72885_a(@Nullable Entity p_72885_1_, double p_72885_2_, double p_72885_4_, double p_72885_6_, float p_72885_8_, boolean p_72885_9_, boolean p_72885_10_) { Explosion explosion = new Explosion(this, p_72885_1_, p_72885_2_, p_72885_4_, p_72885_6_, p_72885_8_, p_72885_9_, p_72885_10_); + if (net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this, explosion)) return explosion; explosion.func_77278_a(); explosion.func_77279_a(false); -@@ -1206,7 +1246,7 @@ +@@ -1189,7 +1215,7 @@ { if (this.func_147485_a(blockeventdata)) { @@ -247,7 +209,7 @@ } } -@@ -1232,27 +1272,31 @@ +@@ -1215,27 +1241,31 @@ if (this.field_73003_n != this.field_73004_o) { @@ -285,7 +247,7 @@ } } -@@ -1329,6 +1373,11 @@ +@@ -1314,6 +1344,11 @@ return this.field_73061_a.func_152345_ab(); } diff --git a/patches/minecraft/net/minecraft/world/WorldType.java.patch b/patches/minecraft/net/minecraft/world/WorldType.java.patch index eeb74f3943..3b7bcacb83 100644 --- a/patches/minecraft/net/minecraft/world/WorldType.java.patch +++ b/patches/minecraft/net/minecraft/world/WorldType.java.patch @@ -18,7 +18,7 @@ + if (this == field_77138_c) + { + net.minecraft.world.gen.FlatGeneratorInfo flatgeneratorinfo = net.minecraft.world.gen.FlatGeneratorInfo.func_82651_a(world.func_72912_H().func_82571_y()); -+ return new net.minecraft.world.biome.BiomeProviderSingle(net.minecraft.world.biome.BiomeGenBase.func_180276_a(flatgeneratorinfo.func_82648_a(), net.minecraft.init.Biomes.field_180279_ad)); ++ return new net.minecraft.world.biome.BiomeProviderSingle(net.minecraft.world.biome.Biome.func_180276_a(flatgeneratorinfo.func_82648_a(), net.minecraft.init.Biomes.field_180279_ad)); + } + else if (this == field_180272_g) + { diff --git a/patches/minecraft/net/minecraft/world/biome/BiomeGenBase.java.patch b/patches/minecraft/net/minecraft/world/biome/Biome.java.patch similarity index 83% rename from patches/minecraft/net/minecraft/world/biome/BiomeGenBase.java.patch rename to patches/minecraft/net/minecraft/world/biome/Biome.java.patch index 22c125373e..d79e8c14a3 100644 --- a/patches/minecraft/net/minecraft/world/biome/BiomeGenBase.java.patch +++ b/patches/minecraft/net/minecraft/world/biome/Biome.java.patch @@ -1,27 +1,27 @@ ---- ../src-base/minecraft/net/minecraft/world/biome/BiomeGenBase.java -+++ ../src-work/minecraft/net/minecraft/world/biome/BiomeGenBase.java -@@ -51,7 +51,7 @@ +--- ../src-base/minecraft/net/minecraft/world/biome/Biome.java ++++ ../src-work/minecraft/net/minecraft/world/biome/Biome.java +@@ -52,7 +52,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; --public abstract class BiomeGenBase -+public abstract class BiomeGenBase extends net.minecraftforge.fml.common.registry.IForgeRegistryEntry.Impl +-public abstract class Biome ++public abstract class Biome extends net.minecraftforge.fml.common.registry.IForgeRegistryEntry.Impl { private static final Logger field_150586_aC = LogManager.getLogger(); protected static final IBlockState field_185365_a = Blocks.field_150348_b.func_176223_P(); -@@ -70,7 +70,7 @@ +@@ -71,7 +71,7 @@ protected static final WorldGenTrees field_76757_N = new WorldGenTrees(false); protected static final WorldGenBigTree field_76758_O = new WorldGenBigTree(false); protected static final WorldGenSwamp field_76763_Q = new WorldGenSwamp(); -- public static final RegistryNamespaced field_185377_q = new RegistryNamespaced(); -+ public static final RegistryNamespaced field_185377_q = net.minecraftforge.fml.common.registry.GameData.getBiomeRegistry(); +- public static final RegistryNamespaced field_185377_q = new RegistryNamespaced(); ++ public static final RegistryNamespaced field_185377_q = net.minecraftforge.fml.common.registry.GameData.getBiomeRegistry(); private final String field_76791_y; private final float field_76748_D; private final float field_76749_E; -@@ -128,11 +128,12 @@ - this.field_76761_J.add(new BiomeGenBase.SpawnListEntry(EntityWitch.class, 5, 1, 1)); - this.field_76755_L.add(new BiomeGenBase.SpawnListEntry(EntitySquid.class, 10, 4, 4)); - this.field_82914_M.add(new BiomeGenBase.SpawnListEntry(EntityBat.class, 10, 8, 8)); +@@ -132,11 +132,12 @@ + this.field_76761_J.add(new Biome.SpawnListEntry(EntityWitch.class, 5, 1, 1)); + this.field_76755_L.add(new Biome.SpawnListEntry(EntitySquid.class, 10, 4, 4)); + this.field_82914_M.add(new Biome.SpawnListEntry(EntityBat.class, 10, 8, 8)); + this.addDefaultFlowers(); } @@ -32,7 +32,7 @@ } public boolean func_185363_b() -@@ -228,7 +229,7 @@ +@@ -232,7 +233,7 @@ { double d0 = (double)MathHelper.func_76131_a(this.func_180626_a(p_180627_1_), 0.0F, 1.0F); double d1 = (double)MathHelper.func_76131_a(this.func_76727_i(), 0.0F, 1.0F); @@ -41,7 +41,7 @@ } public final void func_180628_b(World p_180628_1_, Random p_180628_2_, ChunkPrimer p_180628_3_, int p_180628_4_, int p_180628_5_, double p_180628_6_) -@@ -321,7 +322,7 @@ +@@ -325,7 +326,7 @@ { double d0 = (double)MathHelper.func_76131_a(this.func_180626_a(p_180625_1_), 0.0F, 1.0F); double d1 = (double)MathHelper.func_76131_a(this.func_76727_i(), 0.0F, 1.0F); @@ -49,8 +49,8 @@ + return getModdedBiomeFoliageColor(ColorizerFoliage.func_77470_a(d0, d1)); } - public Class func_150562_l() -@@ -386,6 +387,83 @@ + public Class func_150562_l() +@@ -391,6 +392,83 @@ return this.field_76766_R; } @@ -133,4 +133,4 @@ + public static void func_185358_q() { - func_185354_a(0, "ocean", new BiomeGenOcean((new BiomeGenBase.BiomeProperties("Ocean")).func_185398_c(-1.0F).func_185400_d(0.1F))); + func_185354_a(0, "ocean", new BiomeOcean((new Biome.BiomeProperties("Ocean")).func_185398_c(-1.0F).func_185400_d(0.1F))); diff --git a/patches/minecraft/net/minecraft/world/biome/BiomeDecorator.java.patch b/patches/minecraft/net/minecraft/world/biome/BiomeDecorator.java.patch index 584c76ae86..33356a6a61 100644 --- a/patches/minecraft/net/minecraft/world/biome/BiomeDecorator.java.patch +++ b/patches/minecraft/net/minecraft/world/biome/BiomeDecorator.java.patch @@ -2,7 +2,7 @@ +++ ../src-work/minecraft/net/minecraft/world/biome/BiomeDecorator.java @@ -91,8 +91,10 @@ - protected void func_150513_a(BiomeGenBase p_150513_1_, World p_150513_2_, Random p_150513_3_) + protected void func_150513_a(Biome p_150513_1_, World p_150513_2_, Random p_150513_3_) { + net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.terraingen.DecorateBiomeEvent.Pre(p_150513_2_, p_150513_3_, field_180294_c)); this.func_76797_b(p_150513_2_, p_150513_3_); diff --git a/patches/minecraft/net/minecraft/world/biome/BiomeGenForest.java.patch b/patches/minecraft/net/minecraft/world/biome/BiomeForest.java.patch similarity index 68% rename from patches/minecraft/net/minecraft/world/biome/BiomeGenForest.java.patch rename to patches/minecraft/net/minecraft/world/biome/BiomeForest.java.patch index 24cfe16201..fd2c3864a6 100644 --- a/patches/minecraft/net/minecraft/world/biome/BiomeGenForest.java.patch +++ b/patches/minecraft/net/minecraft/world/biome/BiomeForest.java.patch @@ -1,5 +1,5 @@ ---- ../src-base/minecraft/net/minecraft/world/biome/BiomeGenForest.java -+++ ../src-work/minecraft/net/minecraft/world/biome/BiomeGenForest.java +--- ../src-base/minecraft/net/minecraft/world/biome/BiomeForest.java ++++ ../src-work/minecraft/net/minecraft/world/biome/BiomeForest.java @@ -147,6 +147,22 @@ } } @@ -7,7 +7,7 @@ + @Override + public void addDefaultFlowers() + { -+ if (field_150632_aF != BiomeGenForest.Type.FLOWER) ++ if (field_150632_aF != BiomeForest.Type.FLOWER) + { + super.addDefaultFlowers(); + return; @@ -20,6 +20,6 @@ + } + } + - public Class func_150562_l() + public Class func_150562_l() { - return BiomeGenForest.class; + return BiomeForest.class; diff --git a/patches/minecraft/net/minecraft/world/biome/BiomeGenHills.java.patch b/patches/minecraft/net/minecraft/world/biome/BiomeHills.java.patch similarity index 95% rename from patches/minecraft/net/minecraft/world/biome/BiomeGenHills.java.patch rename to patches/minecraft/net/minecraft/world/biome/BiomeHills.java.patch index 7354b7b779..9c7ab1c762 100644 --- a/patches/minecraft/net/minecraft/world/biome/BiomeGenHills.java.patch +++ b/patches/minecraft/net/minecraft/world/biome/BiomeHills.java.patch @@ -1,5 +1,5 @@ ---- ../src-base/minecraft/net/minecraft/world/biome/BiomeGenHills.java -+++ ../src-work/minecraft/net/minecraft/world/biome/BiomeGenHills.java +--- ../src-base/minecraft/net/minecraft/world/biome/BiomeHills.java ++++ ../src-work/minecraft/net/minecraft/world/biome/BiomeHills.java @@ -37,28 +37,20 @@ public void func_180624_a(World p_180624_1_, Random p_180624_2_, BlockPos p_180624_3_) { diff --git a/patches/minecraft/net/minecraft/world/biome/BiomeGenJungle.java.patch b/patches/minecraft/net/minecraft/world/biome/BiomeJungle.java.patch similarity index 82% rename from patches/minecraft/net/minecraft/world/biome/BiomeGenJungle.java.patch rename to patches/minecraft/net/minecraft/world/biome/BiomeJungle.java.patch index 3c559c56a6..f8e7afb3c1 100644 --- a/patches/minecraft/net/minecraft/world/biome/BiomeGenJungle.java.patch +++ b/patches/minecraft/net/minecraft/world/biome/BiomeJungle.java.patch @@ -1,5 +1,5 @@ ---- ../src-base/minecraft/net/minecraft/world/biome/BiomeGenJungle.java -+++ ../src-work/minecraft/net/minecraft/world/biome/BiomeGenJungle.java +--- ../src-base/minecraft/net/minecraft/world/biome/BiomeJungle.java ++++ ../src-work/minecraft/net/minecraft/world/biome/BiomeJungle.java @@ -68,7 +68,9 @@ super.func_180624_a(p_180624_1_, p_180624_2_, p_180624_3_); int i = p_180624_2_.nextInt(16) + 8; diff --git a/patches/minecraft/net/minecraft/world/biome/BiomeGenPlains.java.patch b/patches/minecraft/net/minecraft/world/biome/BiomePlains.java.patch similarity index 89% rename from patches/minecraft/net/minecraft/world/biome/BiomeGenPlains.java.patch rename to patches/minecraft/net/minecraft/world/biome/BiomePlains.java.patch index a15220f7f6..b188d1548e 100644 --- a/patches/minecraft/net/minecraft/world/biome/BiomeGenPlains.java.patch +++ b/patches/minecraft/net/minecraft/world/biome/BiomePlains.java.patch @@ -1,5 +1,5 @@ ---- ../src-base/minecraft/net/minecraft/world/biome/BiomeGenPlains.java -+++ ../src-work/minecraft/net/minecraft/world/biome/BiomeGenPlains.java +--- ../src-base/minecraft/net/minecraft/world/biome/BiomePlains.java ++++ ../src-work/minecraft/net/minecraft/world/biome/BiomePlains.java @@ -92,4 +92,19 @@ super.func_180624_a(p_180624_1_, p_180624_2_, p_180624_3_); diff --git a/patches/minecraft/net/minecraft/world/biome/BiomeProvider.java.patch b/patches/minecraft/net/minecraft/world/biome/BiomeProvider.java.patch index 2b6f415c31..537020c599 100644 --- a/patches/minecraft/net/minecraft/world/biome/BiomeProvider.java.patch +++ b/patches/minecraft/net/minecraft/world/biome/BiomeProvider.java.patch @@ -1,18 +1,18 @@ --- ../src-base/minecraft/net/minecraft/world/biome/BiomeProvider.java +++ ../src-work/minecraft/net/minecraft/world/biome/BiomeProvider.java -@@ -15,6 +15,7 @@ +@@ -16,6 +16,7 @@ public class BiomeProvider { -+ public static List allowedBiomes = Lists.newArrayList(Biomes.field_76767_f, Biomes.field_76772_c, Biomes.field_76768_g, Biomes.field_76784_u, Biomes.field_76785_t, Biomes.field_76782_w, Biomes.field_76792_x); ++ public static List allowedBiomes = Lists.newArrayList(Biomes.field_76767_f, Biomes.field_76772_c, Biomes.field_76768_g, Biomes.field_76784_u, Biomes.field_76785_t, Biomes.field_76782_w, Biomes.field_76792_x); private GenLayer field_76944_d; private GenLayer field_76945_e; private final BiomeCache field_76942_f; -@@ -23,13 +24,14 @@ +@@ -24,13 +25,14 @@ protected BiomeProvider() { this.field_76942_f = new BiomeCache(this); -- this.field_76943_g = Lists.newArrayList(new BiomeGenBase[] {Biomes.field_76767_f, Biomes.field_76772_c, Biomes.field_76768_g, Biomes.field_76784_u, Biomes.field_76785_t, Biomes.field_76782_w, Biomes.field_76792_x}); +- this.field_76943_g = Lists.newArrayList(new Biome[] {Biomes.field_76767_f, Biomes.field_76772_c, Biomes.field_76768_g, Biomes.field_76784_u, Biomes.field_76785_t, Biomes.field_76782_w, Biomes.field_76792_x}); + this.field_76943_g = Lists.newArrayList(allowedBiomes); } @@ -20,16 +20,16 @@ { this(); GenLayer[] agenlayer = GenLayer.func_180781_a(p_i45744_1_, p_i45744_3_, p_i45744_4_); -+ agenlayer = getModdedBiomeGenerators(p_i45744_3_, p_i45744_1_, agenlayer); ++ agenlayer = getModdedBiomeerators(p_i45744_3_, p_i45744_1_, agenlayer); this.field_76944_d = agenlayer[0]; this.field_76945_e = agenlayer[1]; } -@@ -196,4 +198,11 @@ +@@ -198,4 +200,11 @@ { this.field_76942_f.func_76838_a(); } + -+ public GenLayer[] getModdedBiomeGenerators(WorldType worldType, long seed, GenLayer[] original) ++ public GenLayer[] getModdedBiomeerators(WorldType worldType, long seed, GenLayer[] original) + { + net.minecraftforge.event.terraingen.WorldTypeEvent.InitBiomeGens event = new net.minecraftforge.event.terraingen.WorldTypeEvent.InitBiomeGens(worldType, seed, original); + net.minecraftforge.common.MinecraftForge.TERRAIN_GEN_BUS.post(event); diff --git a/patches/minecraft/net/minecraft/world/biome/BiomeGenSwamp.java.patch b/patches/minecraft/net/minecraft/world/biome/BiomeSwamp.java.patch similarity index 66% rename from patches/minecraft/net/minecraft/world/biome/BiomeGenSwamp.java.patch rename to patches/minecraft/net/minecraft/world/biome/BiomeSwamp.java.patch index d3c19e2702..bdd743ecb8 100644 --- a/patches/minecraft/net/minecraft/world/biome/BiomeGenSwamp.java.patch +++ b/patches/minecraft/net/minecraft/world/biome/BiomeSwamp.java.patch @@ -1,5 +1,5 @@ ---- ../src-base/minecraft/net/minecraft/world/biome/BiomeGenSwamp.java -+++ ../src-work/minecraft/net/minecraft/world/biome/BiomeGenSwamp.java +--- ../src-base/minecraft/net/minecraft/world/biome/BiomeSwamp.java ++++ ../src-work/minecraft/net/minecraft/world/biome/BiomeSwamp.java @@ -86,4 +86,10 @@ { return 6975545; diff --git a/patches/minecraft/net/minecraft/world/chunk/Chunk.java.patch b/patches/minecraft/net/minecraft/world/chunk/Chunk.java.patch index e12fe8fab1..1cf592b9b1 100644 --- a/patches/minecraft/net/minecraft/world/chunk/Chunk.java.patch +++ b/patches/minecraft/net/minecraft/world/chunk/Chunk.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/chunk/Chunk.java +++ ../src-work/minecraft/net/minecraft/world/chunk/Chunk.java -@@ -175,7 +175,7 @@ +@@ -178,7 +178,7 @@ { IBlockState iblockstate = this.func_186032_a(j, l - 1, k); @@ -9,7 +9,7 @@ { this.field_76634_f[k << 4 | j] = l; -@@ -448,12 +448,12 @@ +@@ -451,12 +451,12 @@ public int func_177437_b(BlockPos p_177437_1_) { @@ -24,7 +24,7 @@ } public IBlockState func_177435_g(BlockPos p_177435_1_) -@@ -534,6 +534,7 @@ +@@ -538,6 +538,7 @@ { Block block = p_177436_2_.func_177230_c(); Block block1 = iblockstate.func_177230_c(); @@ -32,7 +32,7 @@ ExtendedBlockStorage extendedblockstorage = this.field_76652_q[j >> 4]; boolean flag = false; -@@ -550,14 +551,19 @@ +@@ -554,14 +555,19 @@ extendedblockstorage.func_177484_a(i, j & 15, k, p_177436_2_); @@ -54,7 +54,7 @@ this.field_76637_e.func_175713_t(p_177436_1_); } } -@@ -574,8 +580,7 @@ +@@ -578,8 +584,7 @@ } else { @@ -64,7 +64,7 @@ if (j1 > 0) { -@@ -595,28 +600,19 @@ +@@ -599,28 +604,19 @@ } } @@ -97,7 +97,7 @@ this.field_76637_e.func_175690_a(p_177436_1_, tileentity1); } -@@ -719,6 +715,7 @@ +@@ -723,6 +719,7 @@ k = this.field_76645_j.length - 1; } @@ -105,7 +105,7 @@ p_76612_1_.field_70175_ag = true; p_76612_1_.field_70176_ah = this.field_76635_g; p_76612_1_.field_70162_ai = k; -@@ -758,13 +755,19 @@ +@@ -763,7 +760,7 @@ { IBlockState iblockstate = this.func_177435_g(p_177422_1_); Block block = iblockstate.func_177230_c(); @@ -113,7 +113,8 @@ + return !block.hasTileEntity(iblockstate) ? null : block.createTileEntity(this.field_76637_e, iblockstate); } - public TileEntity func_177424_a(BlockPos p_177424_1_, Chunk.EnumCreateEntityType p_177424_2_) + @Nullable +@@ -771,6 +768,12 @@ { TileEntity tileentity = (TileEntity)this.field_150816_i.get(p_177424_1_); @@ -126,7 +127,7 @@ if (tileentity == null) { if (p_177424_2_ == Chunk.EnumCreateEntityType.IMMEDIATE) -@@ -774,14 +777,9 @@ +@@ -780,14 +783,9 @@ } else if (p_177424_2_ == Chunk.EnumCreateEntityType.QUEUED) { @@ -142,7 +143,7 @@ return tileentity; } -@@ -801,7 +799,7 @@ +@@ -807,7 +805,7 @@ p_177426_2_.func_145834_a(this.field_76637_e); p_177426_2_.func_174878_a(p_177426_1_); @@ -151,7 +152,7 @@ { if (this.field_150816_i.containsKey(p_177426_1_)) { -@@ -810,6 +808,7 @@ +@@ -816,6 +814,7 @@ p_177426_2_.func_145829_t(); this.field_150816_i.put(p_177426_1_, p_177426_2_); @@ -159,7 +160,7 @@ } } -@@ -838,8 +837,9 @@ +@@ -844,8 +843,9 @@ entity.func_110123_P(); } @@ -170,7 +171,7 @@ } public void func_76623_d() -@@ -855,6 +855,7 @@ +@@ -861,6 +861,7 @@ { this.field_76637_e.func_175681_c(this.field_76645_j[i]); } @@ -178,9 +179,9 @@ } public void func_76630_e() -@@ -864,8 +865,8 @@ +@@ -870,8 +871,8 @@ - public void func_177414_a(Entity p_177414_1_, AxisAlignedBB p_177414_2_, List p_177414_3_, Predicate p_177414_4_) + public void func_177414_a(@Nullable Entity p_177414_1_, AxisAlignedBB p_177414_2_, List p_177414_3_, Predicate p_177414_4_) { - int i = MathHelper.func_76128_c((p_177414_2_.field_72338_b - 2.0D) / 16.0D); - int j = MathHelper.func_76128_c((p_177414_2_.field_72337_e + 2.0D) / 16.0D); @@ -189,7 +190,7 @@ i = MathHelper.func_76125_a(i, 0, this.field_76645_j.length - 1); j = MathHelper.func_76125_a(j, 0, this.field_76645_j.length - 1); -@@ -904,8 +905,8 @@ +@@ -910,8 +911,8 @@ public void func_177430_a(Class p_177430_1_, AxisAlignedBB p_177430_2_, List p_177430_3_, Predicate p_177430_4_) { @@ -200,7 +201,7 @@ i = MathHelper.func_76125_a(i, 0, this.field_76645_j.length - 1); j = MathHelper.func_76125_a(j, 0, this.field_76645_j.length - 1); -@@ -994,6 +995,7 @@ +@@ -1000,6 +1001,7 @@ { this.func_150809_p(); p_186034_1_.func_185931_b(this.field_76635_g, this.field_76647_h); @@ -208,7 +209,7 @@ this.func_76630_e(); } } -@@ -1050,7 +1052,7 @@ +@@ -1056,7 +1058,7 @@ { BlockPos blockpos = (BlockPos)this.field_177447_w.poll(); @@ -217,7 +218,7 @@ { TileEntity tileentity = this.func_177422_i(blockpos); this.field_76637_e.func_175690_a(blockpos, tileentity); -@@ -1114,6 +1116,13 @@ +@@ -1120,6 +1122,13 @@ @SideOnly(Side.CLIENT) public void func_186033_a(PacketBuffer p_186033_1_, int p_186033_2_, boolean p_186033_3_) { @@ -231,7 +232,7 @@ boolean flag = !this.field_76637_e.field_73011_w.func_177495_o(); for (int i = 0; i < this.field_76652_q.length; ++i) -@@ -1162,10 +1171,16 @@ +@@ -1168,10 +1177,16 @@ this.field_76646_k = true; this.func_76590_a(); @@ -247,8 +248,8 @@ + for (TileEntity te : invalidList) te.func_145843_s(); } - public BiomeGenBase func_177411_a(BlockPos p_177411_1_, BiomeProvider p_177411_2_) -@@ -1233,13 +1248,13 @@ + public Biome func_177411_a(BlockPos p_177411_1_, BiomeProvider p_177411_2_) +@@ -1239,13 +1254,13 @@ BlockPos blockpos1 = blockpos.func_177982_a(k, (j << 4) + i1, l); boolean flag = i1 == 0 || i1 == 15 || k == 0 || k == 15 || l == 0 || l == 15; @@ -264,7 +265,7 @@ { this.field_76637_e.func_175664_x(blockpos2); } -@@ -1370,7 +1385,7 @@ +@@ -1376,7 +1391,7 @@ { blockpos$mutableblockpos.func_181079_c(blockpos$mutableblockpos.func_177958_n(), l, blockpos$mutableblockpos.func_177952_p()); @@ -273,7 +274,7 @@ { this.field_76637_e.func_175664_x(blockpos$mutableblockpos); } -@@ -1481,4 +1496,20 @@ +@@ -1487,4 +1502,20 @@ QUEUED, CHECK; } diff --git a/patches/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java.patch b/patches/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java.patch index 50331158f2..959fbe1b8c 100644 --- a/patches/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java.patch +++ b/patches/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java.patch @@ -1,16 +1,16 @@ --- ../src-base/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java +++ ../src-work/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java -@@ -46,8 +46,41 @@ +@@ -47,9 +47,43 @@ this.field_186055_e = p_i46673_2_; } + public boolean chunkExists(World world, int x, int z) + { -+ ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(x, z); ++ ChunkPos chunkcoordintpair = new ChunkPos(x, z); + + if (this.field_75826_b.contains(chunkcoordintpair)) + { -+ for(ChunkCoordIntPair pendingChunkCoord : this.field_75828_a.keySet()) ++ for(ChunkPos pendingChunkCoord : this.field_75828_a.keySet()) + { + if (pendingChunkCoord.equals(chunkcoordintpair)) + { @@ -22,6 +22,8 @@ + return RegionFileCache.func_76550_a(this.field_75825_d, x, z).chunkExists(x & 31, z & 31); + } + ++ + @Nullable public Chunk func_75815_a(World p_75815_1_, int p_75815_2_, int p_75815_3_) throws IOException { + Object[] data = this.loadChunk__Async(p_75815_1_, p_75815_2_, p_75815_3_); @@ -39,10 +41,10 @@ + + public Object[] loadChunk__Async(World p_75815_1_, int p_75815_2_, int p_75815_3_) throws IOException + { - ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(p_75815_2_, p_75815_3_); - NBTTagCompound nbttagcompound = (NBTTagCompound)this.field_75828_a.get(chunkcoordintpair); + ChunkPos chunkpos = new ChunkPos(p_75815_2_, p_75815_3_); + NBTTagCompound nbttagcompound = (NBTTagCompound)this.field_75828_a.get(chunkpos); -@@ -63,11 +96,17 @@ +@@ -65,11 +99,17 @@ nbttagcompound = this.field_186055_e.func_188257_a(FixTypes.CHUNK, CompressedStreamTools.func_74794_a(datainputstream)); } @@ -61,7 +63,7 @@ if (!p_75822_4_.func_150297_b("Level", 10)) { field_151505_a.error("Chunk file at " + p_75822_2_ + "," + p_75822_3_ + " is missing level data, skipping"); -@@ -91,10 +130,29 @@ +@@ -93,10 +133,29 @@ field_151505_a.error("Chunk file at " + p_75822_2_ + "," + p_75822_3_ + " is in the wrong location; relocating. (Expected " + p_75822_2_ + ", " + p_75822_3_ + ", got " + chunk.field_76635_g + ", " + chunk.field_76647_h + ")"); nbttagcompound.func_74768_a("xPos", p_75822_2_); nbttagcompound.func_74768_a("zPos", p_75822_3_); @@ -92,15 +94,15 @@ } } } -@@ -110,6 +168,7 @@ +@@ -112,6 +171,7 @@ nbttagcompound.func_74782_a("Level", nbttagcompound1); - nbttagcompound.func_74768_a("DataVersion", 169); + nbttagcompound.func_74768_a("DataVersion", 184); this.func_75820_a(p_75816_2_, p_75816_1_, nbttagcompound1); + net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.ChunkDataEvent.Save(p_75816_2_, nbttagcompound)); this.func_75824_a(p_75816_2_.func_76632_l(), nbttagcompound); } catch (Exception exception) -@@ -265,8 +324,17 @@ +@@ -267,8 +327,17 @@ if (entity.func_70039_c(nbttagcompound2)) { @@ -118,14 +120,13 @@ } } } -@@ -276,9 +344,18 @@ +@@ -278,8 +347,17 @@ for (TileEntity tileentity : p_75820_1_.func_177434_r().values()) { + try + { - NBTTagCompound nbttagcompound3 = new NBTTagCompound(); - tileentity.func_145841_b(nbttagcompound3); + NBTTagCompound nbttagcompound3 = tileentity.func_189515_b(new NBTTagCompound()); nbttaglist2.func_74742_a(nbttagcompound3); + } + catch (Exception e) @@ -137,7 +138,7 @@ } p_75820_3_.func_74782_a("TileEntities", nbttaglist2); -@@ -347,6 +424,12 @@ +@@ -348,6 +426,12 @@ chunk.func_76616_a(p_75823_2_.func_74770_j("Biomes")); } @@ -150,7 +151,7 @@ NBTTagList nbttaglist1 = p_75823_2_.func_150295_c("Entities", 10); if (nbttaglist1 != null) -@@ -399,8 +482,6 @@ +@@ -400,8 +484,6 @@ } } } @@ -158,4 +159,4 @@ - return chunk; } - public static Entity func_186050_a(NBTTagCompound p_186050_0_, World p_186050_1_, Chunk p_186050_2_) + @Nullable diff --git a/patches/minecraft/net/minecraft/world/chunk/storage/AnvilSaveHandler.java.patch b/patches/minecraft/net/minecraft/world/chunk/storage/AnvilSaveHandler.java.patch index 82936874a8..38e5ac4e74 100644 --- a/patches/minecraft/net/minecraft/world/chunk/storage/AnvilSaveHandler.java.patch +++ b/patches/minecraft/net/minecraft/world/chunk/storage/AnvilSaveHandler.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/chunk/storage/AnvilSaveHandler.java +++ ../src-work/minecraft/net/minecraft/world/chunk/storage/AnvilSaveHandler.java -@@ -21,18 +21,12 @@ +@@ -22,18 +22,12 @@ { File file1 = this.func_75765_b(); diff --git a/patches/minecraft/net/minecraft/world/gen/ChunkProviderEnd.java.patch b/patches/minecraft/net/minecraft/world/gen/ChunkProviderEnd.java.patch index c982cc70be..3a1687ec33 100644 --- a/patches/minecraft/net/minecraft/world/gen/ChunkProviderEnd.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/ChunkProviderEnd.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/gen/ChunkProviderEnd.java +++ ../src-work/minecraft/net/minecraft/world/gen/ChunkProviderEnd.java -@@ -39,6 +39,9 @@ +@@ -40,6 +40,9 @@ double[] field_185967_f; double[] field_185968_g; private final WorldGenEndIsland field_185975_r = new WorldGenEndIsland(); @@ -10,7 +10,7 @@ public ChunkProviderEnd(World p_i46667_1_, boolean p_i46667_2_, long p_i46667_3_) { -@@ -51,6 +54,16 @@ +@@ -52,6 +55,16 @@ this.field_73214_a = new NoiseGeneratorOctaves(this.field_73220_k, 10); this.field_73212_b = new NoiseGeneratorOctaves(this.field_73220_k, 16); this.field_185973_o = new NoiseGeneratorSimplex(this.field_73220_k); @@ -27,7 +27,7 @@ } public void func_180518_a(int p_180518_1_, int p_180518_2_, ChunkPrimer p_180518_3_) -@@ -123,6 +136,7 @@ +@@ -124,6 +137,7 @@ public void func_185962_a(ChunkPrimer p_185962_1_) { @@ -35,7 +35,7 @@ for (int i = 0; i < 16; ++i) { for (int j = 0; j < 16; ++j) -@@ -174,6 +188,7 @@ +@@ -175,6 +189,7 @@ public Chunk func_185932_a(int p_185932_1_, int p_185932_2_) { @@ -43,7 +43,7 @@ this.field_73220_k.setSeed((long)p_185932_1_ * 341873128712L + (long)p_185932_2_ * 132897987541L); ChunkPrimer chunkprimer = new ChunkPrimer(); this.field_73231_z = this.field_73230_p.func_72959_q().func_76933_b(this.field_73231_z, p_185932_1_ * 16, p_185932_2_ * 16, 16, 16); -@@ -255,6 +270,10 @@ +@@ -256,6 +271,10 @@ private double[] func_185963_a(double[] p_185963_1_, int p_185963_2_, int p_185963_3_, int p_185963_4_, int p_185963_5_, int p_185963_6_, int p_185963_7_) { @@ -54,7 +54,7 @@ if (p_185963_1_ == null) { p_185963_1_ = new double[p_185963_5_ * p_185963_6_ * p_185963_7_]; -@@ -327,6 +346,7 @@ +@@ -328,6 +347,7 @@ public void func_185931_b(int p_185931_1_, int p_185931_2_) { BlockFalling.field_149832_M = true; @@ -62,7 +62,7 @@ BlockPos blockpos = new BlockPos(p_185931_1_ * 16, 0, p_185931_2_ * 16); if (this.field_73229_q) -@@ -374,6 +394,7 @@ +@@ -375,6 +395,7 @@ } } diff --git a/patches/minecraft/net/minecraft/world/gen/ChunkProviderHell.java.patch b/patches/minecraft/net/minecraft/world/gen/ChunkProviderHell.java.patch index 59760965cd..6206052167 100644 --- a/patches/minecraft/net/minecraft/world/gen/ChunkProviderHell.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/ChunkProviderHell.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/gen/ChunkProviderHell.java +++ ../src-work/minecraft/net/minecraft/world/gen/ChunkProviderHell.java -@@ -76,6 +76,19 @@ +@@ -77,6 +77,19 @@ this.field_185946_g = new NoiseGeneratorOctaves(this.field_185954_p, 10); this.field_185947_h = new NoiseGeneratorOctaves(this.field_185954_p, 16); p_i45637_1_.func_181544_b(63); @@ -20,7 +20,7 @@ } public void func_185936_a(int p_185936_1_, int p_185936_2_, ChunkPrimer p_185936_3_) -@@ -154,6 +167,7 @@ +@@ -155,6 +168,7 @@ public void func_185937_b(int p_185937_1_, int p_185937_2_, ChunkPrimer p_185937_3_) { @@ -28,7 +28,7 @@ int i = this.field_185952_n.func_181545_F() + 1; double d0 = 0.03125D; this.field_73185_q = this.field_73177_m.func_76304_a(this.field_73185_q, p_185937_1_ * 16, p_185937_2_ * 16, 0, 16, 16, 1, d0, d0, 1.0D); -@@ -276,6 +290,10 @@ +@@ -277,6 +291,10 @@ p_185938_1_ = new double[p_185938_5_ * p_185938_6_ * p_185938_7_]; } @@ -39,14 +39,14 @@ double d0 = 684.412D; double d1 = 2053.236D; this.field_73168_g = this.field_185946_g.func_76304_a(this.field_73168_g, p_185938_2_, p_185938_3_, p_185938_4_, p_185938_5_, 1, p_185938_7_, 1.0D, 0.0D, 1.0D); -@@ -357,20 +375,25 @@ +@@ -358,20 +376,25 @@ public void func_185931_b(int p_185931_1_, int p_185931_2_) { BlockFalling.field_149832_M = true; + net.minecraftforge.event.ForgeEventFactory.onChunkPopulate(true, this, this.field_185952_n, this.field_185954_p, p_185931_1_, p_185931_2_, false); BlockPos blockpos = new BlockPos(p_185931_1_ * 16, 0, p_185931_2_ * 16); - ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(p_185931_1_, p_185931_2_); - this.field_73172_c.func_175794_a(this.field_185952_n, this.field_185954_p, chunkcoordintpair); + ChunkPos chunkpos = new ChunkPos(p_185931_1_, p_185931_2_); + this.field_73172_c.func_175794_a(this.field_185952_n, this.field_185954_p, chunkpos); + if (net.minecraftforge.event.terraingen.TerrainGen.populate(this, this.field_185952_n, this.field_185954_p, p_185931_1_, p_185931_2_, false, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.NETHER_LAVA)) for (int i = 0; i < 8; ++i) @@ -65,7 +65,7 @@ for (int k = 0; k < this.field_185954_p.nextInt(this.field_185954_p.nextInt(10) + 1); ++k) { this.field_177469_u.func_180709_b(this.field_185952_n, this.field_185954_p, blockpos.func_177982_a(this.field_185954_p.nextInt(16) + 8, this.field_185954_p.nextInt(120) + 4, this.field_185954_p.nextInt(16) + 8)); -@@ -380,7 +403,13 @@ +@@ -381,7 +404,13 @@ { this.field_177468_v.func_180709_b(this.field_185952_n, this.field_185954_p, blockpos.func_177982_a(this.field_185954_p.nextInt(16) + 8, this.field_185954_p.nextInt(128), this.field_185954_p.nextInt(16) + 8)); } @@ -79,7 +79,7 @@ if (this.field_185954_p.nextBoolean()) { this.field_177471_z.func_180709_b(this.field_185952_n, this.field_185954_p, blockpos.func_177982_a(this.field_185954_p.nextInt(16) + 8, this.field_185954_p.nextInt(128), this.field_185954_p.nextInt(16) + 8)); -@@ -390,17 +419,22 @@ +@@ -391,17 +420,22 @@ { this.field_177465_A.func_180709_b(this.field_185952_n, this.field_185954_p, blockpos.func_177982_a(this.field_185954_p.nextInt(16) + 8, this.field_185954_p.nextInt(128), this.field_185954_p.nextInt(16) + 8)); } diff --git a/patches/minecraft/net/minecraft/world/gen/ChunkProviderOverworld.java.patch b/patches/minecraft/net/minecraft/world/gen/ChunkProviderOverworld.java.patch index 605e898ab8..396a122e69 100644 --- a/patches/minecraft/net/minecraft/world/gen/ChunkProviderOverworld.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/ChunkProviderOverworld.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/gen/ChunkProviderOverworld.java +++ ../src-work/minecraft/net/minecraft/world/gen/ChunkProviderOverworld.java -@@ -59,6 +59,15 @@ +@@ -60,6 +60,15 @@ public ChunkProviderOverworld(World p_i46668_1_, long p_i46668_2_, boolean p_i46668_4_, String p_i46668_5_) { @@ -16,7 +16,7 @@ this.field_185995_n = p_i46668_1_; this.field_185996_o = p_i46668_4_; this.field_185997_p = p_i46668_1_.func_72912_H().func_76067_t(); -@@ -88,6 +97,17 @@ +@@ -89,6 +98,17 @@ this.field_186001_t = this.field_186000_s.field_177778_E ? Blocks.field_150353_l.func_176223_P() : Blocks.field_150355_j.func_176223_P(); p_i46668_1_.func_181544_b(this.field_186000_s.field_177841_q); } @@ -34,32 +34,32 @@ } public void func_185976_a(int p_185976_1_, int p_185976_2_, ChunkPrimer p_185976_3_) -@@ -161,6 +181,7 @@ +@@ -162,6 +182,7 @@ - public void func_185977_a(int p_185977_1_, int p_185977_2_, ChunkPrimer p_185977_3_, BiomeGenBase[] p_185977_4_) + public void func_185977_a(int p_185977_1_, int p_185977_2_, ChunkPrimer p_185977_3_, Biome[] p_185977_4_) { + if (!net.minecraftforge.event.ForgeEventFactory.onReplaceBiomeBlocks(this, p_185977_1_, p_185977_2_, p_185977_3_, this.field_185995_n)) return; double d0 = 0.03125D; this.field_186002_u = this.field_185994_m.func_151599_a(this.field_186002_u, (double)(p_185977_1_ * 16), (double)(p_185977_2_ * 16), 16, 16, d0 * 2.0D, d0 * 2.0D, 1.0D); -@@ -365,6 +386,8 @@ +@@ -366,6 +387,8 @@ boolean flag = false; - ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(p_185931_1_, p_185931_2_); + ChunkPos chunkpos = new ChunkPos(p_185931_1_, p_185931_2_); + net.minecraftforge.event.ForgeEventFactory.onChunkPopulate(true, this, this.field_185995_n, this.field_185990_i, p_185931_1_, p_185931_2_, flag); + if (this.field_185996_o) { if (this.field_186000_s.field_177829_w) -@@ -394,6 +417,7 @@ +@@ -395,6 +418,7 @@ } - if (biomegenbase != Biomes.field_76769_d && biomegenbase != Biomes.field_76786_s && this.field_186000_s.field_177781_A && !flag && this.field_185990_i.nextInt(this.field_186000_s.field_177782_B) == 0) + if (biome != Biomes.field_76769_d && biome != Biomes.field_76786_s && this.field_186000_s.field_177781_A && !flag && this.field_185990_i.nextInt(this.field_186000_s.field_177782_B) == 0) + if (net.minecraftforge.event.terraingen.TerrainGen.populate(this, this.field_185995_n, this.field_185990_i, p_185931_1_, p_185931_2_, flag, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.LAKE)) { int i1 = this.field_185990_i.nextInt(16) + 8; int j1 = this.field_185990_i.nextInt(256); -@@ -402,6 +426,7 @@ +@@ -403,6 +427,7 @@ } if (!flag && this.field_185990_i.nextInt(this.field_186000_s.field_177777_D / 10) == 0 && this.field_186000_s.field_177783_C) @@ -67,7 +67,7 @@ { int i2 = this.field_185990_i.nextInt(16) + 8; int l2 = this.field_185990_i.nextInt(this.field_185990_i.nextInt(248) + 8); -@@ -414,6 +439,7 @@ +@@ -415,6 +440,7 @@ } if (this.field_186000_s.field_177837_s) @@ -75,12 +75,12 @@ { for (int j2 = 0; j2 < this.field_186000_s.field_177835_t; ++j2) { -@@ -425,9 +451,12 @@ +@@ -426,9 +452,12 @@ } - biomegenbase.func_180624_a(this.field_185995_n, this.field_185990_i, new BlockPos(i, 0, j)); + biome.func_180624_a(this.field_185995_n, this.field_185990_i, new BlockPos(i, 0, j)); + if (net.minecraftforge.event.terraingen.TerrainGen.populate(this, this.field_185995_n, this.field_185990_i, p_185931_1_, p_185931_2_, flag, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.ANIMALS)) - WorldEntitySpawner.func_77191_a(this.field_185995_n, biomegenbase, i + 8, j + 8, 16, 16, this.field_185990_i); + WorldEntitySpawner.func_77191_a(this.field_185995_n, biome, i + 8, j + 8, 16, 16, this.field_185990_i); blockpos = blockpos.func_177982_a(8, 0, 8); + if (net.minecraftforge.event.terraingen.TerrainGen.populate(this, this.field_185995_n, this.field_185990_i, p_185931_1_, p_185931_2_, flag, net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.ICE)) @@ -88,7 +88,7 @@ for (int k2 = 0; k2 < 16; ++k2) { for (int j3 = 0; j3 < 16; ++j3) -@@ -446,7 +475,10 @@ +@@ -447,7 +476,10 @@ } } } diff --git a/patches/minecraft/net/minecraft/world/gen/ChunkProviderServer.java.patch b/patches/minecraft/net/minecraft/world/gen/ChunkProviderServer.java.patch index 6234904639..4464d5966d 100644 --- a/patches/minecraft/net/minecraft/world/gen/ChunkProviderServer.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/ChunkProviderServer.java.patch @@ -1,25 +1,27 @@ --- ../src-base/minecraft/net/minecraft/world/gen/ChunkProviderServer.java +++ ../src-work/minecraft/net/minecraft/world/gen/ChunkProviderServer.java -@@ -33,6 +33,7 @@ - public final LongHashMap field_73244_f = new LongHashMap(); - public final List field_73245_g = Lists.newArrayList(); +@@ -35,6 +35,7 @@ + public final IChunkLoader field_73247_e; + public final Long2ObjectMap field_73244_f = new Long2ObjectOpenHashMap(8192); public final WorldServer field_73251_h; + private Set loadingChunks = com.google.common.collect.Sets.newHashSet(); public ChunkProviderServer(WorldServer p_i46838_1_, IChunkLoader p_i46838_2_, IChunkGenerator p_i46838_3_) { -@@ -92,14 +93,65 @@ - - public Chunk func_186025_d(int p_186025_1_, int p_186025_2_) +@@ -82,18 +83,73 @@ + @Nullable + public Chunk func_186028_c(int p_186028_1_, int p_186028_2_) { -+ return loadChunk(p_186025_1_, p_186025_2_, null); +- Chunk chunk = this.func_186026_b(p_186028_1_, p_186028_2_); ++ return loadChunk(p_186028_1_, p_186028_2_, null); + } -+ + ++ @Nullable + public Chunk loadChunk(int X, int Z, Runnable runnable) + { -+ long pos = ChunkCoordIntPair.func_77272_a(X, Z); ++ long pos = ChunkPos.func_77272_a(X, Z); + this.field_73248_b.remove(Long.valueOf(pos)); -+ Chunk chunk = this.field_73244_f.func_76164_a(pos); ++ Chunk chunk = this.field_73244_f.get(pos); + net.minecraft.world.chunk.storage.AnvilChunkLoader loader = null; + + if (this.field_73247_e instanceof net.minecraft.world.chunk.storage.AnvilChunkLoader) @@ -56,55 +58,54 @@ + + public Chunk originalLoadChunk(int p_186025_1_, int p_186025_2_) + { - Chunk chunk = this.func_186028_c(p_186025_1_, p_186025_2_); - ++ Chunk chunk = this.func_186026_b(p_186025_1_, p_186025_2_); ++ if (chunk == null) { - long i = ChunkCoordIntPair.func_77272_a(p_186025_1_, p_186025_2_); -- chunk = this.func_73239_e(p_186025_1_, p_186025_2_); -+ if (!loadingChunks.add(i)) +- chunk = this.func_73239_e(p_186028_1_, p_186028_2_); ++ long pos = ChunkPos.func_77272_a(p_186025_1_, p_186025_2_); ++ if (!loadingChunks.add(pos)) + { -+ net.minecraftforge.fml.common.FMLLog.bigWarning("There is an attempt to load a chunk (%d,%d) in di >mension %d that is already being loaded. This will cause weird chunk breakages.", p_186025_1_, p_186025_2_, field_73251_h.field_73011_w.getDimension()); ++ net.minecraftforge.fml.common.FMLLog.bigWarning("There is an attempt to load a chunk (%d,%d) in di >mension %d that is already being loaded. This will cause weird chunk breakages.", p_186025_1_, p_186025_2_, this.field_73251_h.field_73011_w.getDimension()); + } -+ chunk = net.minecraftforge.common.ForgeChunkManager.fetchDormantChunk(i, this.field_73251_h); ++ chunk = net.minecraftforge.common.ForgeChunkManager.fetchDormantChunk(pos, this.field_73251_h); - if (chunk == null) ++ if (chunk == null) + chunk = this.func_73239_e(p_186025_1_, p_186025_2_); + -+ if (chunk == null) + if (chunk != null) { - try - { -@@ -118,6 +170,7 @@ - - this.field_73244_f.func_76163_a(i, chunk); - this.field_73245_g.add(chunk); -+ loadingChunks.remove(i); - chunk.func_76631_c(); - chunk.func_186030_a(this, this.field_186029_c); +- this.field_73244_f.put(ChunkPos.func_77272_a(p_186028_1_, p_186028_2_), chunk); ++ this.field_73244_f.put(ChunkPos.func_77272_a(p_186025_1_, p_186025_2_), chunk); + chunk.func_76631_c(); + chunk.func_186030_a(this, this.field_186029_c); + } ++ ++ loadingChunks.remove(pos); } -@@ -214,6 +267,11 @@ - { - if (!this.field_73251_h.field_73058_d) - { -+ for (ChunkCoordIntPair forced : this.field_73251_h.getPersistentChunks().keySet()) -+ { -+ this.field_73248_b.remove(ChunkCoordIntPair.func_77272_a(forced.field_77276_a, forced.field_77275_b)); -+ } -+ - for (int i = 0; i < 100; ++i) - { - if (!this.field_73248_b.isEmpty()) -@@ -228,6 +286,12 @@ - this.func_73243_a(chunk); - this.field_73244_f.func_76159_d(olong.longValue()); - this.field_73245_g.remove(chunk); -+ net.minecraftforge.common.ForgeChunkManager.putDormantChunk(ChunkCoordIntPair.func_77272_a(chunk.field_76635_g, chunk.field_76647_h), chunk); -+ if(field_73245_g.size() == 0 && net.minecraftforge.common.ForgeChunkManager.getPersistentChunksFor(this.field_73251_h).size() == 0 && !this.field_73251_h.field_73011_w.func_186058_p().shouldLoadSpawn()){ -+ net.minecraftforge.common.DimensionManager.unloadWorld(this.field_73251_h.field_73011_w.getDimension()); -+ return false; -+ } -+ - } - this.field_73248_b.remove(olong); + return chunk; +@@ -221,6 +277,11 @@ + { + if (!this.field_73248_b.isEmpty()) + { ++ for (ChunkPos forced : this.field_73251_h.getPersistentChunks().keySet()) ++ { ++ this.field_73248_b.remove(ChunkPos.func_77272_a(forced.field_77276_a, forced.field_77275_b)); ++ } ++ + Iterator iterator = this.field_73248_b.iterator(); + + for (int i = 0; i < 100 && iterator.hasNext(); iterator.remove()) +@@ -235,6 +296,11 @@ + this.func_73243_a(chunk); + this.field_73244_f.remove(olong); + ++i; ++ net.minecraftforge.common.ForgeChunkManager.putDormantChunk(ChunkPos.func_77272_a(chunk.field_76635_g, chunk.field_76647_h), chunk); ++ if (field_73244_f.size() == 0 && net.minecraftforge.common.ForgeChunkManager.getPersistentChunksFor(this.field_73251_h).size() == 0 && !this.field_73251_h.field_73011_w.func_186058_p().shouldLoadSpawn()){ ++ net.minecraftforge.common.DimensionManager.unloadWorld(this.field_73251_h.field_73011_w.getDimension()); ++ break; ++ } + } + } + } diff --git a/patches/minecraft/net/minecraft/world/gen/MapGenCaves.java.patch b/patches/minecraft/net/minecraft/world/gen/MapGenCaves.java.patch index 887ba3bfd0..6857f7b426 100644 --- a/patches/minecraft/net/minecraft/world/gen/MapGenCaves.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/MapGenCaves.java.patch @@ -59,7 +59,7 @@ + } + + //Exception biomes to make sure we generate like vanilla -+ private boolean isExceptionBiome(net.minecraft.world.biome.BiomeGenBase biome) ++ private boolean isExceptionBiome(net.minecraft.world.biome.Biome biome) + { + if (biome == net.minecraft.init.Biomes.field_76787_r) return true; + if (biome == net.minecraft.init.Biomes.field_76769_d) return true; @@ -70,7 +70,7 @@ + //Vanilla bugs to make sure that we generate the map the same way vanilla does. + private boolean isTopBlock(ChunkPrimer data, int x, int y, int z, int chunkX, int chunkZ) + { -+ net.minecraft.world.biome.BiomeGenBase biome = field_75039_c.func_180494_b(new BlockPos(x + chunkX * 16, 0, z + chunkZ * 16)); ++ net.minecraft.world.biome.Biome biome = field_75039_c.func_180494_b(new BlockPos(x + chunkX * 16, 0, z + chunkZ * 16)); + IBlockState state = data.func_177856_a(x, y, z); + return (isExceptionBiome(biome) ? state.func_177230_c() == Blocks.field_150349_c : state.func_177230_c() == biome.field_76752_A); + } @@ -92,7 +92,7 @@ + */ + protected void digBlock(ChunkPrimer data, int x, int y, int z, int chunkX, int chunkZ, boolean foundTop, IBlockState state, IBlockState up) + { -+ net.minecraft.world.biome.BiomeGenBase biome = field_75039_c.func_180494_b(new BlockPos(x + chunkX * 16, 0, z + chunkZ * 16)); ++ net.minecraft.world.biome.Biome biome = field_75039_c.func_180494_b(new BlockPos(x + chunkX * 16, 0, z + chunkZ * 16)); + IBlockState top = biome.field_76752_A; + IBlockState filler = biome.field_76753_B; + diff --git a/patches/minecraft/net/minecraft/world/gen/MapGenRavine.java.patch b/patches/minecraft/net/minecraft/world/gen/MapGenRavine.java.patch index 616b17a9a1..30657ba503 100644 --- a/patches/minecraft/net/minecraft/world/gen/MapGenRavine.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/MapGenRavine.java.patch @@ -64,7 +64,7 @@ + } + + //Exception biomes to make sure we generate like vanilla -+ private boolean isExceptionBiome(net.minecraft.world.biome.BiomeGenBase biome) ++ private boolean isExceptionBiome(net.minecraft.world.biome.Biome biome) + { + if (biome == net.minecraft.init.Biomes.field_76787_r) return true; + if (biome == net.minecraft.init.Biomes.field_76769_d) return true; @@ -77,7 +77,7 @@ + //Vanilla bugs to make sure that we generate the map the same way vanilla does. + private boolean isTopBlock(ChunkPrimer data, int x, int y, int z, int chunkX, int chunkZ) + { -+ net.minecraft.world.biome.BiomeGenBase biome = field_75039_c.func_180494_b(new BlockPos(x + chunkX * 16, 0, z + chunkZ * 16)); ++ net.minecraft.world.biome.Biome biome = field_75039_c.func_180494_b(new BlockPos(x + chunkX * 16, 0, z + chunkZ * 16)); + IBlockState state = data.func_177856_a(x, y, z); + return (isExceptionBiome(biome) ? state.func_177230_c() == Blocks.field_150349_c : state.func_177230_c() == biome.field_76752_A); + } @@ -99,7 +99,7 @@ + */ + protected void digBlock(ChunkPrimer data, int x, int y, int z, int chunkX, int chunkZ, boolean foundTop) + { -+ net.minecraft.world.biome.BiomeGenBase biome = field_75039_c.func_180494_b(new BlockPos(x + chunkX * 16, 0, z + chunkZ * 16)); ++ net.minecraft.world.biome.Biome biome = field_75039_c.func_180494_b(new BlockPos(x + chunkX * 16, 0, z + chunkZ * 16)); + IBlockState state = data.func_177856_a(x, y, z); + IBlockState top = isExceptionBiome(biome) ? Blocks.field_150349_c.func_176223_P() : biome.field_76752_A; + IBlockState filler = isExceptionBiome(biome) ? Blocks.field_150346_d.func_176223_P() : biome.field_76753_B; diff --git a/patches/minecraft/net/minecraft/world/gen/feature/WorldGenHellLava.java.patch b/patches/minecraft/net/minecraft/world/gen/feature/WorldGenHellLava.java.patch index b8ef8082e1..dcdcd472c2 100644 --- a/patches/minecraft/net/minecraft/world/gen/feature/WorldGenHellLava.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/feature/WorldGenHellLava.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/gen/feature/WorldGenHellLava.java +++ ../src-work/minecraft/net/minecraft/world/gen/feature/WorldGenHellLava.java -@@ -24,7 +24,7 @@ +@@ -25,7 +25,7 @@ { return false; } diff --git a/patches/minecraft/net/minecraft/world/gen/feature/WorldGenLiquids.java.patch b/patches/minecraft/net/minecraft/world/gen/feature/WorldGenLiquids.java.patch index 223fdde145..074c4483e9 100644 --- a/patches/minecraft/net/minecraft/world/gen/feature/WorldGenLiquids.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/feature/WorldGenLiquids.java.patch @@ -1,11 +1,11 @@ --- ../src-base/minecraft/net/minecraft/world/gen/feature/WorldGenLiquids.java +++ ../src-work/minecraft/net/minecraft/world/gen/feature/WorldGenLiquids.java -@@ -26,7 +26,7 @@ +@@ -31,7 +31,7 @@ { - return false; - } -- else if (p_180709_1_.func_180495_p(p_180709_3_).func_185904_a() != Material.field_151579_a && p_180709_1_.func_180495_p(p_180709_3_).func_177230_c() != Blocks.field_150348_b) -+ else if (!p_180709_1_.func_175623_d(p_180709_3_) && p_180709_1_.func_180495_p(p_180709_3_).func_177230_c() != Blocks.field_150348_b) - { - return false; - } + IBlockState iblockstate = p_180709_1_.func_180495_p(p_180709_3_); + +- if (iblockstate.func_185904_a() != Material.field_151579_a && iblockstate.func_177230_c() != Blocks.field_150348_b) ++ if (!iblockstate.func_177230_c().isAir(iblockstate, p_180709_1_, p_180709_3_) && iblockstate.func_177230_c() != Blocks.field_150348_b) + { + return false; + } diff --git a/patches/minecraft/net/minecraft/world/gen/layer/GenLayer.java.patch b/patches/minecraft/net/minecraft/world/gen/layer/GenLayer.java.patch index 3a9a317099..18db5243bd 100644 --- a/patches/minecraft/net/minecraft/world/gen/layer/GenLayer.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/layer/GenLayer.java.patch @@ -20,9 +20,9 @@ protected static boolean func_151618_b(int p_151618_0_) { -- BiomeGenBase biomegenbase = BiomeGenBase.func_150568_d(p_151618_0_); -- return biomegenbase == Biomes.field_76771_b || biomegenbase == Biomes.field_150575_M || biomegenbase == Biomes.field_76776_l; -+ return net.minecraftforge.common.BiomeManager.oceanBiomes.contains(BiomeGenBase.func_150568_d(p_151618_0_)); +- Biome biome = Biome.func_150568_d(p_151618_0_); +- return biome == Biomes.field_76771_b || biome == Biomes.field_150575_M || biome == Biomes.field_76776_l; ++ return net.minecraftforge.common.BiomeManager.oceanBiomes.contains(Biome.func_150568_d(p_151618_0_)); } protected int func_151619_a(int... p_151619_1_) diff --git a/patches/minecraft/net/minecraft/world/gen/layer/GenLayerBiome.java.patch b/patches/minecraft/net/minecraft/world/gen/layer/GenLayerBiome.java.patch index 61d673a2f7..aa13256fe5 100644 --- a/patches/minecraft/net/minecraft/world/gen/layer/GenLayerBiome.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/layer/GenLayerBiome.java.patch @@ -4,10 +4,10 @@ public class GenLayerBiome extends GenLayer { -- private BiomeGenBase[] field_151623_c = new BiomeGenBase[] {Biomes.field_76769_d, Biomes.field_76769_d, Biomes.field_76769_d, Biomes.field_150588_X, Biomes.field_150588_X, Biomes.field_76772_c}; -- private BiomeGenBase[] field_151621_d = new BiomeGenBase[] {Biomes.field_76767_f, Biomes.field_150585_R, Biomes.field_76770_e, Biomes.field_76772_c, Biomes.field_150583_P, Biomes.field_76780_h}; -- private BiomeGenBase[] field_151622_e = new BiomeGenBase[] {Biomes.field_76767_f, Biomes.field_76770_e, Biomes.field_76768_g, Biomes.field_76772_c}; -- private BiomeGenBase[] field_151620_f = new BiomeGenBase[] {Biomes.field_76774_n, Biomes.field_76774_n, Biomes.field_76774_n, Biomes.field_150584_S}; +- private Biome[] field_151623_c = new Biome[] {Biomes.field_76769_d, Biomes.field_76769_d, Biomes.field_76769_d, Biomes.field_150588_X, Biomes.field_150588_X, Biomes.field_76772_c}; +- private Biome[] field_151621_d = new Biome[] {Biomes.field_76767_f, Biomes.field_150585_R, Biomes.field_76770_e, Biomes.field_76772_c, Biomes.field_150583_P, Biomes.field_76780_h}; +- private Biome[] field_151622_e = new Biome[] {Biomes.field_76767_f, Biomes.field_76770_e, Biomes.field_76768_g, Biomes.field_76772_c}; +- private Biome[] field_151620_f = new Biome[] {Biomes.field_76774_n, Biomes.field_76774_n, Biomes.field_76774_n, Biomes.field_150584_S}; + @SuppressWarnings("unchecked") + private java.util.List[] biomes = new java.util.ArrayList[net.minecraftforge.common.BiomeManager.BiomeType.values().length]; private final ChunkProviderSettings field_175973_g; @@ -34,7 +34,7 @@ + if (p_i45560_4_ == WorldType.field_77136_e) { -- this.field_151623_c = new BiomeGenBase[] {Biomes.field_76769_d, Biomes.field_76767_f, Biomes.field_76770_e, Biomes.field_76780_h, Biomes.field_76772_c, Biomes.field_76768_g}; +- this.field_151623_c = new Biome[] {Biomes.field_76769_d, Biomes.field_76767_f, Biomes.field_76770_e, Biomes.field_76780_h, Biomes.field_76772_c, Biomes.field_76768_g}; + biomes[desertIdx].clear(); + biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(Biomes.field_76769_d, 10)); + biomes[desertIdx].add(new net.minecraftforge.common.BiomeManager.BiomeEntry(Biomes.field_76767_f, 10)); @@ -49,8 +49,8 @@ } else { -- aint1[j + i * p_75904_3_] = BiomeGenBase.func_185362_a(this.field_151623_c[this.func_75902_a(this.field_151623_c.length)]); -+ aint1[j + i * p_75904_3_] = BiomeGenBase.func_185362_a(getWeightedBiomeEntry(net.minecraftforge.common.BiomeManager.BiomeType.DESERT).biome); +- aint1[j + i * p_75904_3_] = Biome.func_185362_a(this.field_151623_c[this.func_75902_a(this.field_151623_c.length)]); ++ aint1[j + i * p_75904_3_] = Biome.func_185362_a(getWeightedBiomeEntry(net.minecraftforge.common.BiomeManager.BiomeType.DESERT).biome); } } else if (k == 2) @@ -58,8 +58,8 @@ } else { -- aint1[j + i * p_75904_3_] = BiomeGenBase.func_185362_a(this.field_151621_d[this.func_75902_a(this.field_151621_d.length)]); -+ aint1[j + i * p_75904_3_] = BiomeGenBase.func_185362_a(getWeightedBiomeEntry(net.minecraftforge.common.BiomeManager.BiomeType.WARM).biome); +- aint1[j + i * p_75904_3_] = Biome.func_185362_a(this.field_151621_d[this.func_75902_a(this.field_151621_d.length)]); ++ aint1[j + i * p_75904_3_] = Biome.func_185362_a(getWeightedBiomeEntry(net.minecraftforge.common.BiomeManager.BiomeType.WARM).biome); } } else if (k == 3) @@ -67,14 +67,14 @@ } else { -- aint1[j + i * p_75904_3_] = BiomeGenBase.func_185362_a(this.field_151622_e[this.func_75902_a(this.field_151622_e.length)]); -+ aint1[j + i * p_75904_3_] = BiomeGenBase.func_185362_a(getWeightedBiomeEntry(net.minecraftforge.common.BiomeManager.BiomeType.COOL).biome); +- aint1[j + i * p_75904_3_] = Biome.func_185362_a(this.field_151622_e[this.func_75902_a(this.field_151622_e.length)]); ++ aint1[j + i * p_75904_3_] = Biome.func_185362_a(getWeightedBiomeEntry(net.minecraftforge.common.BiomeManager.BiomeType.COOL).biome); } } else if (k == 4) { -- aint1[j + i * p_75904_3_] = BiomeGenBase.func_185362_a(this.field_151620_f[this.func_75902_a(this.field_151620_f.length)]); -+ aint1[j + i * p_75904_3_] = BiomeGenBase.func_185362_a(getWeightedBiomeEntry(net.minecraftforge.common.BiomeManager.BiomeType.ICY).biome); +- aint1[j + i * p_75904_3_] = Biome.func_185362_a(this.field_151620_f[this.func_75902_a(this.field_151620_f.length)]); ++ aint1[j + i * p_75904_3_] = Biome.func_185362_a(getWeightedBiomeEntry(net.minecraftforge.common.BiomeManager.BiomeType.ICY).biome); } else { diff --git a/patches/minecraft/net/minecraft/world/gen/structure/MapGenStronghold.java.patch b/patches/minecraft/net/minecraft/world/gen/structure/MapGenStronghold.java.patch index 81289f9368..696606ee4e 100644 --- a/patches/minecraft/net/minecraft/world/gen/structure/MapGenStronghold.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/structure/MapGenStronghold.java.patch @@ -2,16 +2,16 @@ +++ ../src-work/minecraft/net/minecraft/world/gen/structure/MapGenStronghold.java @@ -28,11 +28,19 @@ - for (BiomeGenBase biomegenbase : BiomeGenBase.field_185377_q) + for (Biome biome : Biome.field_185377_q) { -- if (biomegenbase != null && biomegenbase.func_185355_j() > 0.0F) -+ if (biomegenbase != null && biomegenbase.func_185355_j() > 0.0F && !net.minecraftforge.common.BiomeManager.strongHoldBiomesBlackList.contains(biomegenbase)) +- if (biome != null && biome.func_185355_j() > 0.0F) ++ if (biome != null && biome.func_185355_j() > 0.0F && !net.minecraftforge.common.BiomeManager.strongHoldBiomesBlackList.contains(biome)) { - this.field_151546_e.add(biomegenbase); + this.field_151546_e.add(biome); } } + -+ for (BiomeGenBase biome : net.minecraftforge.common.BiomeManager.strongHoldBiomes) ++ for (Biome biome : net.minecraftforge.common.BiomeManager.strongHoldBiomes) + { + if (!this.field_151546_e.contains(biome)) + { diff --git a/patches/minecraft/net/minecraft/world/gen/structure/StructureComponent.java.patch b/patches/minecraft/net/minecraft/world/gen/structure/StructureComponent.java.patch index 0d04563b48..eaec27f2e2 100644 --- a/patches/minecraft/net/minecraft/world/gen/structure/StructureComponent.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/structure/StructureComponent.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/gen/structure/StructureComponent.java +++ ../src-work/minecraft/net/minecraft/world/gen/structure/StructureComponent.java -@@ -38,6 +38,10 @@ +@@ -39,6 +39,10 @@ public final NBTTagCompound func_143010_b() { diff --git a/patches/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch b/patches/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch index b63848da22..f6b56cbc2f 100644 --- a/patches/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch @@ -23,15 +23,15 @@ public List field_74931_h; public List field_74932_i = Lists.newArrayList(); public List field_74930_j = Lists.newArrayList(); -+ public BiomeGenBase biome; ++ public Biome biome; public Start() { @@ -1460,6 +1466,7 @@ this.field_74928_c = p_i2104_7_; - BiomeGenBase biomegenbase = p_i2104_1_.func_180300_a(new BlockPos(p_i2104_4_, 0, p_i2104_5_), Biomes.field_180279_ad); - this.field_74927_b = biomegenbase == Biomes.field_76769_d || biomegenbase == Biomes.field_76786_s; -+ this.biome = biomegenbase; + Biome biome = p_i2104_1_.func_180300_a(new BlockPos(p_i2104_4_, 0, p_i2104_5_), Biomes.field_180279_ad); + this.field_74927_b = biome == Biomes.field_76769_d || biome == Biomes.field_76786_s; ++ this.biome = biome; this.func_175846_a(this.field_74927_b); } diff --git a/patches/minecraft/net/minecraft/world/storage/MapData.java.patch b/patches/minecraft/net/minecraft/world/storage/MapData.java.patch index 4f6cfb7141..af51761d2e 100644 --- a/patches/minecraft/net/minecraft/world/storage/MapData.java.patch +++ b/patches/minecraft/net/minecraft/world/storage/MapData.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/storage/MapData.java +++ ../src-work/minecraft/net/minecraft/world/storage/MapData.java -@@ -21,7 +21,7 @@ +@@ -22,7 +22,7 @@ { public int field_76201_a; public int field_76199_b; @@ -9,7 +9,7 @@ public boolean field_186210_e; public byte field_76197_d; public byte[] field_76198_e = new byte[16384]; -@@ -45,7 +45,17 @@ +@@ -46,7 +46,17 @@ public void func_76184_a(NBTTagCompound p_76184_1_) { @@ -28,16 +28,16 @@ this.field_76201_a = p_76184_1_.func_74762_e("xCenter"); this.field_76199_b = p_76184_1_.func_74762_e("zCenter"); this.field_76197_d = p_76184_1_.func_74771_c("scale"); -@@ -96,7 +106,7 @@ +@@ -97,7 +107,7 @@ - public void func_76187_b(NBTTagCompound p_76187_1_) + public NBTTagCompound func_189551_b(NBTTagCompound p_189551_1_) { -- p_76187_1_.func_74774_a("dimension", this.field_76200_c); -+ p_76187_1_.func_74768_a("dimension", this.field_76200_c); - p_76187_1_.func_74768_a("xCenter", this.field_76201_a); - p_76187_1_.func_74768_a("zCenter", this.field_76199_b); - p_76187_1_.func_74774_a("scale", this.field_76197_d); -@@ -176,7 +186,7 @@ +- p_189551_1_.func_74774_a("dimension", this.field_76200_c); ++ p_189551_1_.func_74768_a("dimension", this.field_76200_c); + p_189551_1_.func_74768_a("xCenter", this.field_76201_a); + p_189551_1_.func_74768_a("zCenter", this.field_76199_b); + p_189551_1_.func_74774_a("scale", this.field_76197_d); +@@ -178,7 +188,7 @@ p_82567_8_ = p_82567_8_ + (p_82567_8_ < 0.0D ? -8.0D : 8.0D); b2 = (byte)((int)(p_82567_8_ * 16.0D / 360.0D)); diff --git a/patches/minecraft/net/minecraft/world/storage/SaveFormatOld.java.patch b/patches/minecraft/net/minecraft/world/storage/SaveFormatOld.java.patch index 5d70251ab4..dfb416fcd8 100644 --- a/patches/minecraft/net/minecraft/world/storage/SaveFormatOld.java.patch +++ b/patches/minecraft/net/minecraft/world/storage/SaveFormatOld.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/storage/SaveFormatOld.java +++ ../src-work/minecraft/net/minecraft/world/storage/SaveFormatOld.java -@@ -106,6 +106,24 @@ +@@ -108,6 +108,24 @@ } } diff --git a/patches/minecraft/net/minecraft/world/storage/SaveHandler.java.patch b/patches/minecraft/net/minecraft/world/storage/SaveHandler.java.patch index 3cce351d0b..0e01b2a5a5 100644 --- a/patches/minecraft/net/minecraft/world/storage/SaveHandler.java.patch +++ b/patches/minecraft/net/minecraft/world/storage/SaveHandler.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/storage/SaveHandler.java +++ ../src-work/minecraft/net/minecraft/world/storage/SaveHandler.java -@@ -117,7 +117,7 @@ +@@ -118,7 +118,7 @@ if (file1.exists()) { @@ -9,7 +9,7 @@ if (worldinfo != null) { -@@ -125,8 +125,9 @@ +@@ -126,8 +126,9 @@ } } @@ -19,8 +19,8 @@ + return file1.exists() ? SaveFormatOld.loadAndFix(file1, this.field_186341_a, this) : null; } - public void func_75755_a(WorldInfo p_75755_1_, NBTTagCompound p_75755_2_) -@@ -135,6 +136,8 @@ + public void func_75755_a(WorldInfo p_75755_1_, @Nullable NBTTagCompound p_75755_2_) +@@ -136,6 +137,8 @@ NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound1.func_74782_a("Data", nbttagcompound); diff --git a/patches/minecraft/net/minecraft/world/storage/WorldInfo.java.patch b/patches/minecraft/net/minecraft/world/storage/WorldInfo.java.patch index 5ffd902c3a..cae175b986 100644 --- a/patches/minecraft/net/minecraft/world/storage/WorldInfo.java.patch +++ b/patches/minecraft/net/minecraft/world/storage/WorldInfo.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/storage/WorldInfo.java +++ ../src-work/minecraft/net/minecraft/world/storage/WorldInfo.java -@@ -60,6 +60,7 @@ +@@ -61,6 +61,7 @@ private int field_176155_J = 15; private final Map field_186348_N = Maps.newEnumMap(DimensionType.class); private GameRules field_82577_x = new GameRules(); @@ -8,7 +8,7 @@ protected WorldInfo() { -@@ -785,6 +786,26 @@ +@@ -786,6 +787,26 @@ }); } diff --git a/patches/minecraft/net/minecraft/world/storage/loot/LootTableManager.java.patch b/patches/minecraft/net/minecraft/world/storage/loot/LootTableManager.java.patch index 3c752186b6..8aaf224f2d 100644 --- a/patches/minecraft/net/minecraft/world/storage/loot/LootTableManager.java.patch +++ b/patches/minecraft/net/minecraft/world/storage/loot/LootTableManager.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/world/storage/loot/LootTableManager.java +++ ../src-work/minecraft/net/minecraft/world/storage/loot/LootTableManager.java -@@ -102,7 +102,7 @@ +@@ -104,7 +104,7 @@ try { @@ -9,7 +9,7 @@ } catch (JsonParseException jsonparseexception) { -@@ -142,7 +142,7 @@ +@@ -145,7 +145,7 @@ try { diff --git a/patches/minecraft/net/minecraft/world/storage/loot/conditions/LootConditionManager.java.patch b/patches/minecraft/net/minecraft/world/storage/loot/conditions/LootConditionManager.java.patch index 511a8e4f52..47f72e8d38 100644 --- a/patches/minecraft/net/minecraft/world/storage/loot/conditions/LootConditionManager.java.patch +++ b/patches/minecraft/net/minecraft/world/storage/loot/conditions/LootConditionManager.java.patch @@ -1,19 +1,18 @@ --- ../src-base/minecraft/net/minecraft/world/storage/loot/conditions/LootConditionManager.java +++ ../src-work/minecraft/net/minecraft/world/storage/loot/conditions/LootConditionManager.java -@@ -41,6 +41,16 @@ +@@ -42,6 +42,15 @@ } } -+ + public static boolean testAllConditions(Iterable conditions, Random rand, LootContext context) + { + if (conditions == null) return true; + for (LootCondition cond : conditions) -+ if (!cond.func_186618_a(rand, context)) ++ if (!cond.func_186618_a(rand, context)) + return false; + return true; + } + - public static boolean func_186638_a(LootCondition[] p_186638_0_, Random p_186638_1_, LootContext p_186638_2_) + public static boolean func_186638_a(@Nullable LootCondition[] p_186638_0_, Random p_186638_1_, LootContext p_186638_2_) { if (p_186638_0_ == null) diff --git a/src/main/java/net/minecraftforge/client/ForgeHooksClient.java b/src/main/java/net/minecraftforge/client/ForgeHooksClient.java index c8d46cae0d..5686ff267b 100644 --- a/src/main/java/net/minecraftforge/client/ForgeHooksClient.java +++ b/src/main/java/net/minecraftforge/client/ForgeHooksClient.java @@ -69,7 +69,7 @@ import net.minecraft.util.text.TextFormatting; import net.minecraft.world.BossInfoLerping; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.Biome; import net.minecraftforge.client.event.DrawBlockHighlightEvent; import net.minecraftforge.client.event.EntityViewRenderEvent; import net.minecraftforge.client.event.FOVUpdateEvent; @@ -249,7 +249,7 @@ public class ForgeHooksClient for (int z = -distance; z <= distance; ++z) { BlockPos pos = center.add(x, 0, z); - BiomeGenBase biome = world.getBiomeGenForCoords(pos); + Biome biome = world.getBiomeGenForCoords(pos); int colour = biome.getSkyColorByTemp(biome.getFloatTemperature(pos)); r += (colour & 0xFF0000) >> 16; g += (colour & 0x00FF00) >> 8; diff --git a/src/main/java/net/minecraftforge/client/MinecraftForgeClient.java b/src/main/java/net/minecraftforge/client/MinecraftForgeClient.java index 5315c81fb2..b631ce36c2 100644 --- a/src/main/java/net/minecraftforge/client/MinecraftForgeClient.java +++ b/src/main/java/net/minecraftforge/client/MinecraftForgeClient.java @@ -8,9 +8,9 @@ package net.minecraftforge.client; import java.util.BitSet; import java.util.concurrent.TimeUnit; -import net.minecraft.client.renderer.RegionRenderCache; import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.ChunkCache; import net.minecraft.world.World; import org.apache.commons.lang3.tuple.Pair; @@ -68,24 +68,24 @@ public class MinecraftForgeClient } } - private static final LoadingCache, RegionRenderCache> regionCache = CacheBuilder.newBuilder() + private static final LoadingCache, ChunkCache> regionCache = CacheBuilder.newBuilder() .maximumSize(500) .concurrencyLevel(5) .expireAfterAccess(1, TimeUnit.SECONDS) - .build(new CacheLoader, RegionRenderCache>() + .build(new CacheLoader, ChunkCache>() { - public RegionRenderCache load(Pair key) throws Exception + public ChunkCache load(Pair key) throws Exception { - return new RegionRenderCache(key.getLeft(), key.getRight().add(-1, -1, -1), key.getRight().add(16, 16, 16), 1); + return new ChunkCache(key.getLeft(), key.getRight().add(-1, -1, -1), key.getRight().add(16, 16, 16), 1); } }); - public static void onRebuildChunk(World world, BlockPos position, RegionRenderCache cache) + public static void onRebuildChunk(World world, BlockPos position, ChunkCache cache) { regionCache.put(Pair.of(world, position), cache); } - public static RegionRenderCache getRegionRenderCache(World world, BlockPos pos) + public static ChunkCache getRegionRenderCache(World world, BlockPos pos) { int x = pos.getX() & ~0xF; int y = pos.getY() & ~0xF; diff --git a/src/main/java/net/minecraftforge/client/model/ModelLoader.java b/src/main/java/net/minecraftforge/client/model/ModelLoader.java index dc5326bd29..b13010411b 100644 --- a/src/main/java/net/minecraftforge/client/model/ModelLoader.java +++ b/src/main/java/net/minecraftforge/client/model/ModelLoader.java @@ -44,7 +44,7 @@ import net.minecraft.client.renderer.block.model.multipart.Multipart; import net.minecraft.client.renderer.block.model.multipart.Selector; import net.minecraft.client.renderer.block.statemap.BlockStateMapper; import net.minecraft.client.renderer.block.statemap.IStateMapper; -import net.minecraft.client.renderer.texture.IIconCreator; +import net.minecraft.client.renderer.texture.ITextureMapPopulator; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; @@ -131,7 +131,7 @@ public final class ModelLoader extends ModelBakery textures.remove(TextureMap.LOCATION_MISSING_TEXTURE); textures.addAll(LOCATIONS_BUILTIN_TEXTURES); - textureMap.loadSprites(resourceManager, new IIconCreator() + textureMap.loadSprites(resourceManager, new ITextureMapPopulator() { public void registerSprites(TextureMap map) { diff --git a/src/main/java/net/minecraftforge/common/BiomeDictionary.java b/src/main/java/net/minecraftforge/common/BiomeDictionary.java index 3b535e9e72..a9433ff12f 100644 --- a/src/main/java/net/minecraftforge/common/BiomeDictionary.java +++ b/src/main/java/net/minecraftforge/common/BiomeDictionary.java @@ -115,7 +115,7 @@ public class BiomeDictionary private static HashMap biomeInfoMap = new HashMap(); @SuppressWarnings("unchecked") - private static ArrayList[] typeInfoList = new ArrayList[Type.values().length]; + private static ArrayList[] typeInfoList = new ArrayList[Type.values().length]; private static class BiomeInfo { @@ -143,17 +143,17 @@ public class BiomeDictionary * @param type the type to register the biome as * @return returns true if the biome was registered successfully */ - public static boolean registerBiomeType(BiomeGenBase biome, Type ... types) + public static boolean registerBiomeType(Biome biome, Type ... types) { types = listSubTags(types); - if(BiomeGenBase.biomeRegistry.getNameForObject(biome) != null) + if(Biome.biomeRegistry.getNameForObject(biome) != null) { for(Type type : types) { if(typeInfoList[type.ordinal()] == null) { - typeInfoList[type.ordinal()] = new ArrayList(); + typeInfoList[type.ordinal()] = new ArrayList(); } typeInfoList[type.ordinal()].add(biome); @@ -161,7 +161,7 @@ public class BiomeDictionary if(!isBiomeRegistered(biome)) { - ResourceLocation location = BiomeGenBase.biomeRegistry.getNameForObject(biome); + ResourceLocation location = Biome.biomeRegistry.getNameForObject(biome); biomeInfoMap.put(location, new BiomeInfo(types)); } else @@ -184,14 +184,14 @@ public class BiomeDictionary * @param type the Type to look for * @return a list of biomes of the specified type, null if there are none */ - public static BiomeGenBase[] getBiomesForType(Type type) + public static Biome[] getBiomesForType(Type type) { if(typeInfoList[type.ordinal()] != null) { - return typeInfoList[type.ordinal()].toArray(new BiomeGenBase[0]); + return typeInfoList[type.ordinal()].toArray(new Biome[0]); } - return new BiomeGenBase[0]; + return new Biome[0]; } /** @@ -200,10 +200,10 @@ public class BiomeDictionary * @param biome the biome to check * @return the list of types, null if there are none */ - public static Type[] getTypesForBiome(BiomeGenBase biome) + public static Type[] getTypesForBiome(Biome biome) { - checkRegistration(biome); - return getBiomeInfo(biome).typeList.toArray(new Type[0]); + checkRegistration(biome); + return getBiomeInfo(biome).typeList.toArray(new Type[0]); } /** @@ -213,17 +213,17 @@ public class BiomeDictionary * @param biomeB * @return returns true if a common type is found, false otherwise */ - public static boolean areBiomesEquivalent(BiomeGenBase biomeA, BiomeGenBase biomeB) + public static boolean areBiomesEquivalent(Biome biomeA, Biome biomeB) { checkRegistration(biomeA); checkRegistration(biomeB); for(Type type : getTypesForBiome(biomeA)) { - if(containsType(getBiomeInfo(biomeB), type)) - { - return true; - } + if(containsType(getBiomeInfo(biomeB), type)) + { + return true; + } } return false; @@ -236,7 +236,7 @@ public class BiomeDictionary * @param type the type to check for * @return returns true if the biome is registered as being of type type, false otherwise */ - public static boolean isBiomeOfType(BiomeGenBase biome, Type type) + public static boolean isBiomeOfType(Biome biome, Type type) { checkRegistration(biome); return containsType(getBiomeInfo(biome), type); @@ -247,9 +247,9 @@ public class BiomeDictionary * @param biome the biome to consider * @return returns true if the biome has been registered, false otherwise */ - public static boolean isBiomeRegistered(BiomeGenBase biome) + public static boolean isBiomeRegistered(Biome biome) { - return biomeInfoMap.containsKey(BiomeGenBase.biomeRegistry.getNameForObject(biome)); + return biomeInfoMap.containsKey(Biome.biomeRegistry.getNameForObject(biome)); } public static void registerAllBiomes() @@ -265,10 +265,10 @@ public class BiomeDictionary */ public static void registerAllBiomesAndGenerateEvents() { - for (ResourceLocation biomeResource : BiomeGenBase.biomeRegistry.getKeys()) - { - BiomeGenBase biome = BiomeGenBase.biomeRegistry.getObject(biomeResource); - + for (ResourceLocation biomeResource : Biome.biomeRegistry.getKeys()) + { + Biome biome = Biome.biomeRegistry.getObject(biomeResource); + if (biome.theBiomeDecorator instanceof DeferredBiomeDecorator) { DeferredBiomeDecorator decorator = (DeferredBiomeDecorator) biome.theBiomeDecorator; @@ -286,7 +286,7 @@ public class BiomeDictionary * * @param biome the biome to be considered */ - public static void makeBestGuess(BiomeGenBase biome) + public static void makeBestGuess(Biome biome) { if (biome.theBiomeDecorator.treesPerChunk >= 3) { @@ -393,12 +393,12 @@ public class BiomeDictionary } //Internal implementation - private static BiomeInfo getBiomeInfo(BiomeGenBase biome) + private static BiomeInfo getBiomeInfo(Biome biome) { - return biomeInfoMap.get(BiomeGenBase.biomeRegistry.getNameForObject(biome)); + return biomeInfoMap.get(Biome.biomeRegistry.getNameForObject(biome)); } - - private static void checkRegistration(BiomeGenBase biome) + + private static void checkRegistration(Biome biome) { if(!isBiomeRegistered(biome)) { diff --git a/src/main/java/net/minecraftforge/common/BiomeManager.java b/src/main/java/net/minecraftforge/common/BiomeManager.java index 8eb1315335..9d97401037 100644 --- a/src/main/java/net/minecraftforge/common/BiomeManager.java +++ b/src/main/java/net/minecraftforge/common/BiomeManager.java @@ -9,7 +9,7 @@ import com.google.common.collect.ImmutableList; import net.minecraft.init.Biomes; import net.minecraft.util.WeightedRandom; -import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.BiomeProvider; import net.minecraft.world.gen.structure.MapGenVillage; import net.minecraftforge.common.util.EnumHelper; @@ -18,10 +18,10 @@ public class BiomeManager { private static TrackedList[] biomes = setupBiomes(); - public static List oceanBiomes = new ArrayList(); + public static List oceanBiomes = new ArrayList(); - public static ArrayList strongHoldBiomes = new ArrayList(); - public static ArrayList strongHoldBiomesBlackList = new ArrayList(); + public static ArrayList strongHoldBiomes = new ArrayList(); + public static ArrayList strongHoldBiomesBlackList = new ArrayList(); static { @@ -65,27 +65,27 @@ public class BiomeManager return currentBiomes; } - public static void addVillageBiome(BiomeGenBase biome, boolean canSpawn) + public static void addVillageBiome(Biome biome, boolean canSpawn) { if (!MapGenVillage.villageSpawnBiomes.contains(biome)) { - ArrayList biomes = new ArrayList(MapGenVillage.villageSpawnBiomes); + ArrayList biomes = new ArrayList(MapGenVillage.villageSpawnBiomes); biomes.add(biome); MapGenVillage.villageSpawnBiomes = biomes; } } - public static void removeVillageBiome(BiomeGenBase biome) + public static void removeVillageBiome(Biome biome) { if (MapGenVillage.villageSpawnBiomes.contains(biome)) { - ArrayList biomes = new ArrayList(MapGenVillage.villageSpawnBiomes); + ArrayList biomes = new ArrayList(MapGenVillage.villageSpawnBiomes); biomes.remove(biome); MapGenVillage.villageSpawnBiomes = biomes; } } - public static void addStrongholdBiome(BiomeGenBase biome) + public static void addStrongholdBiome(Biome biome) { if (!strongHoldBiomes.contains(biome)) { @@ -93,7 +93,7 @@ public class BiomeManager } } - public static void removeStrongholdBiome(BiomeGenBase biome) + public static void removeStrongholdBiome(Biome biome) { if (!strongHoldBiomesBlackList.contains(biome)) { @@ -101,7 +101,7 @@ public class BiomeManager } } - public static void addSpawnBiome(BiomeGenBase biome) + public static void addSpawnBiome(Biome biome) { if (!BiomeProvider.allowedBiomes.contains(biome)) { @@ -109,7 +109,7 @@ public class BiomeManager } } - public static void removeSpawnBiome(BiomeGenBase biome) + public static void removeSpawnBiome(Biome biome) { if (BiomeProvider.allowedBiomes.contains(biome)) { @@ -179,9 +179,9 @@ public class BiomeManager public static class BiomeEntry extends WeightedRandom.Item { - public final BiomeGenBase biome; + public final Biome biome; - public BiomeEntry(BiomeGenBase biome, int weight) + public BiomeEntry(Biome biome, int weight) { super(weight); diff --git a/src/main/java/net/minecraftforge/common/DimensionManager.java b/src/main/java/net/minecraftforge/common/DimensionManager.java index 4d788ef5d6..a96408f906 100644 --- a/src/main/java/net/minecraftforge/common/DimensionManager.java +++ b/src/main/java/net/minecraftforge/common/DimensionManager.java @@ -23,7 +23,7 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.world.DimensionType; import net.minecraft.world.MinecraftException; import net.minecraft.world.World; -import net.minecraft.world.WorldManager; +import net.minecraft.world.ServerWorldEventHandler; import net.minecraft.world.WorldProvider; import net.minecraft.world.WorldServer; import net.minecraft.world.WorldServerMulti; @@ -209,7 +209,7 @@ public class DimensionManager //WorldSettings worldSettings = new WorldSettings(overworld.getWorldInfo()); WorldServer world = (dim == 0 ? overworld : (WorldServer)(new WorldServerMulti(mcServer, savehandler, dim, overworld, mcServer.theProfiler).init())); - world.addEventListener(new WorldManager(mcServer, world)); + world.addEventListener(new ServerWorldEventHandler(mcServer, world)); MinecraftForge.EVENT_BUS.post(new WorldEvent.Load(world)); if (!mcServer.isSinglePlayer()) { diff --git a/src/main/java/net/minecraftforge/common/ForgeChunkManager.java b/src/main/java/net/minecraftforge/common/ForgeChunkManager.java index 3f34aad5e7..25d3f3e831 100644 --- a/src/main/java/net/minecraftforge/common/ForgeChunkManager.java +++ b/src/main/java/net/minecraftforge/common/ForgeChunkManager.java @@ -22,8 +22,8 @@ import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.util.ClassInheritanceMultiMap; +import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.MathHelper; -import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraft.world.chunk.Chunk; @@ -90,7 +90,7 @@ public class ForgeChunkManager private static Map callbacks = Maps.newHashMap(); - private static Map> forcedChunks = new MapMaker().weakKeys().makeMap(); + private static Map> forcedChunks = new MapMaker().weakKeys().makeMap(); private static BiMap pendingEntities = HashBiMap.create(); private static Map> dormantChunkCache = new MapMaker().weakKeys().makeMap(); @@ -112,13 +112,13 @@ public class ForgeChunkManager public static Iterator getPersistentChunksIterableFor(final World world, Iterator chunkIterator) { - final ImmutableSetMultimap persistentChunksFor = getPersistentChunksFor(world); + final ImmutableSetMultimap persistentChunksFor = getPersistentChunksFor(world); final ImmutableSet.Builder builder = ImmutableSet.builder(); world.theProfiler.startSection("forcedChunkLoading"); - builder.addAll(Iterators.transform(persistentChunksFor.keys().iterator(), new Function() { + builder.addAll(Iterators.transform(persistentChunksFor.keys().iterator(), new Function() { @Nullable @Override - public Chunk apply(@Nullable ChunkCoordIntPair input) + public Chunk apply(@Nullable ChunkPos input) { return world.getChunkFromChunkCoords(input.chunkXPos, input.chunkZPos); } @@ -216,7 +216,7 @@ public class ForgeChunkManager { private String modId; private Type ticketType; - private LinkedHashSet requestedChunks; + private LinkedHashSet requestedChunks; private NBTTagCompound modData; public final World world; private int maxDepth; @@ -363,7 +363,7 @@ public class ForgeChunkManager /** * Gets a list of requested chunks for this ticket. */ - public ImmutableSet getChunkList() + public ImmutableSet getChunkList() { return ImmutableSet.copyOf(requestedChunks); } @@ -371,9 +371,9 @@ public class ForgeChunkManager public static class ForceChunkEvent extends Event { private final Ticket ticket; - private final ChunkCoordIntPair location; + private final ChunkPos location; - public ForceChunkEvent(Ticket ticket, ChunkCoordIntPair location) + public ForceChunkEvent(Ticket ticket, ChunkPos location) { this.ticket = ticket; this.location = location; @@ -384,7 +384,7 @@ public class ForgeChunkManager return ticket; } - public ChunkCoordIntPair getLocation() + public ChunkPos getLocation() { return location; } @@ -392,9 +392,9 @@ public class ForgeChunkManager public static class UnforceChunkEvent extends Event { private final Ticket ticket; - private final ChunkCoordIntPair location; + private final ChunkPos location; - public UnforceChunkEvent(Ticket ticket, ChunkCoordIntPair location) + public UnforceChunkEvent(Ticket ticket, ChunkPos location) { this.ticket = ticket; this.location = location; @@ -405,7 +405,7 @@ public class ForgeChunkManager return ticket; } - public ChunkCoordIntPair getLocation() + public ChunkPos getLocation() { return location; } @@ -444,7 +444,7 @@ public class ForgeChunkManager ArrayListMultimap newTickets = ArrayListMultimap.create(); tickets.put(world, newTickets); - forcedChunks.put(world, ImmutableSetMultimap.of()); + forcedChunks.put(world, ImmutableSetMultimap.of()); if (!(world instanceof WorldServer)) { @@ -743,7 +743,7 @@ public class ForgeChunkManager } if (ticket.requestedChunks!=null) { - for (ChunkCoordIntPair chunk : ImmutableSet.copyOf(ticket.requestedChunks)) + for (ChunkPos chunk : ImmutableSet.copyOf(ticket.requestedChunks)) { unforceChunk(ticket, chunk); } @@ -767,7 +767,7 @@ public class ForgeChunkManager * @param ticket The ticket registering the chunk * @param chunk The chunk to force */ - public static void forceChunk(Ticket ticket, ChunkCoordIntPair chunk) + public static void forceChunk(Ticket ticket, ChunkPos chunk) { if (ticket == null || chunk == null) { @@ -785,11 +785,11 @@ public class ForgeChunkManager ticket.requestedChunks.add(chunk); MinecraftForge.EVENT_BUS.post(new ForceChunkEvent(ticket, chunk)); - ImmutableSetMultimap newMap = ImmutableSetMultimap.builder().putAll(forcedChunks.get(ticket.world)).put(chunk, ticket).build(); + ImmutableSetMultimap newMap = ImmutableSetMultimap.builder().putAll(forcedChunks.get(ticket.world)).put(chunk, ticket).build(); forcedChunks.put(ticket.world, newMap); if (ticket.maxDepth > 0 && ticket.requestedChunks.size() > ticket.maxDepth) { - ChunkCoordIntPair removed = ticket.requestedChunks.iterator().next(); + ChunkPos removed = ticket.requestedChunks.iterator().next(); unforceChunk(ticket,removed); } } @@ -802,7 +802,7 @@ public class ForgeChunkManager * @param ticket The ticket holding the chunk list * @param chunk The chunk you wish to push to the end (so that it would be unloaded last) */ - public static void reorderChunk(Ticket ticket, ChunkCoordIntPair chunk) + public static void reorderChunk(Ticket ticket, ChunkPos chunk) { if (ticket == null || chunk == null || !ticket.requestedChunks.contains(chunk)) { @@ -817,7 +817,7 @@ public class ForgeChunkManager * @param ticket The ticket holding the chunk * @param chunk The chunk to unforce */ - public static void unforceChunk(Ticket ticket, ChunkCoordIntPair chunk) + public static void unforceChunk(Ticket ticket, ChunkPos chunk) { if (ticket == null || chunk == null) { @@ -825,9 +825,9 @@ public class ForgeChunkManager } ticket.requestedChunks.remove(chunk); MinecraftForge.EVENT_BUS.post(new UnforceChunkEvent(ticket, chunk)); - LinkedHashMultimap copy = LinkedHashMultimap.create(forcedChunks.get(ticket.world)); + LinkedHashMultimap copy = LinkedHashMultimap.create(forcedChunks.get(ticket.world)); copy.remove(chunk, ticket); - ImmutableSetMultimap newMap = ImmutableSetMultimap.copyOf(copy); + ImmutableSetMultimap newMap = ImmutableSetMultimap.copyOf(copy); forcedChunks.put(ticket.world,newMap); } @@ -857,9 +857,9 @@ public class ForgeChunkManager * @param world * @return the list of persistent chunks in the world */ - public static ImmutableSetMultimap getPersistentChunksFor(World world) + public static ImmutableSetMultimap getPersistentChunksFor(World world) { - return forcedChunks.containsKey(world) ? forcedChunks.get(world) : ImmutableSetMultimap.of(); + return forcedChunks.containsKey(world) ? forcedChunks.get(world) : ImmutableSetMultimap.of(); } static void saveWorld(World world) diff --git a/src/main/java/net/minecraftforge/common/ForgeHooks.java b/src/main/java/net/minecraftforge/common/ForgeHooks.java index 4ef224e53a..9a4e06f6fb 100644 --- a/src/main/java/net/minecraftforge/common/ForgeHooks.java +++ b/src/main/java/net/minecraftforge/common/ForgeHooks.java @@ -176,11 +176,11 @@ public class ForgeHooks if (!canHarvestBlock(state.getBlock(), player, world, pos)) { - return player.getBreakSpeed(state, pos) / hardness / 100F; + return player.getDigSpeed(state, pos) / hardness / 100F; } else { - return player.getBreakSpeed(state, pos) / hardness / 30F; + return player.getDigSpeed(state, pos) / hardness / 30F; } } @@ -705,7 +705,7 @@ public class ForgeHooks TileEntity tileentity = world.getTileEntity(pos); if (tileentity != null) { - Packet pkt = tileentity.getDescriptionPacket(); + Packet pkt = tileentity.func_189518_D_(); if (pkt != null) { entityPlayer.playerNetServerHandler.sendPacket(pkt); diff --git a/src/main/java/net/minecraftforge/common/chunkio/ChunkIOProvider.java b/src/main/java/net/minecraftforge/common/chunkio/ChunkIOProvider.java index 8399d3f9b1..741bdfe3ee 100644 --- a/src/main/java/net/minecraftforge/common/chunkio/ChunkIOProvider.java +++ b/src/main/java/net/minecraftforge/common/chunkio/ChunkIOProvider.java @@ -1,10 +1,10 @@ package net.minecraftforge.common.chunkio; -import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.storage.AnvilChunkLoader; import net.minecraft.world.gen.ChunkProviderServer; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.math.ChunkPos; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.world.ChunkDataEvent; @@ -78,8 +78,7 @@ class ChunkIOProvider implements Runnable MinecraftForge.EVENT_BUS.post(new ChunkDataEvent.Load(this.chunk, this.nbt)); // Don't call ChunkDataEvent.Load async this.chunk.setLastSaveTime(provider.worldObj.getTotalWorldTime()); - provider.id2ChunkMap.add(ChunkCoordIntPair.chunkXZ2Int(this.chunkInfo.x, this.chunkInfo.z), this.chunk); - provider.loadedChunks.add(this.chunk); + provider.id2ChunkMap.put(ChunkPos.chunkXZ2Int(this.chunkInfo.x, this.chunkInfo.z), this.chunk); this.chunk.onChunkLoad(); if (provider.chunkGenerator != null) diff --git a/src/main/java/net/minecraftforge/common/util/BlockSnapshot.java b/src/main/java/net/minecraftforge/common/util/BlockSnapshot.java index 6df3e7d310..17cc9c8810 100644 --- a/src/main/java/net/minecraftforge/common/util/BlockSnapshot.java +++ b/src/main/java/net/minecraftforge/common/util/BlockSnapshot.java @@ -45,7 +45,7 @@ public class BlockSnapshot implements Serializable if (te != null) { nbt = new NBTTagCompound(); - te.writeToNBT(getNbt()); + te.func_189515_b(getNbt()); } else nbt = null; if (DEBUG) @@ -139,7 +139,7 @@ public class BlockSnapshot implements Serializable public TileEntity getTileEntity() { if (getNbt() != null) - return TileEntity.createTileEntity(getWorld().getMinecraftServer(), getNbt()); + return TileEntity.func_189514_c(getNbt()); else return null; } diff --git a/src/main/java/net/minecraftforge/common/util/ChunkCoordComparator.java b/src/main/java/net/minecraftforge/common/util/ChunkCoordComparator.java index bb87e901b8..457758799a 100644 --- a/src/main/java/net/minecraftforge/common/util/ChunkCoordComparator.java +++ b/src/main/java/net/minecraftforge/common/util/ChunkCoordComparator.java @@ -1,10 +1,10 @@ package net.minecraftforge.common.util; import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.util.math.ChunkPos; // Sorter to load nearby chunks first -public class ChunkCoordComparator implements java.util.Comparator +public class ChunkCoordComparator implements java.util.Comparator { private int x; private int z; @@ -15,7 +15,7 @@ public class ChunkCoordComparator implements java.util.Comparator> 4; } - public int compare(ChunkCoordIntPair a, ChunkCoordIntPair b) + public int compare(ChunkPos a, ChunkPos b) { if (a.equals(b)) { diff --git a/src/main/java/net/minecraftforge/common/util/EnumHelper.java b/src/main/java/net/minecraftforge/common/util/EnumHelper.java index 147377690e..54c001c30d 100644 --- a/src/main/java/net/minecraftforge/common/util/EnumHelper.java +++ b/src/main/java/net/minecraftforge/common/util/EnumHelper.java @@ -13,7 +13,7 @@ import net.minecraft.enchantment.EnumEnchantmentType; import net.minecraft.entity.EnumCreatureAttribute; import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.item.EntityPainting.EnumArt; -import net.minecraft.entity.player.EntityPlayer.EnumStatus; +import net.minecraft.entity.player.EntityPlayer.SleepResult; import net.minecraft.item.EnumAction; import net.minecraft.item.EnumRarity; import net.minecraft.item.Item.ToolMaterial; @@ -47,7 +47,7 @@ public class EnumHelper {Sensitivity.class}, {RayTraceResult.Type.class}, {EnumSkyBlock.class, int.class}, - {EnumStatus.class}, + {SleepResult.class}, {ToolMaterial.class, int.class, int.class, float.class, float.class, int.class}, {EnumRarity.class, TextFormatting.class, String.class} }; @@ -92,9 +92,9 @@ public class EnumHelper { return addEnum(EnumSkyBlock.class, name, lightValue); } - public static EnumStatus addStatus(String name) + public static SleepResult addStatus(String name) { - return addEnum(EnumStatus.class, name); + return addEnum(SleepResult.class, name); } public static ToolMaterial addToolMaterial(String name, int harvestLevel, int maxUses, float efficiency, float damage, int enchantability) { diff --git a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java index 8afe6d354d..65042e1871 100644 --- a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java +++ b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java @@ -14,7 +14,7 @@ import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.monster.EntityZombie; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayer.EnumStatus; +import net.minecraft.entity.player.EntityPlayer.SleepResult; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -35,7 +35,7 @@ import net.minecraft.world.Explosion; import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraft.world.WorldSettings; -import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.Biome; import net.minecraft.world.chunk.ChunkPrimer; import net.minecraft.world.chunk.IChunkGenerator; import net.minecraft.world.storage.IPlayerFileData; @@ -162,7 +162,7 @@ public class ForgeEventFactory return event.getDroppedExperience(); } - public static List getPotentialSpawns(WorldServer world, EnumCreatureType type, BlockPos pos, List oldList) + public static List getPotentialSpawns(WorldServer world, EnumCreatureType type, BlockPos pos, List oldList) { WorldEvent.PotentialSpawns event = new WorldEvent.PotentialSpawns(world, type, pos, oldList); if (MinecraftForge.EVENT_BUS.post(event)) @@ -369,7 +369,7 @@ public class ForgeEventFactory return true; } - public static EnumStatus onPlayerSleepInBed(EntityPlayer player, BlockPos pos) + public static SleepResult onPlayerSleepInBed(EntityPlayer player, BlockPos pos) { PlayerSleepInBedEvent event = new PlayerSleepInBedEvent(player, pos); MinecraftForge.EVENT_BUS.post(event); diff --git a/src/main/java/net/minecraftforge/event/entity/player/PlayerSleepInBedEvent.java b/src/main/java/net/minecraftforge/event/entity/player/PlayerSleepInBedEvent.java index 29aa31a4ad..6aaf68a43f 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/PlayerSleepInBedEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/PlayerSleepInBedEvent.java @@ -1,7 +1,7 @@ package net.minecraftforge.event.entity.player; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayer.EnumStatus; +import net.minecraft.entity.player.EntityPlayer.SleepResult; import net.minecraft.util.math.BlockPos; /** @@ -20,7 +20,7 @@ import net.minecraft.util.math.BlockPos; **/ public class PlayerSleepInBedEvent extends PlayerEvent { - private EnumStatus result = null; + private SleepResult result = null; private final BlockPos pos; public PlayerSleepInBedEvent(EntityPlayer player, BlockPos pos) @@ -29,12 +29,12 @@ public class PlayerSleepInBedEvent extends PlayerEvent this.pos = pos; } - public EnumStatus getResultStatus() + public SleepResult getResultStatus() { return result; } - public void setResult(EnumStatus result) + public void setResult(SleepResult result) { this.result = result; } diff --git a/src/main/java/net/minecraftforge/event/terraingen/BiomeEvent.java b/src/main/java/net/minecraftforge/event/terraingen/BiomeEvent.java index acf68c04a5..a51f600792 100644 --- a/src/main/java/net/minecraftforge/event/terraingen/BiomeEvent.java +++ b/src/main/java/net/minecraftforge/event/terraingen/BiomeEvent.java @@ -3,7 +3,7 @@ package net.minecraftforge.event.terraingen; import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraft.block.state.IBlockState; import net.minecraft.world.biome.BiomeDecorator; -import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.Biome; /** * BiomeEvent is fired whenever an event involving biomes occurs.
@@ -14,14 +14,14 @@ import net.minecraft.world.biome.BiomeGenBase; **/ public class BiomeEvent extends Event { - private final BiomeGenBase biome; + private final Biome biome; - public BiomeEvent(BiomeGenBase biome) + public BiomeEvent(Biome biome) { this.biome = biome; } - public BiomeGenBase getBiome() + public Biome getBiome() { return biome; } @@ -45,7 +45,7 @@ public class BiomeEvent extends Event private final BiomeDecorator originalBiomeDecorator; private BiomeDecorator newBiomeDecorator; - public CreateDecorator(BiomeGenBase biome, BiomeDecorator original) + public CreateDecorator(Biome biome, BiomeDecorator original) { super(biome); originalBiomeDecorator = original; @@ -80,7 +80,7 @@ public class BiomeEvent extends Event private final int originalColor; private int newColor; - public BiomeColor(BiomeGenBase biome, int original) + public BiomeColor(Biome biome, int original) { super(biome); originalColor = original; @@ -115,7 +115,7 @@ public class BiomeEvent extends Event private final IBlockState original; private IBlockState replacement; - public GetVillageBlockID(BiomeGenBase biome, IBlockState original) + public GetVillageBlockID(Biome biome, IBlockState original) { super(biome); this.original = original; @@ -142,7 +142,7 @@ public class BiomeEvent extends Event */ public static class GetGrassColor extends BiomeColor { - public GetGrassColor(BiomeGenBase biome, int original) + public GetGrassColor(Biome biome, int original) { super(biome, original); } @@ -153,7 +153,7 @@ public class BiomeEvent extends Event */ public static class GetFoliageColor extends BiomeColor { - public GetFoliageColor(BiomeGenBase biome, int original) + public GetFoliageColor(Biome biome, int original) { super(biome, original); } @@ -164,7 +164,7 @@ public class BiomeEvent extends Event */ public static class GetWaterColor extends BiomeColor { - public GetWaterColor(BiomeGenBase biome, int original) + public GetWaterColor(Biome biome, int original) { super(biome, original); } diff --git a/src/main/java/net/minecraftforge/event/terraingen/DeferredBiomeDecorator.java b/src/main/java/net/minecraftforge/event/terraingen/DeferredBiomeDecorator.java index d41dde420a..4ff7cbf9f7 100644 --- a/src/main/java/net/minecraftforge/event/terraingen/DeferredBiomeDecorator.java +++ b/src/main/java/net/minecraftforge/event/terraingen/DeferredBiomeDecorator.java @@ -4,7 +4,7 @@ import java.util.Random; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeDecorator; -import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.Biome; import net.minecraftforge.common.MinecraftForge; public class DeferredBiomeDecorator extends BiomeDecorator { @@ -16,13 +16,13 @@ public class DeferredBiomeDecorator extends BiomeDecorator { } @Override - public void decorate(World par1World, Random par2Random, BiomeGenBase biome, BlockPos pos) + public void decorate(World par1World, Random par2Random, Biome biome, BlockPos pos) { fireCreateEventAndReplace(biome); // On first call to decorate, we fire and substitute ourselves, if we haven't already done so biome.theBiomeDecorator.decorate(par1World, par2Random, biome, pos); } - public void fireCreateEventAndReplace(BiomeGenBase biome) + public void fireCreateEventAndReplace(Biome biome) { // Copy any configuration from us to the real instance. wrapped.bigMushroomsPerChunk = bigMushroomsPerChunk; diff --git a/src/main/java/net/minecraftforge/event/world/ChunkWatchEvent.java b/src/main/java/net/minecraftforge/event/world/ChunkWatchEvent.java index bc33653b06..425b817faa 100644 --- a/src/main/java/net/minecraftforge/event/world/ChunkWatchEvent.java +++ b/src/main/java/net/minecraftforge/event/world/ChunkWatchEvent.java @@ -1,12 +1,12 @@ package net.minecraftforge.event.world; import net.minecraftforge.fml.common.eventhandler.Event; -import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.util.math.ChunkPos; /** * ChunkWatchEvent is fired when an event involving a chunk being watched occurs.
- * If a method utilizes this {@link Event} as its parameter, the method will + * If a method utilizes this {@link Event} as its parameter, the method will * receive every child event of this class.
*
* {@link #chunk} contains the ChunkCoordIntPair of the Chunk this event is affecting.
@@ -16,16 +16,16 @@ import net.minecraft.entity.player.EntityPlayerMP; **/ public class ChunkWatchEvent extends Event { - private final ChunkCoordIntPair chunk; + private final ChunkPos chunk; private final EntityPlayerMP player; - - public ChunkWatchEvent(ChunkCoordIntPair chunk, EntityPlayerMP player) + + public ChunkWatchEvent(ChunkPos chunk, EntityPlayerMP player) { this.chunk = chunk; this.player = player; } - public ChunkCoordIntPair getChunk() + public ChunkPos getChunk() { return chunk; } @@ -48,9 +48,9 @@ public class ChunkWatchEvent extends Event **/ public static class Watch extends ChunkWatchEvent { - public Watch(ChunkCoordIntPair chunk, EntityPlayerMP player) { super(chunk, player); } + public Watch(ChunkPos chunk, EntityPlayerMP player) { super(chunk, player); } } - + /** * ChunkWatchEvent.UnWatch is fired when an EntityPlayer stops watching a chunk.
* This event is fired when a chunk is removed from the watched chunks of an EntityPlayer in @@ -64,6 +64,6 @@ public class ChunkWatchEvent extends Event **/ public static class UnWatch extends ChunkWatchEvent { - public UnWatch(ChunkCoordIntPair chunkLocation, EntityPlayerMP player) { super(chunkLocation, player); } + public UnWatch(ChunkPos chunkLocation, EntityPlayerMP player) { super(chunkLocation, player); } } } diff --git a/src/main/java/net/minecraftforge/event/world/WorldEvent.java b/src/main/java/net/minecraftforge/event/world/WorldEvent.java index d54bd3b77b..20011042c7 100644 --- a/src/main/java/net/minecraftforge/event/world/WorldEvent.java +++ b/src/main/java/net/minecraftforge/event/world/WorldEvent.java @@ -7,7 +7,7 @@ import net.minecraft.entity.EnumCreatureType; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.WorldSettings; -import net.minecraft.world.biome.BiomeGenBase.SpawnListEntry; +import net.minecraft.world.biome.Biome.SpawnListEntry; import net.minecraftforge.fml.common.eventhandler.Cancelable; import net.minecraftforge.fml.common.eventhandler.Event; diff --git a/src/main/java/net/minecraftforge/fluids/BlockFluidBase.java b/src/main/java/net/minecraftforge/fluids/BlockFluidBase.java index fcde08de64..32fe7912f0 100644 --- a/src/main/java/net/minecraftforge/fluids/BlockFluidBase.java +++ b/src/main/java/net/minecraftforge/fluids/BlockFluidBase.java @@ -298,7 +298,7 @@ public abstract class BlockFluidBase extends Block implements IFluidBlock } @Override - public void onNeighborBlockChange(World world, BlockPos pos, IBlockState state, Block neighborBlock) + public void func_189540_a(IBlockState state, World world, BlockPos pos, Block neighborBlock) { world.scheduleUpdate(pos, this, tickRate); } diff --git a/src/main/java/net/minecraftforge/fluids/TileFluidHandler.java b/src/main/java/net/minecraftforge/fluids/TileFluidHandler.java index f90247f6aa..148e1d41a8 100644 --- a/src/main/java/net/minecraftforge/fluids/TileFluidHandler.java +++ b/src/main/java/net/minecraftforge/fluids/TileFluidHandler.java @@ -20,10 +20,11 @@ public class TileFluidHandler extends TileEntity implements IFluidHandler } @Override - public void writeToNBT(NBTTagCompound tag) + public NBTTagCompound func_189515_b(NBTTagCompound tag) { - super.writeToNBT(tag); + tag = super.func_189515_b(tag); tank.writeToNBT(tag); + return tag; } /* IFluidHandler */ diff --git a/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java b/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java index 87019d1575..017ebbe390 100644 --- a/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java +++ b/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java @@ -68,7 +68,7 @@ import net.minecraft.util.IThreadListener; import net.minecraft.util.ResourceLocation; import net.minecraft.util.StringUtils; import net.minecraft.world.WorldSettings; -import net.minecraft.world.storage.SaveFormatComparator; +import net.minecraft.world.storage.WorldSummary; import net.minecraft.world.storage.SaveFormatOld; import net.minecraftforge.common.ForgeModContainer; import net.minecraftforge.fml.client.registry.RenderingRegistry; @@ -683,7 +683,7 @@ public class FMLClientHandler implements IFMLSidedHandler { return new File(client.mcDataDir, "saves"); } - public void tryLoadExistingWorld(GuiWorldSelection selectWorldGUI, SaveFormatComparator comparator) + public void tryLoadExistingWorld(GuiWorldSelection selectWorldGUI, WorldSummary comparator) { File dir = new File(getSavesDir(), comparator.getFileName()); NBTTagCompound leveldat; diff --git a/src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java b/src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java index d963e0b7a3..4cbe2a89fc 100644 --- a/src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java +++ b/src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java @@ -366,7 +366,7 @@ public class FMLCommonHandler { for (ICrashCallable call: crashCallables) { - category.addCrashSectionCallable(call.getLabel(), call); + category.func_189529_a(call.getLabel(), call); } } diff --git a/src/main/java/net/minecraftforge/fml/common/ICrashCallable.java b/src/main/java/net/minecraftforge/fml/common/ICrashCallable.java index f24be0bdff..a2c3b3459a 100644 --- a/src/main/java/net/minecraftforge/fml/common/ICrashCallable.java +++ b/src/main/java/net/minecraftforge/fml/common/ICrashCallable.java @@ -5,16 +5,16 @@ * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html - * + * * Contributors: * cpw - implementation */ package net.minecraftforge.fml.common; -import java.util.concurrent.Callable; +import net.minecraft.crash.ICrashReportDetail; -public interface ICrashCallable extends Callable +public interface ICrashCallable extends ICrashReportDetail { String getLabel(); } diff --git a/src/main/java/net/minecraftforge/fml/common/registry/EntityRegistry.java b/src/main/java/net/minecraftforge/fml/common/registry/EntityRegistry.java index 36667aad06..225d55ef6f 100644 --- a/src/main/java/net/minecraftforge/fml/common/registry/EntityRegistry.java +++ b/src/main/java/net/minecraftforge/fml/common/registry/EntityRegistry.java @@ -22,8 +22,8 @@ import net.minecraft.entity.EntityList; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityTracker; import net.minecraft.entity.EnumCreatureType; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraft.world.biome.BiomeGenBase.SpawnListEntry; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.biome.Biome.SpawnListEntry; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.FMLLog; import net.minecraftforge.fml.common.Loader; @@ -326,9 +326,9 @@ public class EntityRegistry * @param typeOfCreature Type of spawn * @param biomes List of biomes */ - public static void addSpawn(Class entityClass, int weightedProb, int min, int max, EnumCreatureType typeOfCreature, BiomeGenBase... biomes) + public static void addSpawn(Class entityClass, int weightedProb, int min, int max, EnumCreatureType typeOfCreature, Biome... biomes) { - for (BiomeGenBase biome : biomes) + for (Biome biome : biomes) { List spawns = biome.getSpawnableList(typeOfCreature); @@ -358,7 +358,7 @@ public class EntityRegistry * @param biomes List of biomes */ @SuppressWarnings("unchecked") - public static void addSpawn(String entityName, int weightedProb, int min, int max, EnumCreatureType typeOfCreature, BiomeGenBase... biomes) + public static void addSpawn(String entityName, int weightedProb, int min, int max, EnumCreatureType typeOfCreature, Biome... biomes) { Class entityClazz = EntityList.stringToClassMapping.get(entityName); @@ -374,9 +374,9 @@ public class EntityRegistry * @param typeOfCreature type of spawn * @param biomes Biomes to remove from */ - public static void removeSpawn(Class entityClass, EnumCreatureType typeOfCreature, BiomeGenBase... biomes) + public static void removeSpawn(Class entityClass, EnumCreatureType typeOfCreature, Biome... biomes) { - for (BiomeGenBase biome : biomes) + for (Biome biome : biomes) { Iterator spawns = biome.getSpawnableList(typeOfCreature).iterator(); @@ -398,7 +398,7 @@ public class EntityRegistry * @param biomes Biomes to remove from */ @SuppressWarnings("unchecked") - public static void removeSpawn(String entityName, EnumCreatureType typeOfCreature, BiomeGenBase... biomes) + public static void removeSpawn(String entityName, EnumCreatureType typeOfCreature, Biome... biomes) { Class entityClazz = EntityList.stringToClassMapping.get(entityName); diff --git a/src/main/java/net/minecraftforge/fml/common/registry/ForgeRegistries.java b/src/main/java/net/minecraftforge/fml/common/registry/ForgeRegistries.java index 74917b1c9a..2fea34a5d3 100644 --- a/src/main/java/net/minecraftforge/fml/common/registry/ForgeRegistries.java +++ b/src/main/java/net/minecraftforge/fml/common/registry/ForgeRegistries.java @@ -6,7 +6,7 @@ import net.minecraft.item.Item; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionType; import net.minecraft.util.SoundEvent; -import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.Biome; import net.minecraftforge.fml.common.registry.VillagerRegistry.VillagerProfession; /** @@ -21,7 +21,7 @@ public class ForgeRegistries public static final IForgeRegistry BLOCKS = GameRegistry.findRegistry(Block.class); public static final IForgeRegistry ITEMS = GameRegistry.findRegistry(Item.class); public static final IForgeRegistry POTIONS = GameRegistry.findRegistry(Potion.class); - public static final IForgeRegistry BIOMES = GameRegistry.findRegistry(BiomeGenBase.class); + public static final IForgeRegistry BIOMES = GameRegistry.findRegistry(Biome.class); public static final IForgeRegistry SOUND_EVENTS = GameRegistry.findRegistry(SoundEvent.class); public static final IForgeRegistry POTION_TYPES = GameRegistry.findRegistry(PotionType.class); public static final IForgeRegistry ENCHANTMENTS = GameRegistry.findRegistry(Enchantment.class); diff --git a/src/main/java/net/minecraftforge/fml/common/registry/GameData.java b/src/main/java/net/minecraftforge/fml/common/registry/GameData.java index 15a937f2a6..2e000eea7c 100644 --- a/src/main/java/net/minecraftforge/fml/common/registry/GameData.java +++ b/src/main/java/net/minecraftforge/fml/common/registry/GameData.java @@ -26,7 +26,7 @@ import net.minecraft.util.ObjectIntIdentityMap; import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundEvent; import net.minecraft.util.registry.RegistryNamespaced; -import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.Biome; import net.minecraftforge.fml.common.FMLLog; import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.ModContainer; @@ -61,7 +61,7 @@ public class GameData iBlockRegistry = PersistentRegistryManager.createRegistry(PersistentRegistryManager.BLOCKS, Block.class, new ResourceLocation("minecraft:air"), MIN_BLOCK_ID, MAX_BLOCK_ID, true, BlockCallbacks.INSTANCE, BlockCallbacks.INSTANCE, BlockCallbacks.INSTANCE); iItemRegistry = PersistentRegistryManager.createRegistry(PersistentRegistryManager.ITEMS, Item.class, null, MIN_ITEM_ID, MAX_ITEM_ID, true, ItemCallbacks.INSTANCE, ItemCallbacks.INSTANCE, ItemCallbacks.INSTANCE); iPotionRegistry = PersistentRegistryManager.createRegistry(PersistentRegistryManager.POTIONS, Potion.class, null, MIN_POTION_ID, MAX_POTION_ID, false, PotionCallbacks.INSTANCE, PotionCallbacks.INSTANCE, PotionCallbacks.INSTANCE); - iBiomeRegistry = PersistentRegistryManager.createRegistry(PersistentRegistryManager.BIOMES, BiomeGenBase.class, null, MIN_BIOME_ID, MAX_BIOME_ID, false, BiomeCallbacks.INSTANCE, BiomeCallbacks.INSTANCE, BiomeCallbacks.INSTANCE); + iBiomeRegistry = PersistentRegistryManager.createRegistry(PersistentRegistryManager.BIOMES, Biome.class, null, MIN_BIOME_ID, MAX_BIOME_ID, false, BiomeCallbacks.INSTANCE, BiomeCallbacks.INSTANCE, BiomeCallbacks.INSTANCE); iSoundEventRegistry = PersistentRegistryManager.createRegistry(PersistentRegistryManager.SOUNDEVENTS, SoundEvent.class, null, MIN_SOUND_ID, MAX_SOUND_ID, false, null, null, null); ResourceLocation WATER = new ResourceLocation("water"); iPotionTypeRegistry = PersistentRegistryManager.createRegistry(PersistentRegistryManager.POTIONTYPES, PotionType.class, WATER, MIN_POTIONTYPE_ID, MAX_POTIONTYPE_ID, false, null, null, null); @@ -71,7 +71,7 @@ public class GameData private final FMLControlledNamespacedRegistry iBlockRegistry; private final FMLControlledNamespacedRegistry iItemRegistry; private final FMLControlledNamespacedRegistry iPotionRegistry; - private final FMLControlledNamespacedRegistry iBiomeRegistry; + private final FMLControlledNamespacedRegistry iBiomeRegistry; private final FMLControlledNamespacedRegistry iSoundEventRegistry; private final FMLControlledNamespacedRegistry iPotionTypeRegistry; private final FMLControlledNamespacedRegistry iEnchantmentRegistry; @@ -98,7 +98,7 @@ public class GameData /** INTERNAL ONLY */ @Deprecated - public static FMLControlledNamespacedRegistry getBiomeRegistry() { return getMain().iBiomeRegistry; } + public static FMLControlledNamespacedRegistry getBiomeRegistry() { return getMain().iBiomeRegistry; } /** INTERNAL ONLY */ @Deprecated @@ -356,12 +356,12 @@ public class GameData // no op for the minute? } } - private static class BiomeCallbacks implements IForgeRegistry.AddCallback,IForgeRegistry.ClearCallback,IForgeRegistry.CreateCallback + private static class BiomeCallbacks implements IForgeRegistry.AddCallback,IForgeRegistry.ClearCallback,IForgeRegistry.CreateCallback { static final BiomeCallbacks INSTANCE = new BiomeCallbacks(); @Override - public void onAdd(BiomeGenBase potion, int id, Map slaves) { + public void onAdd(Biome potion, int id, Map slaves) { // no op for the minute? } diff --git a/src/main/java/net/minecraftforge/fml/server/FMLServerHandler.java b/src/main/java/net/minecraftforge/fml/server/FMLServerHandler.java index f9e7db1d65..7d82c64d78 100644 --- a/src/main/java/net/minecraftforge/fml/server/FMLServerHandler.java +++ b/src/main/java/net/minecraftforge/fml/server/FMLServerHandler.java @@ -20,13 +20,13 @@ import java.util.Set; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; -import net.minecraft.command.ServerCommand; import net.minecraft.launchwrapper.Launch; import net.minecraft.network.INetHandler; import net.minecraft.network.NetHandlerPlayServer; import net.minecraft.network.NetworkManager; import net.minecraft.server.MinecraftServer; import net.minecraft.server.dedicated.DedicatedServer; +import net.minecraft.server.dedicated.PendingCommand; import net.minecraft.util.IThreadListener; import net.minecraft.util.text.translation.LanguageMap; import net.minecraft.world.storage.SaveFormatOld; @@ -183,7 +183,7 @@ public class FMLServerHandler implements IFMLSidedHandler // rudimentary command processing, check for fml confirm/cancel and stop commands synchronized (dedServer.pendingCommandList) { - for (Iterator it = GenericIterableFactory.newCastingIterable(dedServer.pendingCommandList, ServerCommand.class).iterator(); it.hasNext(); ) + for (Iterator it = GenericIterableFactory.newCastingIterable(dedServer.pendingCommandList, PendingCommand.class).iterator(); it.hasNext(); ) { String cmd = it.next().command.trim().toLowerCase(); diff --git a/src/main/resources/forge.exc b/src/main/resources/forge.exc index ddeb959c8b..9e7a69fda5 100644 --- a/src/main/resources/forge.exc +++ b/src/main/resources/forge.exc @@ -5,27 +5,30 @@ net/minecraft/client/renderer/entity/RenderItem.renderDroppedItem(Lnet/minecraft net/minecraft/client/renderer/entity/RenderItem.renderItemIntoGUI(Lnet/minecraft/client/gui/FontRenderer;Lnet/minecraft/client/renderer/texture/TextureManager;Lnet/minecraft/item/ItemStack;IIZ)V=|p_77015_1_,p_77015_2_,p_77015_3_,p_77015_4_,p_77015_5_,renderEffect net/minecraft/server/management/PlayerList.transferPlayerToDimension(Lnet/minecraft/entity/player/EntityPlayerMP;ILnet/minecraft/world/Teleporter;)V=|p_187242_1_,p_187242_2_,teleporter net/minecraft/server/management/PlayerList.transferEntityToWorld(Lnet/minecraft/entity/Entity;ILnet/minecraft/world/WorldServer;Lnet/minecraft/world/WorldServer;Lnet/minecraft/world/Teleporter;)V=|p_82448_1_,p_82448_2_,p_82448_3_,p_82448_4_,teleporter -net/minecraft/world/World.getBiomeGenForCoordsBody(II)Lnet/minecraft/world/biome/BiomeGenBase;=|p_72807_1_,p_72807_2_ +net/minecraft/world/World.getBiomeGenForCoordsBody(II)Lnet/minecraft/world/biome/Biome;=|p_72807_1_,p_72807_2_ net/minecraft/world/World.getSunBrightnessFactor(F)F=|p_72967_1_ net/minecraft/world/World.getSunBrightnessBody(F)F=|p_72971_1_ -net/minecraft/world/World.getSkyColorBody(Lnet/minecraft/entity/Entity;F)Lnet/minecraft/util/Vec3;=|p_72833_1_,p_72833_2_ -net/minecraft/world/World.drawCloudsBody(F)Lnet/minecraft/util/Vec3;=|p_72824_1_ +net/minecraft/world/World.getSkyColorBody(Lnet/minecraft/entity/Entity;F)Lnet/minecraft/util/math/Vec3d;=|p_72833_1_,p_72833_2_ +net/minecraft/world/World.drawCloudColorBody(F)Lnet/minecraft/util/math/Vec3d;=|p_72824_1_ net/minecraft/world/World.getStarBrightnessBody(F)F=|p_72880_1_ -net/minecraft/world/World.canBlockFreezeBody(Lnet/minecraft/util/BlockPos;Z)Z=|p_175670_1_,p_175670_2_, -net/minecraft/world/World.canSnowAtBody(Lnet/minecraft/util/BlockPos;Z)Z=|p_175708_1_,p_175708_2_ -net/minecraft/world/World.canMineBlockBody(Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;)Z=|p_175660_1_,p_175660_2_ -net/minecraft/world/WorldServer.canMineBlockBody(Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;)Z=|p_175660_1_,p_175660_2_ -net/minecraft/world/biome/BiomeGenBase.(IZ)V=|p_i1971_1_,register +net/minecraft/world/World.canBlockFreezeBody(Lnet/minecraft/util/math/BlockPos;Z)Z=|p_175670_1_,p_175670_2_, +net/minecraft/world/World.canSnowAtBody(Lnet/minecraft/util/math/BlockPos;Z)Z=|p_175708_1_,p_175708_2_ +net/minecraft/world/World.canMineBlockBody(Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/math/BlockPos;)Z=|p_175660_1_,p_175660_2_ +net/minecraft/world/World.getBiomeForCoordsBody(Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/world/biome/Biome;=|p_180494_1_ +net/minecraft/world/World.markAndNotifyBlock(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/world/chunk/Chunk;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/state/IBlockState;I)V=|p_180501_1_,chunk,iblockstate,p_180501_2_,p_180501_3_ +net/minecraft/world/World.getCloudColorBody(F)Lnet/minecraft/util/math/Vec3d;=|p_72824_1_ +net/minecraft/world/WorldServer.canMineBlockBody(Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/math/BlockPos;)Z=|p_175660_1_,p_175660_2_ +net/minecraft/world/biome/Biome.(IZ)V=|p_i1971_1_,register net/minecraft/world/chunk/storage/AnvilChunkLoader.loadChunk__Async(Lnet/minecraft/world/World;II)[Ljava/lang/Object;=|p_75815_1_,p_75815_2_,p_75815_3_ net/minecraft/world/chunk/storage/AnvilChunkLoader.checkedReadChunkFromNBT__Async(Lnet/minecraft/world/World;IILnet/minecraft/nbt/NBTTagCompound;)[Ljava/lang/Object;=|p_75822_1_,p_75822_2_,p_75822_3_,p_75822_4_ net/minecraft/world/chunk/storage/AnvilChunkLoader.loadEntities(Lnet/minecraft/world/World;Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/world/chunk/Chunk;)V=|p_75823_1_,p_75823_2_,chunk net/minecraft/world/gen/ChunkProviderServer.loadChunk(II;Ljava/lang/Runnable;)Lnet/minecraft/world/chunk/Chunk;=|p_186025_1_,p_186025_2_,runnable net/minecraft/world/gen/ChunkProviderServer.originalLoadChunk(II)Lnet/minecraft/world/chunk/Chunk;=|p_186025_1_,p_186025_2_ -net/minecraft/block/BlockFire.tryCatchFire(Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;ILjava/util/Random;ILnet/minecraft/util/EnumFacing;)V=|p_176536_1_,p_176536_2_,p_176536_3_,p_176536_4_,p_176536_5_,face -net/minecraft/block/BlockSkull.getDrops(Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)Ljava/util/List;=|p_180663_1_,p_180663_2_,p_180663_3_,fortune -net/minecraft/item/ItemDye.applyBonemeal(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)Z=|p_179234_0_,p_179234_1_,p_179234_2_,player -net/minecraft/server/management/ItemInWorldManager.removeBlock(Lnet/minecraft/util/BlockPos;Z)Z=|p_180235_1_,canHarvest +net/minecraft/block/BlockFire.tryCatchFire(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;ILjava/util/Random;ILnet/minecraft/util/EnumFacing;)V=|p_176536_1_,p_176536_2_,p_176536_3_,p_176536_4_,p_176536_5_,face +net/minecraft/block/BlockSkull.getDrops(Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;I)Ljava/util/List;=|p_180663_1_,p_180663_2_,p_180663_3_,fortune +net/minecraft/item/ItemDye.applyBonemeal(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)Z=|p_179234_0_,p_179234_1_,p_179234_2_,player +net/minecraft/server/management/ItemInWorldManager.removeBlock(Lnet/minecraft/util/math/BlockPos;Z)Z=|p_180235_1_,canHarvest net/minecraft/client/gui/GuiScreen.drawHoveringText(Ljava/util/List;IILnet/minecraft/client/gui/FontRenderer;)V=|p_146283_1_,p_146283_2_,p_146283_3_,font net/minecraft/block/state/BlockState.(Lnet/minecraft/block/Block;[Lnet/minecraft/block/properties/IProperty;Lcom/google/common/collect/ImmutableMap;)V=|p_i45663_1_,p_i45663_2_,unlistedProperties net/minecraft/client/renderer/entity/RenderItem.applyVanillaTransform(Lnet/minecraft/client/renderer/block/model/ItemTransformVec3f;)V=|p_175034_1_ @@ -36,7 +39,7 @@ net/minecraft/client/renderer/block/model/FaceBakery.makeQuadVertexData(Lnet/min net/minecraft/client/renderer/block/model/FaceBakery.fillVertexData([IILnet/minecraft/util/EnumFacing;Lnet/minecraft/client/renderer/block/model/BlockFaceUV;[FLnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraftforge/common/model/ITransformation;Lnet/minecraft/client/renderer/block/model/BlockPartRotation;Z)V=|p_188015_1_,p_188015_2_,p_188015_3_,p_188015_4_,p_188015_5_,p_188015_6_,p_188015_7_,p_188015_8_,p_188015_9_ net/minecraft/client/renderer/block/model/FaceBakery.rotateVertex(Lorg/lwjgl/util/vector/Vector3f;Lnet/minecraft/util/EnumFacing;ILnet/minecraftforge/common/model/ITransformation)I=|p_188011_1_,p_188011_2_,p_188011_3_,p_188011_4_ -net/minecraft/item/ItemBlock.setTileEntityNBT(Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)Z=|p_179224_0_,p_179224_1_,p_179224_2_,player +net/minecraft/item/ItemBlock.setTileEntityNBT(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)Z=|p_179224_0_,p_179224_1_,p_179224_2_,player net/minecraft/server/management/PlayerList.initializeConnectionToPlayer(Lnet/minecraft/network/NetworkManager;Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/network/NetHandlerPlayServer;)V=|p_72355_1_,p_72355_2_,nethandlerplayserver net/minecraft/item/ItemMonsterPlacer.spawnCreature(Lnet/minecraft/world/World;Ljava/lang/String;DDD)Lnet/minecraft/entity/Entity;=|p_77840_0_,name,p_77840_2_,p_77840_4_,p_77840_6_ @@ -44,9 +47,9 @@ net/minecraft/item/ItemMonsterPlacer.spawnCreature(Lnet/minecraft/world/World;Lj net/minecraft/stats/StatList.mergeStatBases([Lnet/minecraft/stats/StatBase;Lnet/minecraft/block/Block;Lnet/minecraft/block/Block;Z)V=|p_151180_0_,p_151180_1_,p_151180_2_,useItemIds net/minecraft/item/ItemStack.(Lnet/minecraft/item/Item;IILnet/minecraft/nbt/NBTTagCompound;)V=|p_i1881_1_,p_i1881_2_,p_i1881_3_,capNBT -net/minecraft/block/BlockRedstoneWire.canConnectTo(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;)Z=p_176343_0_,p_176343_1_,world,pos +net/minecraft/block/BlockRedstoneWire.canConnectTo(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;)Z=|p_176343_0_,p_176343_1_,world,pos net/minecraft/client/renderer/block/model/BakedQuad.([IILnet/minecraft/util/EnumFacing;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;ZLnet/minecraft/client/renderer/vertex/VertexFormat;)V=|p_i46574_1_,p_i46574_2_,p_i46574_3_,p_i46574_4_,applyDiffuseLighting,format -net/minecraft/client/renderer/texture/TextureMap.(Ljava/lang/String;Lnet/minecraft/client/renderer/texture/IIconCreator;Z)V=|p_i46100_1_,p_i46100_2_,skipFirst +net/minecraft/client/renderer/texture/TextureMap.(Ljava/lang/String;Lnet/minecraft/client/renderer/texture/ITextureMapPopulator;Z)V=|p_i46100_1_,p_i46100_2_,skipFirst net/minecraft/world/storage/loot/LootPool.([Lnet/minecraft/world/storage/loot/LootEntry;[Lnet/minecraft/world/storage/loot/conditions/LootCondition;Lnet/minecraft/world/storage/loot/RandomValueRange;Lnet/minecraft/world/storage/loot/RandomValueRange;Ljava/lang/String;)V=|p_i46643_1_,p_i46643_2_,p_i46643_3_,p_i46643_4_ net/minecraft/world/storage/loot/LootEntry.(II[Lnet/minecraft/world/storage/loot/conditions/LootCondition;Ljava/lang/String;)V=|p_i46642_1_,p_i46642_2_,p_i46642_3_,entryName diff --git a/src/main/resources/forge_at.cfg b/src/main/resources/forge_at.cfg index 64c6552b9d..93aafaae5e 100644 --- a/src/main/resources/forge_at.cfg +++ b/src/main/resources/forge_at.cfg @@ -1,22 +1,14 @@ #Main Forge Access Transformer configuration file -# EntityFishHook -#public net.minecraft.entity.projectile.EntityFishHook field_146041_e -#public net.minecraft.entity.projectile.EntityFishHook field_146036_f -#public net.minecraft.entity.projectile.EntityFishHook field_146039_d -# EntityEnderman -#public tg.br #FD:EntityEnderman/field_70827_d #carriableBlocks # SoundManager public net.minecraft.client.audio.SoundManager field_148622_c #sndHandler # Block public net.minecraft.block.Block (Lnet/minecraft/block/material/Material;)V -#public net.minecraft.block.Block func_149672_a(Lnet.minecraft.block.Block$SoundType;)Lnet.minecraft.block.Block; #setStepSound public net.minecraft.block.Block func_149752_b(F)Lnet.minecraft.block.Block; #setResistance public net.minecraft.block.Block func_149711_c(F)Lnet.minecraft.block.Block; #setHardness public net.minecraft.block.Block func_149713_g(I)Lnet.minecraft.block.Block; #setLightOpacity public net.minecraft.block.Block func_149715_a(F)Lnet.minecraft.block.Block; #setLightValue public net.minecraft.block.Block func_149722_s()Lnet.minecraft.block.Block; #setBlockUnbreakable public net.minecraft.block.Block func_149675_a(Z)Lnet.minecraft.block.Block; #setTickRandomly -#public net.minecraft.block.Block func_149676_a(FFFFFF)V #setBlockBounds public net.minecraft.block.Block func_180637_b(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;I)V # dropXpOnBlockBreak # BlockFire public net.minecraft.block.BlockFire func_176532_c(Lnet/minecraft/block/Block;)I # getFireSpreadSpeed @@ -24,34 +16,25 @@ public net.minecraft.block.BlockFire func_176534_d(Lnet/minecraft/block/Block;)I # Item public net.minecraft.item.Item func_77656_e(I)Lnet.minecraft.item.Item; #setMaxDamage public net.minecraft.item.Item func_77627_a(Z)Lnet.minecraft.item.Item; #setHasSubtypes -#public net.minecraft.item.Item func_77631_c(Ljava.lang.String;)Lnet.minecraft.item.Item; #setPotionEffect -# Potion -#public-f net.minecraft.potion.Potion field_76415_H #id # EntityPlayer -#public net.minecraft.entity.player.EntityPlayer func_71012_a(Lnet/minecraft/entity/item/EntityItem;)V #joinEntityItemWithWorld -#public net.minecraft.client.entity.EntityPlayerSP func_71012_a(Lnet/minecraft/entity/item/EntityItem;)V #joinEntityItemWithWorld public net.minecraft.entity.player.EntityPlayer func_71053_j()V #closeScreen -#public uf.b #FD:EntityPlayer/field_71076_b #sleepTimer # EntityTrackerEntry public net.minecraft.entity.EntityTrackerEntry field_73134_o # trackingPlayers -# World Gen Chests Related -public net.minecraft.util.WeightedRandomChestContent * # Save Location public net.minecraft.world.chunk.storage.AnvilChunkLoader field_75825_d # chunkSaveLocation public net.minecraft.world.gen.ChunkProviderServer field_73247_e # currentChunkLoader # World public-f net.minecraft.world.World field_72982_D #villageCollectionObj -#public abw.G #FD:World/field_72993_I #activeChunkSet -# BiomeGenBase -public net.minecraft.world.biome.BiomeGenBase *() #Everything protected->public -public net.minecraft.world.biome.BiomeGenForest *() -public net.minecraft.world.biome.BiomeGenHills *() -public net.minecraft.world.biome.BiomeGenMesa *() -public net.minecraft.world.biome.BiomeGenPlains *() -public net.minecraft.world.biome.BiomeGenSavanna *() -public net.minecraft.world.biome.BiomeGenSnow *() -public net.minecraft.world.biome.BiomeGenTaiga *() -public net.minecraft.world.biome.BiomeGenBase$BiomeProperties *() +# Biome +public net.minecraft.world.biome.Biome *() #Everything protected->public +public net.minecraft.world.biome.BiomeForest *() +public net.minecraft.world.biome.BiomeHills *() +public net.minecraft.world.biome.BiomeMesa *() +public net.minecraft.world.biome.BiomePlains *() +public net.minecraft.world.biome.BiomeSavanna *() +public net.minecraft.world.biome.BiomeSnow *() +public net.minecraft.world.biome.BiomeTaiga *() +public net.minecraft.world.biome.Biome$BiomeProperties *() # Map Gen Biome Lists public+f net.minecraft.world.gen.structure.MapGenStronghold field_151546_e # MapGenVillage @@ -106,7 +89,7 @@ public net.minecraft.client.renderer.entity.RenderBiped field_77071_a #modelBipe # ChunkProviderServer public net.minecraft.world.gen.ChunkProviderServer field_186029_c # chunkGenerator public net.minecraft.world.gen.ChunkProviderServer field_73244_f # loadedChunkHashMap -public net.minecraft.world.gen.ChunkProviderServer field_73245_g # loadedChunks +#public net.minecraft.world.gen.ChunkProviderServer field_73245_g # loadedChunks public net.minecraft.world.gen.ChunkProviderServer field_73251_h # worldObj # RenderEntityItem @@ -248,11 +231,6 @@ protected net.minecraft.client.gui.FontRenderer field_78296_k # posY protected net.minecraft.client.gui.FontRenderer func_78266_a(IZ)F # renderDefaultChar protected net.minecraft.client.gui.FontRenderer func_78277_a(CZ)F # renderUnicodeChar -# ServerConfigurationManager -#public net.minecraft.server.management.ServerConfigurationManager field_72404_b #playerEntityList - private in 1.8.8 -#public net.minecraft.server.management.ServerConfigurationManager field_177454_f #uuidToPlayerMap - private in 1.8.8 - -# ChunkProviderServer # ChunkProviderEnd private-f net.minecraft.world.gen.ChunkProviderEnd field_185969_i #lperlin1 private-f net.minecraft.world.gen.ChunkProviderEnd field_185970_j #lperlin2 @@ -284,7 +262,7 @@ private-f net.minecraft.world.gen.ChunkProviderHell field_185939_I #netherCaveGe private-f net.minecraft.world.gen.ChunkProviderHell field_73172_c #netherBridgeGenerator # PlayerManager -private-f net.minecraft.server.management.PlayerManager$PlayerInstance field_187285_e # field_187285_e +private-f net.minecraft.server.management.PlayerChunkMapEntry field_187285_e # field_187285_e # RenderLivingBase public net.minecraft.client.renderer.entity.RenderLivingBase func_177094_a(Lnet/minecraft/client/renderer/entity/layers/LayerRenderer;)Z # addLayer diff --git a/src/test/java/net/minecraftforge/debug/DynBucketTest.java b/src/test/java/net/minecraftforge/debug/DynBucketTest.java index 1846a92c2e..1274077c60 100644 --- a/src/test/java/net/minecraftforge/debug/DynBucketTest.java +++ b/src/test/java/net/minecraftforge/debug/DynBucketTest.java @@ -369,16 +369,17 @@ public class DynBucketTest } @Override - public void writeToNBT(NBTTagCompound tags) + public NBTTagCompound func_189515_b(NBTTagCompound tags) { - super.writeToNBT(tags); + tags = super.func_189515_b(tags); tank.writeToNBT(tags); + return tags; } @Override - public Packet getDescriptionPacket() { + public SPacketUpdateTileEntity func_189518_D_() { NBTTagCompound tag = new NBTTagCompound(); - writeToNBT(tag); + func_189515_b(tag); return new SPacketUpdateTileEntity(this.getPos(), this.getBlockMetadata(), tag); } diff --git a/src/test/java/net/minecraftforge/test/NoBedSleepingTest.java b/src/test/java/net/minecraftforge/test/NoBedSleepingTest.java index fe1cf7f39c..471a8e0bda 100644 --- a/src/test/java/net/minecraftforge/test/NoBedSleepingTest.java +++ b/src/test/java/net/minecraftforge/test/NoBedSleepingTest.java @@ -3,7 +3,7 @@ package net.minecraftforge.test; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayer.EnumStatus; +import net.minecraft.entity.player.EntityPlayer.SleepResult; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTBase; @@ -162,8 +162,8 @@ public class NoBedSleepingTest { if (!world.isRemote) { - final EnumStatus result = player.trySleep(player.getPosition()); - if (result == EnumStatus.OK) + final SleepResult result = player.trySleep(player.getPosition()); + if (result == SleepResult.OK) { final IExtraSleeping sleep = player.getCapability(SLEEP_CAP, null); if (sleep != null) From cdc86e9af646a562008a8179165e93b4b855ec80 Mon Sep 17 00:00:00 2001 From: LexManos Date: Wed, 18 May 2016 05:11:56 -0700 Subject: [PATCH 02/45] Update mappoings snapshot to 20160518 --- build.gradle | 5 +- mdk/build.gradle | 2 +- .../entity/passive/EntityVillager.java.patch | 7 + .../item/ItemMonsterPlacer.java.patch | 2 +- .../net/minecraft/world/World.java.patch | 2 +- .../client/ClientCommandHandler.java | 2 +- .../minecraftforge/client/GuiIngameForge.java | 28 +- .../client/model/ModelLoader.java | 16 +- .../model/animation/AnimationModelBase.java | 2 +- .../client/model/animation/FastTESR.java | 2 +- .../client/settings/KeyModifier.java | 4 +- .../common/BiomeDictionary.java | 100 ++--- .../minecraftforge/common/BiomeManager.java | 42 +-- .../net/minecraftforge/common/ForgeHooks.java | 42 +-- .../common/brewing/VanillaBrewingRecipe.java | 2 +- .../common/property/ExtendedBlockState.java | 4 +- .../common/util/BlockSnapshot.java | 4 +- .../event/ForgeEventFactory.java | 6 +- .../event/world/BlockEvent.java | 4 +- .../minecraftforge/fluids/BlockFluidBase.java | 86 ++--- .../fluids/BlockFluidClassic.java | 8 +- .../java/net/minecraftforge/fluids/Fluid.java | 12 +- .../fluids/FluidContainerRegistry.java | 12 +- .../minecraftforge/fluids/FluidRegistry.java | 4 +- .../fluids/TileFluidHandler.java | 4 +- .../fluids/UniversalBucket.java | 10 +- .../fml/client/FMLClientHandler.java | 2 +- .../minecraftforge/fml/client/GuiModList.java | 2 +- .../fml/client/GuiScrollingList.java | 2 +- .../fml/client/config/GuiButtonExt.java | 2 +- .../fml/client/config/GuiCheckBox.java | 2 +- .../client/config/GuiUnicodeGlyphButton.java | 3 +- .../fml/common/FMLCommonHandler.java | 2 +- .../common/network/FMLOutboundHandler.java | 8 +- .../network/handshake/NetworkDispatcher.java | 4 +- .../network/internal/EntitySpawnHandler.java | 2 +- .../network/internal/FMLNetworkHandler.java | 2 +- .../fml/common/registry/EntityRegistry.java | 131 +------ .../FMLControlledNamespacedRegistry.java | 2 +- .../fml/common/registry/ObjectHolderRef.java | 10 +- .../fml/common/registry/VillagerRegistry.java | 192 +--------- .../items/ItemHandlerHelper.java | 2 +- .../minecraftforge/oredict/OreDictionary.java | 354 +++++++++--------- src/main/resources/forge.exc | 2 +- .../minecraftforge/debug/DynBucketTest.java | 48 +-- .../debug/ForgeBlockStatesLoaderDebug.java | 2 +- .../debug/ItemLayerModelDebug.java | 2 +- .../minecraftforge/debug/ItemTileDebug.java | 4 +- .../minecraftforge/debug/LootTablesDebug.java | 2 +- .../debug/ModelAnimationDebug.java | 10 +- .../debug/ModelBakeEventDebug.java | 4 +- .../minecraftforge/debug/ModelFluidDebug.java | 12 +- .../debug/ModelLoaderRegistryDebug.java | 32 +- .../debug/MultiLayerModelDebug.java | 8 +- .../debug/PotionRegistryDebug.java | 4 +- .../test/BrewingRecipeRegistryTest.java | 32 +- .../minecraftforge/test/FOVModifierTest.java | 6 +- .../test/NoBedSleepingTest.java | 2 +- .../test/PlayerInteractEventTest.java | 16 +- .../test/TestCapabilityMod.java | 4 +- 60 files changed, 514 insertions(+), 810 deletions(-) diff --git a/build.gradle b/build.gradle index cb1a1ed106..6d739dd74a 100644 --- a/build.gradle +++ b/build.gradle @@ -27,8 +27,7 @@ apply plugin: "net.minecraftforge.gradle.launch4j" minecraft { version = "1.9.4" - mappings = 'snapshot_nodoc_20160312' - //mappings = "snapshot_nodoc_20151122" + mappings = 'snapshot_nodoc_20160518' workspaceDir = "projects" versionJson = "jsons/1.9.4-dev.json" buildUserdev = true @@ -377,6 +376,7 @@ task setupForge { dependsOn 'setup' } task buildPackages { dependsOn 'build' } //Temporary hack to fix compile errors caused by mappings shading in Bootstrap +/* task fixParams << { logger.lifecycle('Fixing param names!') def params = new File(extractMcpMappings.destinationDir, 'params.csv') @@ -386,3 +386,4 @@ task fixParams << { } fixParams.dependsOn('extractMcpMappings') extractMcpMappings.finalizedBy('fixParams') +*/ \ No newline at end of file diff --git a/mdk/build.gradle b/mdk/build.gradle index 1c5f080b3f..51920344de 100644 --- a/mdk/build.gradle +++ b/mdk/build.gradle @@ -9,7 +9,7 @@ buildscript { } } dependencies { - classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT' + classpath 'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT' } } apply plugin: 'net.minecraftforge.gradle.forge' diff --git a/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch b/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch index 9e29853472..c1df5d02d8 100644 --- a/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch +++ b/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch @@ -162,3 +162,10 @@ this.func_175552_ct(); return p_180482_2_; } +@@ -1030,4 +1077,6 @@ + return ((Integer)this.func_76341_a()).intValue() >= ((Integer)this.func_76340_b()).intValue() ? ((Integer)this.func_76341_a()).intValue() : ((Integer)this.func_76341_a()).intValue() + p_179412_1_.nextInt(((Integer)this.func_76340_b()).intValue() - ((Integer)this.func_76341_a()).intValue() + 1); + } + } ++ //MODDERS DO NOT USE OR EDIT THIS IN ANY WAY IT WILL HAVE NO EFFECT, THIS IS JUST IN HERE TO ALLOW FORGE TO ACCESS IT ++ public static ITradeList[][][][] GET_TRADES_DONT_USE(){ return field_175561_bA; } + } diff --git a/patches/minecraft/net/minecraft/item/ItemMonsterPlacer.java.patch b/patches/minecraft/net/minecraft/item/ItemMonsterPlacer.java.patch index 706719598f..4db19cc924 100644 --- a/patches/minecraft/net/minecraft/item/ItemMonsterPlacer.java.patch +++ b/patches/minecraft/net/minecraft/item/ItemMonsterPlacer.java.patch @@ -8,4 +8,4 @@ + if (p_180614_6_ == EnumFacing.UP && iblockstate.func_177230_c() instanceof BlockFence) //Forge: Fix Vanilla bug comparing state instead of block { d0 = 0.5D; - } \ No newline at end of file + } diff --git a/patches/minecraft/net/minecraft/world/World.java.patch b/patches/minecraft/net/minecraft/world/World.java.patch index 9560baf5de..283a366205 100644 --- a/patches/minecraft/net/minecraft/world/World.java.patch +++ b/patches/minecraft/net/minecraft/world/World.java.patch @@ -585,7 +585,7 @@ { j = 1; } -@@ -2692,7 +2867,7 @@ +@@ -2691,7 +2866,7 @@ int j4 = j2 + enumfacing.func_96559_d(); int k4 = k2 + enumfacing.func_82599_e(); blockpos$pooledmutableblockpos.func_185343_d(i4, j4, k4); diff --git a/src/main/java/net/minecraftforge/client/ClientCommandHandler.java b/src/main/java/net/minecraftforge/client/ClientCommandHandler.java index 0bad50d6a6..78db813296 100644 --- a/src/main/java/net/minecraftforge/client/ClientCommandHandler.java +++ b/src/main/java/net/minecraftforge/client/ClientCommandHandler.java @@ -99,7 +99,7 @@ public class ClientCommandHandler extends CommandHandler private TextComponentTranslation format(TextFormatting color, String str, Object... args) { TextComponentTranslation ret = new TextComponentTranslation(str, args); - ret.getChatStyle().setColor(color); + ret.getStyle().setColor(color); return ret; } diff --git a/src/main/java/net/minecraftforge/client/GuiIngameForge.java b/src/main/java/net/minecraftforge/client/GuiIngameForge.java index 9cfc6c2c9b..59e2d25e83 100644 --- a/src/main/java/net/minecraftforge/client/GuiIngameForge.java +++ b/src/main/java/net/minecraftforge/client/GuiIngameForge.java @@ -113,7 +113,7 @@ public class GuiIngameForge extends GuiIngame if (renderHelmet) renderHelmet(res, partialTicks); - if (renderPortal && !mc.thePlayer.isPotionActive(MobEffects.confusion)) + if (renderPortal && !mc.thePlayer.isPotionActive(MobEffects.NAUSEA)) { renderPortal(res, partialTicks); } @@ -193,7 +193,7 @@ public class GuiIngameForge extends GuiIngame protected void renderCrosshairs(float partialTicks) { if (pre(CROSSHAIRS)) return; - bind(Gui.icons); + bind(Gui.ICONS); GlStateManager.enableBlend(); super.renderAttackIndicator(partialTicks, res); post(CROSSHAIRS); @@ -217,7 +217,7 @@ public class GuiIngameForge extends GuiIngame protected void renderBossHealth() { if (pre(BOSSHEALTH)) return; - bind(Gui.icons); + bind(Gui.ICONS); GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); mc.mcProfiler.startSection("bossHealth"); GlStateManager.enableBlend(); @@ -235,7 +235,7 @@ public class GuiIngameForge extends GuiIngame if (this.mc.gameSettings.thirdPersonView == 0 && itemstack != null && itemstack.getItem() != null) { - if (itemstack.getItem() == Item.getItemFromBlock(Blocks.pumpkin)) + if (itemstack.getItem() == Item.getItemFromBlock(Blocks.PUMPKIN)) { renderPumpkinOverlay(res); } @@ -321,7 +321,7 @@ public class GuiIngameForge extends GuiIngame int left = width / 2 + 91; int top = height - right_height; - if (player.isInsideOfMaterial(Material.water)) + if (player.isInsideOfMaterial(Material.WATER)) { int air = player.getAir(); int full = MathHelper.ceiling_double_int((double)(air - 2) * 10.0D / 300.0D); @@ -341,7 +341,7 @@ public class GuiIngameForge extends GuiIngame public void renderHealth(int width, int height) { - bind(icons); + bind(ICONS); if (pre(HEALTH)) return; mc.mcProfiler.startSection("health"); GlStateManager.enableBlend(); @@ -386,7 +386,7 @@ public class GuiIngameForge extends GuiIngame if (rowHeight != 10) left_height += 10 - rowHeight; int regen = -1; - if (player.isPotionActive(MobEffects.regeneration)) + if (player.isPotionActive(MobEffects.REGENERATION)) { regen = updateCounter % 25; } @@ -394,8 +394,8 @@ public class GuiIngameForge extends GuiIngame final int TOP = 9 * (mc.theWorld.getWorldInfo().isHardcoreModeEnabled() ? 5 : 0); final int BACKGROUND = (highlight ? 25 : 16); int MARGIN = 16; - if (player.isPotionActive(MobEffects.poison)) MARGIN += 36; - else if (player.isPotionActive(MobEffects.wither)) MARGIN += 72; + if (player.isPotionActive(MobEffects.POISON)) MARGIN += 36; + else if (player.isPotionActive(MobEffects.WITHER)) MARGIN += 72; float absorbRemaining = absorb; for (int i = MathHelper.ceiling_float_int((healthMax + absorb) / 2.0F) - 1; i >= 0; --i) @@ -469,7 +469,7 @@ public class GuiIngameForge extends GuiIngame int icon = 16; byte background = 0; - if (mc.thePlayer.isPotionActive(MobEffects.hunger)) + if (mc.thePlayer.isPotionActive(MobEffects.HUNGER)) { icon += 36; background = 13; @@ -526,7 +526,7 @@ public class GuiIngameForge extends GuiIngame protected void renderExperience(int width, int height) { - bind(icons); + bind(ICONS); if (pre(EXPERIENCE)) return; GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); GlStateManager.disableBlend(); @@ -577,7 +577,7 @@ public class GuiIngameForge extends GuiIngame protected void renderJumpBar(int width, int height) { - bind(icons); + bind(ICONS); if (pre(JUMPBAR)) return; GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GlStateManager.disableBlend(); @@ -792,7 +792,7 @@ public class GuiIngameForge extends GuiIngame protected void renderPlayerList(int width, int height) { ScoreObjective scoreobjective = this.mc.theWorld.getScoreboard().getObjectiveInDisplaySlot(0); - NetHandlerPlayClient handler = mc.thePlayer.sendQueue; + NetHandlerPlayClient handler = mc.thePlayer.connection; if (mc.gameSettings.keyBindPlayerList.isKeyDown() && (!mc.isIntegratedServerRunning() || handler.getPlayerInfoMap().size() > 1 || scoreobjective != null)) { @@ -813,7 +813,7 @@ public class GuiIngameForge extends GuiIngame Entity tmp = player.getRidingEntity(); if (!(tmp instanceof EntityLivingBase)) return; - bind(icons); + bind(ICONS); if (pre(HEALTHMOUNT)) return; diff --git a/src/main/java/net/minecraftforge/client/model/ModelLoader.java b/src/main/java/net/minecraftforge/client/model/ModelLoader.java index b13010411b..67044e5db3 100644 --- a/src/main/java/net/minecraftforge/client/model/ModelLoader.java +++ b/src/main/java/net/minecraftforge/client/model/ModelLoader.java @@ -182,7 +182,7 @@ public final class ModelLoader extends ModelBakery @Override protected void loadBlocks() { - List blocks = Lists.newArrayList(Iterables.filter(Block.blockRegistry, new Predicate() + List blocks = Lists.newArrayList(Iterables.filter(Block.REGISTRY, new Predicate() { public boolean apply(Block block) { @@ -266,7 +266,7 @@ public final class ModelLoader extends ModelBakery registerVariantNames(); - List items = Lists.newArrayList(Iterables.filter(Item.itemRegistry, new Predicate() + List items = Lists.newArrayList(Iterables.filter(Item.REGISTRY, new Predicate() { public boolean apply(Item item) { @@ -336,7 +336,7 @@ public final class ModelLoader extends ModelBakery } // empty bucket - for(String s : getVariantNames(Items.bucket)) + for(String s : getVariantNames(Items.BUCKET)) { ModelResourceLocation memory = getInventoryVariant(s); IModel model = ModelLoaderRegistry.getModelOrMissing(new ResourceLocation("forge", "item/bucket")); @@ -347,23 +347,23 @@ public final class ModelLoader extends ModelBakery } } - setBucketModel(Items.water_bucket); - setBucketModel(Items.lava_bucket); + setBucketModel(Items.WATER_BUCKET); + setBucketModel(Items.LAVA_BUCKET); // milk bucket only replaced if some mod adds milk if(FluidRegistry.isFluidRegistered("milk")) { // can the milk be put into a bucket? Fluid milk = FluidRegistry.getFluid("milk"); FluidStack milkStack = new FluidStack(milk, FluidContainerRegistry.BUCKET_VOLUME); - if(FluidContainerRegistry.getContainerCapacity(milkStack, new ItemStack(Items.bucket)) == FluidContainerRegistry.BUCKET_VOLUME) + if(FluidContainerRegistry.getContainerCapacity(milkStack, new ItemStack(Items.BUCKET)) == FluidContainerRegistry.BUCKET_VOLUME) { - setBucketModel(Items.milk_bucket); + setBucketModel(Items.MILK_BUCKET); } } else { // milk bucket if no milk fluid is present - for(String s : getVariantNames(Items.milk_bucket)) + for(String s : getVariantNames(Items.MILK_BUCKET)) { ModelResourceLocation memory = getInventoryVariant(s); IModel model = ModelLoaderRegistry.getModelOrMissing(new ResourceLocation("forge", "item/bucket_milk")); diff --git a/src/main/java/net/minecraftforge/client/model/animation/AnimationModelBase.java b/src/main/java/net/minecraftforge/client/model/animation/AnimationModelBase.java index d36f03ca00..fd521dec05 100644 --- a/src/main/java/net/minecraftforge/client/model/animation/AnimationModelBase.java +++ b/src/main/java/net/minecraftforge/client/model/animation/AnimationModelBase.java @@ -70,7 +70,7 @@ public class AnimationModelBase extends ModelBase implements I lighter.setParent(new VertexBufferConsumer(VertexBuffer)); lighter.setWorld(entity.worldObj); - lighter.setState(Blocks.air.getDefaultState()); + lighter.setState(Blocks.AIR.getDefaultState()); lighter.setBlockPos(pos); boolean empty = true; List quads = bakedModel.getQuads(null, null, 0); diff --git a/src/main/java/net/minecraftforge/client/model/animation/FastTESR.java b/src/main/java/net/minecraftforge/client/model/animation/FastTESR.java index 33b59da334..e278b0d0b9 100644 --- a/src/main/java/net/minecraftforge/client/model/animation/FastTESR.java +++ b/src/main/java/net/minecraftforge/client/model/animation/FastTESR.java @@ -19,7 +19,7 @@ public abstract class FastTESR extends TileEntitySpecialRe { Tessellator tessellator = Tessellator.getInstance(); VertexBuffer VertexBuffer = tessellator.getBuffer(); - this.bindTexture(TextureMap.locationBlocksTexture); + this.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); RenderHelper.disableStandardItemLighting(); GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GlStateManager.enableBlend(); diff --git a/src/main/java/net/minecraftforge/client/settings/KeyModifier.java b/src/main/java/net/minecraftforge/client/settings/KeyModifier.java index c2183bd22a..2cd6fec156 100644 --- a/src/main/java/net/minecraftforge/client/settings/KeyModifier.java +++ b/src/main/java/net/minecraftforge/client/settings/KeyModifier.java @@ -11,7 +11,7 @@ public enum KeyModifier { @Override public boolean matches(int keyCode) { - if (Minecraft.isRunningOnMac) + if (Minecraft.IS_RUNNING_ON_MAC) { return keyCode == Keyboard.KEY_LMETA || keyCode == Keyboard.KEY_RMETA; } @@ -31,7 +31,7 @@ public enum KeyModifier { public String getLocalizedComboName(int keyCode) { String keyName = GameSettings.getKeyDisplayString(keyCode); - String localizationFormatKey = Minecraft.isRunningOnMac ? "forge.controlsgui.control.mac" : "forge.controlsgui.control"; + String localizationFormatKey = Minecraft.IS_RUNNING_ON_MAC ? "forge.controlsgui.control.mac" : "forge.controlsgui.control"; return I18n.format(localizationFormatKey, keyName); } }, diff --git a/src/main/java/net/minecraftforge/common/BiomeDictionary.java b/src/main/java/net/minecraftforge/common/BiomeDictionary.java index a9433ff12f..9cec7b8893 100644 --- a/src/main/java/net/minecraftforge/common/BiomeDictionary.java +++ b/src/main/java/net/minecraftforge/common/BiomeDictionary.java @@ -147,7 +147,7 @@ public class BiomeDictionary { types = listSubTags(types); - if(Biome.biomeRegistry.getNameForObject(biome) != null) + if(Biome.REGISTRY.getNameForObject(biome) != null) { for(Type type : types) { @@ -161,7 +161,7 @@ public class BiomeDictionary if(!isBiomeRegistered(biome)) { - ResourceLocation location = Biome.biomeRegistry.getNameForObject(biome); + ResourceLocation location = Biome.REGISTRY.getNameForObject(biome); biomeInfoMap.put(location, new BiomeInfo(types)); } else @@ -249,7 +249,7 @@ public class BiomeDictionary */ public static boolean isBiomeRegistered(Biome biome) { - return biomeInfoMap.containsKey(Biome.biomeRegistry.getNameForObject(biome)); + return biomeInfoMap.containsKey(Biome.REGISTRY.getNameForObject(biome)); } public static void registerAllBiomes() @@ -265,9 +265,9 @@ public class BiomeDictionary */ public static void registerAllBiomesAndGenerateEvents() { - for (ResourceLocation biomeResource : Biome.biomeRegistry.getKeys()) + for (ResourceLocation biomeResource : Biome.REGISTRY.getKeys()) { - Biome biome = Biome.biomeRegistry.getObject(biomeResource); + Biome biome = Biome.REGISTRY.getObject(biomeResource); if (biome.theBiomeDecorator instanceof DeferredBiomeDecorator) { @@ -373,20 +373,20 @@ public class BiomeDictionary BiomeDictionary.registerBiomeType(biome, SNOWY); } - if (biome.topBlock != Blocks.sand && biome.getTemperature() >= 1.0f && biome.getRainfall() < 0.2f) + if (biome.topBlock != Blocks.SAND && biome.getTemperature() >= 1.0f && biome.getRainfall() < 0.2f) { BiomeDictionary.registerBiomeType(biome, SAVANNA); } - if (biome.topBlock == Blocks.sand ) + if (biome.topBlock == Blocks.SAND) { BiomeDictionary.registerBiomeType(biome, SANDY); } - else if (biome.topBlock == Blocks.mycelium) + else if (biome.topBlock == Blocks.MYCELIUM) { BiomeDictionary.registerBiomeType(biome, MUSHROOM); } - if (biome.fillerBlock == Blocks.hardened_clay) + if (biome.fillerBlock == Blocks.HARDENED_CLAY) { BiomeDictionary.registerBiomeType(biome, MESA); } @@ -395,7 +395,7 @@ public class BiomeDictionary //Internal implementation private static BiomeInfo getBiomeInfo(Biome biome) { - return biomeInfoMap.get(Biome.biomeRegistry.getNameForObject(biome)); + return biomeInfoMap.get(Biome.REGISTRY.getNameForObject(biome)); } private static void checkRegistration(Biome biome) @@ -436,45 +436,45 @@ public class BiomeDictionary private static void registerVanillaBiomes() { - registerBiomeType(Biomes.ocean, OCEAN ); - registerBiomeType(Biomes.plains, PLAINS ); - registerBiomeType(Biomes.desert, HOT, DRY, SANDY ); - registerBiomeType(Biomes.extremeHills, MOUNTAIN, HILLS ); - registerBiomeType(Biomes.forest, FOREST ); - registerBiomeType(Biomes.taiga, COLD, CONIFEROUS, FOREST ); - registerBiomeType(Biomes.taigaHills, COLD, CONIFEROUS, FOREST, HILLS ); - registerBiomeType(Biomes.swampland, WET, SWAMP ); - registerBiomeType(Biomes.river, RIVER ); - registerBiomeType(Biomes.frozenOcean, COLD, OCEAN, SNOWY ); - registerBiomeType(Biomes.frozenRiver, COLD, RIVER, SNOWY ); - registerBiomeType(Biomes.icePlains, COLD, SNOWY, WASTELAND ); - registerBiomeType(Biomes.iceMountains, COLD, SNOWY, MOUNTAIN ); - registerBiomeType(Biomes.beach, BEACH ); - registerBiomeType(Biomes.desertHills, HOT, DRY, SANDY, HILLS ); - registerBiomeType(Biomes.jungle, HOT, WET, DENSE, JUNGLE ); - registerBiomeType(Biomes.jungleHills, HOT, WET, DENSE, JUNGLE, HILLS); - registerBiomeType(Biomes.forestHills, FOREST, HILLS ); - registerBiomeType(Biomes.sky, COLD, DRY, END ); - registerBiomeType(Biomes.hell, HOT, DRY, NETHER ); - registerBiomeType(Biomes.mushroomIsland, MUSHROOM ); - registerBiomeType(Biomes.extremeHillsEdge, MOUNTAIN ); - registerBiomeType(Biomes.mushroomIslandShore, MUSHROOM, BEACH ); - registerBiomeType(Biomes.jungleEdge, HOT, WET, JUNGLE, FOREST ); - registerBiomeType(Biomes.deepOcean, OCEAN ); - registerBiomeType(Biomes.stoneBeach, BEACH ); - registerBiomeType(Biomes.coldBeach, COLD, BEACH, SNOWY ); - registerBiomeType(Biomes.birchForest, FOREST ); - registerBiomeType(Biomes.birchForestHills, FOREST, HILLS ); - registerBiomeType(Biomes.roofedForest, SPOOKY, DENSE, FOREST ); - registerBiomeType(Biomes.coldTaiga, COLD, CONIFEROUS, FOREST, SNOWY ); - registerBiomeType(Biomes.coldTaigaHills, COLD, CONIFEROUS, FOREST, SNOWY, HILLS); - registerBiomeType(Biomes.megaTaiga, COLD, CONIFEROUS, FOREST ); - registerBiomeType(Biomes.megaTaigaHills, COLD, CONIFEROUS, FOREST, HILLS ); - registerBiomeType(Biomes.extremeHillsPlus, MOUNTAIN, FOREST, SPARSE ); - registerBiomeType(Biomes.savanna, HOT, SAVANNA, PLAINS, SPARSE ); - registerBiomeType(Biomes.savannaPlateau, HOT, SAVANNA, PLAINS, SPARSE ); - registerBiomeType(Biomes.mesa, MESA, SANDY ); - registerBiomeType(Biomes.mesaPlateau_F, MESA, SPARSE, SANDY ); - registerBiomeType(Biomes.mesaPlateau, MESA, SANDY ); + registerBiomeType(Biomes.OCEAN, OCEAN ); + registerBiomeType(Biomes.PLAINS, PLAINS ); + registerBiomeType(Biomes.DESERT, HOT, DRY, SANDY ); + registerBiomeType(Biomes.EXTREME_HILLS, MOUNTAIN, HILLS ); + registerBiomeType(Biomes.FOREST, FOREST ); + registerBiomeType(Biomes.TAIGA, COLD, CONIFEROUS, FOREST ); + registerBiomeType(Biomes.TAIGA_HILLS, COLD, CONIFEROUS, FOREST, HILLS ); + registerBiomeType(Biomes.SWAMPLAND, WET, SWAMP ); + registerBiomeType(Biomes.RIVER, RIVER ); + registerBiomeType(Biomes.FROZEN_OCEAN, COLD, OCEAN, SNOWY ); + registerBiomeType(Biomes.FROZEN_RIVER, COLD, RIVER, SNOWY ); + registerBiomeType(Biomes.ICE_PLAINS, COLD, SNOWY, WASTELAND ); + registerBiomeType(Biomes.ICE_MOUNTAINS, COLD, SNOWY, MOUNTAIN ); + registerBiomeType(Biomes.BEACH, BEACH ); + registerBiomeType(Biomes.DESERT_HILLS, HOT, DRY, SANDY, HILLS ); + registerBiomeType(Biomes.JUNGLE, HOT, WET, DENSE, JUNGLE ); + registerBiomeType(Biomes.JUNGLE_HILLS, HOT, WET, DENSE, JUNGLE, HILLS); + registerBiomeType(Biomes.FOREST_HILLS, FOREST, HILLS ); + registerBiomeType(Biomes.SKY, COLD, DRY, END ); + registerBiomeType(Biomes.HELL, HOT, DRY, NETHER ); + registerBiomeType(Biomes.MUSHROOM_ISLAND, MUSHROOM ); + registerBiomeType(Biomes.EXTREME_HILLS_EDGE, MOUNTAIN ); + registerBiomeType(Biomes.MUSHROOM_ISLAND_SHORE, MUSHROOM, BEACH ); + registerBiomeType(Biomes.JUNGLE_EDGE, HOT, WET, JUNGLE, FOREST ); + registerBiomeType(Biomes.DEEP_OCEAN, OCEAN ); + registerBiomeType(Biomes.STONE_BEACH, BEACH ); + registerBiomeType(Biomes.COLD_BEACH, COLD, BEACH, SNOWY ); + registerBiomeType(Biomes.BIRCH_FOREST, FOREST ); + registerBiomeType(Biomes.BIRCH_FOREST_HILLS, FOREST, HILLS ); + registerBiomeType(Biomes.ROOFED_FOREST, SPOOKY, DENSE, FOREST ); + registerBiomeType(Biomes.COLD_TAIGA, COLD, CONIFEROUS, FOREST, SNOWY ); + registerBiomeType(Biomes.COLD_TAIGA_HILLS, COLD, CONIFEROUS, FOREST, SNOWY, HILLS); + registerBiomeType(Biomes.REDWOOD_TAIGA, COLD, CONIFEROUS, FOREST ); + registerBiomeType(Biomes.REDWOOD_TAIGA_HILLS, COLD, CONIFEROUS, FOREST, HILLS ); + registerBiomeType(Biomes.EXTREME_HILLS_WITH_TREES, MOUNTAIN, FOREST, SPARSE ); + registerBiomeType(Biomes.SAVANNA, HOT, SAVANNA, PLAINS, SPARSE ); + registerBiomeType(Biomes.SAVANNA_PLATEAU, HOT, SAVANNA, PLAINS, SPARSE ); + registerBiomeType(Biomes.MESA, MESA, SANDY ); + registerBiomeType(Biomes.MESA_ROCK, MESA, SPARSE, SANDY ); + registerBiomeType(Biomes.MESA_CLEAR_ROCK, MESA, SANDY ); } } diff --git a/src/main/java/net/minecraftforge/common/BiomeManager.java b/src/main/java/net/minecraftforge/common/BiomeManager.java index 9d97401037..1d49f4848e 100644 --- a/src/main/java/net/minecraftforge/common/BiomeManager.java +++ b/src/main/java/net/minecraftforge/common/BiomeManager.java @@ -25,9 +25,9 @@ public class BiomeManager static { - oceanBiomes.add(Biomes.ocean); - oceanBiomes.add(Biomes.deepOcean); - oceanBiomes.add(Biomes.frozenOcean); + oceanBiomes.add(Biomes.OCEAN); + oceanBiomes.add(Biomes.DEEP_OCEAN); + oceanBiomes.add(Biomes.FROZEN_OCEAN); } private static TrackedList[] setupBiomes() @@ -36,26 +36,26 @@ public class BiomeManager TrackedList[] currentBiomes = new TrackedList[BiomeType.values().length]; List list = new ArrayList(); - list.add(new BiomeEntry(Biomes.forest, 10)); - list.add(new BiomeEntry(Biomes.roofedForest, 10)); - list.add(new BiomeEntry(Biomes.extremeHills, 10)); - list.add(new BiomeEntry(Biomes.plains, 10)); - list.add(new BiomeEntry(Biomes.birchForest, 10)); - list.add(new BiomeEntry(Biomes.swampland, 10)); + list.add(new BiomeEntry(Biomes.FOREST, 10)); + list.add(new BiomeEntry(Biomes.ROOFED_FOREST, 10)); + list.add(new BiomeEntry(Biomes.EXTREME_HILLS, 10)); + list.add(new BiomeEntry(Biomes.PLAINS, 10)); + list.add(new BiomeEntry(Biomes.BIRCH_FOREST, 10)); + list.add(new BiomeEntry(Biomes.SWAMPLAND, 10)); currentBiomes[BiomeType.WARM.ordinal()] = new TrackedList(list); list.clear(); - list.add(new BiomeEntry(Biomes.forest, 10)); - list.add(new BiomeEntry(Biomes.extremeHills, 10)); - list.add(new BiomeEntry(Biomes.taiga, 10)); - list.add(new BiomeEntry(Biomes.plains, 10)); + list.add(new BiomeEntry(Biomes.FOREST, 10)); + list.add(new BiomeEntry(Biomes.EXTREME_HILLS, 10)); + list.add(new BiomeEntry(Biomes.TAIGA, 10)); + list.add(new BiomeEntry(Biomes.PLAINS, 10)); currentBiomes[BiomeType.COOL.ordinal()] = new TrackedList(list); list.clear(); - list.add(new BiomeEntry(Biomes.icePlains, 30)); - list.add(new BiomeEntry(Biomes.coldTaiga, 10)); + list.add(new BiomeEntry(Biomes.ICE_PLAINS, 30)); + list.add(new BiomeEntry(Biomes.COLD_TAIGA, 10)); currentBiomes[BiomeType.ICY.ordinal()] = new TrackedList(list); list.clear(); @@ -67,21 +67,21 @@ public class BiomeManager public static void addVillageBiome(Biome biome, boolean canSpawn) { - if (!MapGenVillage.villageSpawnBiomes.contains(biome)) + if (!MapGenVillage.VILLAGE_SPAWN_BIOMES.contains(biome)) { - ArrayList biomes = new ArrayList(MapGenVillage.villageSpawnBiomes); + ArrayList biomes = new ArrayList(MapGenVillage.VILLAGE_SPAWN_BIOMES); biomes.add(biome); - MapGenVillage.villageSpawnBiomes = biomes; + MapGenVillage.VILLAGE_SPAWN_BIOMES = biomes; } } public static void removeVillageBiome(Biome biome) { - if (MapGenVillage.villageSpawnBiomes.contains(biome)) + if (MapGenVillage.VILLAGE_SPAWN_BIOMES.contains(biome)) { - ArrayList biomes = new ArrayList(MapGenVillage.villageSpawnBiomes); + ArrayList biomes = new ArrayList(MapGenVillage.VILLAGE_SPAWN_BIOMES); biomes.remove(biome); - MapGenVillage.villageSpawnBiomes = biomes; + MapGenVillage.VILLAGE_SPAWN_BIOMES = biomes; } } diff --git a/src/main/java/net/minecraftforge/common/ForgeHooks.java b/src/main/java/net/minecraftforge/common/ForgeHooks.java index 9a4e06f6fb..09b2aca937 100644 --- a/src/main/java/net/minecraftforge/common/ForgeHooks.java +++ b/src/main/java/net/minecraftforge/common/ForgeHooks.java @@ -222,20 +222,20 @@ public class ForgeHooks block.setHarvestLevel("axe", 0); } - Blocks.obsidian.setHarvestLevel("pickaxe", 3); + Blocks.OBSIDIAN.setHarvestLevel("pickaxe", 3); Block[] oreBlocks = new Block[] { - Blocks.emerald_ore, Blocks.emerald_block, Blocks.diamond_ore, Blocks.diamond_block, - Blocks.gold_ore, Blocks.gold_block, Blocks.redstone_ore, Blocks.lit_redstone_ore + Blocks.EMERALD_ORE, Blocks.EMERALD_BLOCK, Blocks.DIAMOND_ORE, Blocks.DIAMOND_BLOCK, + Blocks.GOLD_ORE, Blocks.GOLD_BLOCK, Blocks.REDSTONE_ORE, Blocks.LIT_REDSTONE_ORE }; for (Block block : oreBlocks) { block.setHarvestLevel("pickaxe", 2); } - Blocks.iron_ore.setHarvestLevel("pickaxe", 1); - Blocks.iron_block.setHarvestLevel("pickaxe", 1); - Blocks.lapis_ore.setHarvestLevel("pickaxe", 1); - Blocks.lapis_block.setHarvestLevel("pickaxe", 1); - Blocks.quartz_ore.setHarvestLevel("pickaxe", 0); + Blocks.IRON_ORE.setHarvestLevel("pickaxe", 1); + Blocks.IRON_BLOCK.setHarvestLevel("pickaxe", 1); + Blocks.LAPIS_ORE.setHarvestLevel("pickaxe", 1); + Blocks.LAPIS_BLOCK.setHarvestLevel("pickaxe", 1); + Blocks.QUARTZ_ORE.setHarvestLevel("pickaxe", 0); } public static int getTotalArmorValue(EntityPlayer player) @@ -258,11 +258,11 @@ public class ForgeHooks static { - seedList.add(new SeedEntry(new ItemStack(Items.wheat_seeds), 10) + seedList.add(new SeedEntry(new ItemStack(Items.WHEAT_SEEDS), 10) { public ItemStack getStack(Random rand, int fortune) { - return new ItemStack(Items.wheat_seeds, 1 + rand.nextInt(fortune * 2 + 1)); + return new ItemStack(Items.WHEAT_SEEDS, 1 + rand.nextInt(fortune * 2 + 1)); } }); initTools(); @@ -422,7 +422,7 @@ public class ForgeHooks if (target.typeOfHit == RayTraceResult.Type.BLOCK) { - s1 = Block.blockRegistry.getNameForObject(world.getBlockState(target.getBlockPos()).getBlock()).toString(); + s1 = Block.REGISTRY.getNameForObject(world.getBlockState(target.getBlockPos()).getBlock()).toString(); } else if (target.typeOfHit == RayTraceResult.Type.ENTITY) { @@ -440,7 +440,7 @@ public class ForgeHooks if (isCreative) { - player.inventory.func_184434_a(result); + player.inventory.setPickedItemStack(result); Minecraft.getMinecraft().playerController.sendSlotPacket(player.getHeldItem(EnumHand.MAIN_HAND), 36 + player.inventory.currentItem); return true; } @@ -636,9 +636,9 @@ public class ForgeHooks // Set the click event and append the link. ClickEvent click = new ClickEvent(ClickEvent.Action.OPEN_URL, url); - link.getChatStyle().setChatClickEvent(click); - link.getChatStyle().setUnderlined(true); - link.getChatStyle().setColor(TextFormatting.BLUE); + link.getStyle().setClickEvent(click); + link.getStyle().setUnderlined(true); + link.getStyle().setColor(TextFormatting.BLUE); if (ichat == null) ichat = link; else @@ -685,8 +685,8 @@ public class ForgeHooks if (world.getTileEntity(pos) == null) { SPacketBlockChange packet = new SPacketBlockChange(world, pos); - packet.blockState = Blocks.air.getDefaultState(); - entityPlayer.playerNetServerHandler.sendPacket(packet); + packet.blockState = Blocks.AIR.getDefaultState(); + entityPlayer.connection.sendPacket(packet); } // Post the block break event @@ -699,16 +699,16 @@ public class ForgeHooks if (event.isCanceled()) { // Let the client know the block still exists - entityPlayer.playerNetServerHandler.sendPacket(new SPacketBlockChange(world, pos)); + entityPlayer.connection.sendPacket(new SPacketBlockChange(world, pos)); // Update any tile entity data for this block TileEntity tileentity = world.getTileEntity(pos); if (tileentity != null) { - Packet pkt = tileentity.func_189518_D_(); + Packet pkt = tileentity.getUpdatePacket(); if (pkt != null) { - entityPlayer.playerNetServerHandler.sendPacket(pkt); + entityPlayer.connection.sendPacket(pkt); } } } @@ -798,7 +798,7 @@ public class ForgeHooks world.markAndNotifyBlock(snap.getPos(), null, oldBlock, newBlock, updateFlag); } - player.addStat(StatList.func_188060_a(itemstack.getItem())); + player.addStat(StatList.getCraftStats(itemstack.getItem())); } } world.capturedBlockSnapshots.clear(); diff --git a/src/main/java/net/minecraftforge/common/brewing/VanillaBrewingRecipe.java b/src/main/java/net/minecraftforge/common/brewing/VanillaBrewingRecipe.java index f11f4584fa..b846b7df3a 100644 --- a/src/main/java/net/minecraftforge/common/brewing/VanillaBrewingRecipe.java +++ b/src/main/java/net/minecraftforge/common/brewing/VanillaBrewingRecipe.java @@ -19,7 +19,7 @@ public class VanillaBrewingRecipe implements IBrewingRecipe { public boolean isInput(ItemStack stack) { Item item = stack.getItem(); - return item == Items.potionitem || item == Items.splash_potion || item == Items.lingering_potion || item == Items.glass_bottle; + return item == Items.POTIONITEM || item == Items.SPLASH_POTION || item == Items.LINGERING_POTION || item == Items.GLASS_BOTTLE; } /** diff --git a/src/main/java/net/minecraftforge/common/property/ExtendedBlockState.java b/src/main/java/net/minecraftforge/common/property/ExtendedBlockState.java index 7127f7c493..e738a78c0f 100644 --- a/src/main/java/net/minecraftforge/common/property/ExtendedBlockState.java +++ b/src/main/java/net/minecraftforge/common/property/ExtendedBlockState.java @@ -78,7 +78,7 @@ public class ExtendedBlockState extends BlockStateContainer { if (!property.getAllowedValues().contains(value)) { - throw new IllegalArgumentException("Cannot set property " + property + " to " + value + " on block " + Block.blockRegistry.getNameForObject(getBlock()) + ", it is not an allowed value"); + throw new IllegalArgumentException("Cannot set property " + property + " to " + value + " on block " + Block.REGISTRY.getNameForObject(getBlock()) + ", it is not an allowed value"); } else { if (this.getProperties().get(property) == value) @@ -106,7 +106,7 @@ public class ExtendedBlockState extends BlockStateContainer } if(!property.isValid(value)) { - throw new IllegalArgumentException("Cannot set unlisted property " + property + " to " + value + " on block " + Block.blockRegistry.getNameForObject(getBlock()) + ", it is not an allowed value"); + throw new IllegalArgumentException("Cannot set unlisted property " + property + " to " + value + " on block " + Block.REGISTRY.getNameForObject(getBlock()) + ", it is not an allowed value"); } Map, Optional> newMap = new HashMap, Optional>(unlistedProperties); newMap.put(property, Optional.fromNullable(value)); diff --git a/src/main/java/net/minecraftforge/common/util/BlockSnapshot.java b/src/main/java/net/minecraftforge/common/util/BlockSnapshot.java index 17cc9c8810..d0ed0ecf02 100644 --- a/src/main/java/net/minecraftforge/common/util/BlockSnapshot.java +++ b/src/main/java/net/minecraftforge/common/util/BlockSnapshot.java @@ -45,7 +45,7 @@ public class BlockSnapshot implements Serializable if (te != null) { nbt = new NBTTagCompound(); - te.func_189515_b(getNbt()); + te.writeToNBT(getNbt()); } else nbt = null; if (DEBUG) @@ -139,7 +139,7 @@ public class BlockSnapshot implements Serializable public TileEntity getTileEntity() { if (getNbt() != null) - return TileEntity.func_189514_c(getNbt()); + return TileEntity.create(getNbt()); else return null; } diff --git a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java index 65042e1871..df9a87497e 100644 --- a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java +++ b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java @@ -308,7 +308,7 @@ public class ForgeEventFactory return new ActionResult(EnumActionResult.SUCCESS, event.getFilledBucket()); if (!player.inventory.addItemStackToInventory(event.getFilledBucket())) - player.dropPlayerItemWithRandomChoice(event.getFilledBucket(), false); + player.dropItem(event.getFilledBucket(), false); return new ActionResult(EnumActionResult.SUCCESS, stack); } @@ -456,12 +456,12 @@ public class ForgeEventFactory public static boolean renderFireOverlay(EntityPlayer player, float renderPartialTicks) { - return renderBlockOverlay(player, renderPartialTicks, OverlayType.FIRE, Blocks.fire.getDefaultState(), new BlockPos(player)); + return renderBlockOverlay(player, renderPartialTicks, OverlayType.FIRE, Blocks.FIRE.getDefaultState(), new BlockPos(player)); } public static boolean renderWaterOverlay(EntityPlayer player, float renderPartialTicks) { - return renderBlockOverlay(player, renderPartialTicks, OverlayType.WATER, Blocks.water.getDefaultState(), new BlockPos(player)); + return renderBlockOverlay(player, renderPartialTicks, OverlayType.WATER, Blocks.WATER.getDefaultState(), new BlockPos(player)); } public static boolean renderBlockOverlay(EntityPlayer player, float renderPartialTicks, OverlayType type, IBlockState block, BlockPos pos) diff --git a/src/main/java/net/minecraftforge/event/world/BlockEvent.java b/src/main/java/net/minecraftforge/event/world/BlockEvent.java index 01b90398f3..b3c733bbea 100644 --- a/src/main/java/net/minecraftforge/event/world/BlockEvent.java +++ b/src/main/java/net/minecraftforge/event/world/BlockEvent.java @@ -101,13 +101,13 @@ public class BlockEvent extends Event this.player = player; if (state == null || !ForgeHooks.canHarvestBlock(state.getBlock(), player, world, pos) || // Handle empty block or player unable to break block scenario - (state.getBlock().canSilkHarvest(world, pos, world.getBlockState(pos), player) && EnchantmentHelper.getEnchantmentLevel(Enchantments.silkTouch, player.getHeldItemMainhand()) > 0)) // If the block is being silk harvested, the exp dropped is 0 + (state.getBlock().canSilkHarvest(world, pos, world.getBlockState(pos), player) && EnchantmentHelper.getEnchantmentLevel(Enchantments.SILK_TOUCH, player.getHeldItemMainhand()) > 0)) // If the block is being silk harvested, the exp dropped is 0 { this.exp = 0; } else { - int bonusLevel = EnchantmentHelper.getEnchantmentLevel(Enchantments.fortune, player.getHeldItemMainhand()); + int bonusLevel = EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, player.getHeldItemMainhand()); this.exp = state.getBlock().getExpDrop(state, world, pos, bonusLevel); } } diff --git a/src/main/java/net/minecraftforge/fluids/BlockFluidBase.java b/src/main/java/net/minecraftforge/fluids/BlockFluidBase.java index 32fe7912f0..f6cbecd6ed 100644 --- a/src/main/java/net/minecraftforge/fluids/BlockFluidBase.java +++ b/src/main/java/net/minecraftforge/fluids/BlockFluidBase.java @@ -41,47 +41,47 @@ public abstract class BlockFluidBase extends Block implements IFluidBlock static { - defaultDisplacements.put(Blocks.oak_door, false); - defaultDisplacements.put(Blocks.spruce_door, false); - defaultDisplacements.put(Blocks.birch_door, false); - defaultDisplacements.put(Blocks.jungle_door, false); - defaultDisplacements.put(Blocks.acacia_door, false); - defaultDisplacements.put(Blocks.dark_oak_door, false); - defaultDisplacements.put(Blocks.trapdoor, false); - defaultDisplacements.put(Blocks.iron_trapdoor, false); - defaultDisplacements.put(Blocks.oak_fence, false); - defaultDisplacements.put(Blocks.spruce_fence, false); - defaultDisplacements.put(Blocks.birch_fence, false); - defaultDisplacements.put(Blocks.jungle_fence, false); - defaultDisplacements.put(Blocks.dark_oak_fence, false); - defaultDisplacements.put(Blocks.acacia_fence, false); - defaultDisplacements.put(Blocks.nether_brick_fence, false); - defaultDisplacements.put(Blocks.oak_fence_gate, false); - defaultDisplacements.put(Blocks.spruce_fence_gate, false); - defaultDisplacements.put(Blocks.birch_fence_gate, false); - defaultDisplacements.put(Blocks.jungle_fence_gate, false); - defaultDisplacements.put(Blocks.dark_oak_fence_gate, false); - defaultDisplacements.put(Blocks.acacia_fence_gate, false); - defaultDisplacements.put(Blocks.wooden_pressure_plate, false); - defaultDisplacements.put(Blocks.stone_pressure_plate, false); - defaultDisplacements.put(Blocks.light_weighted_pressure_plate, false); - defaultDisplacements.put(Blocks.heavy_weighted_pressure_plate, false); - defaultDisplacements.put(Blocks.ladder, false); - defaultDisplacements.put(Blocks.iron_bars, false); - defaultDisplacements.put(Blocks.glass_pane, false); - defaultDisplacements.put(Blocks.stained_glass_pane, false); - defaultDisplacements.put(Blocks.portal, false); - defaultDisplacements.put(Blocks.end_portal, false); - defaultDisplacements.put(Blocks.cobblestone_wall, false); - defaultDisplacements.put(Blocks.barrier, false); - defaultDisplacements.put(Blocks.standing_banner, false); - defaultDisplacements.put(Blocks.wall_banner, false); - defaultDisplacements.put(Blocks.cake, false); + defaultDisplacements.put(Blocks.OAK_DOOR, false); + defaultDisplacements.put(Blocks.SPRUCE_DOOR, false); + defaultDisplacements.put(Blocks.BIRCH_DOOR, false); + defaultDisplacements.put(Blocks.JUNGLE_DOOR, false); + defaultDisplacements.put(Blocks.ACACIA_DOOR, false); + defaultDisplacements.put(Blocks.DARK_OAK_DOOR, false); + defaultDisplacements.put(Blocks.TRAPDOOR, false); + defaultDisplacements.put(Blocks.IRON_TRAPDOOR, false); + defaultDisplacements.put(Blocks.OAK_FENCE, false); + defaultDisplacements.put(Blocks.SPRUCE_FENCE, false); + defaultDisplacements.put(Blocks.BIRCH_FENCE, false); + defaultDisplacements.put(Blocks.JUNGLE_FENCE, false); + defaultDisplacements.put(Blocks.DARK_OAK_FENCE, false); + defaultDisplacements.put(Blocks.ACACIA_FENCE, false); + defaultDisplacements.put(Blocks.NETHER_BRICK_FENCE, false); + defaultDisplacements.put(Blocks.OAK_FENCE_GATE, false); + defaultDisplacements.put(Blocks.SPRUCE_FENCE_GATE, false); + defaultDisplacements.put(Blocks.BIRCH_FENCE_GATE, false); + defaultDisplacements.put(Blocks.JUNGLE_FENCE_GATE, false); + defaultDisplacements.put(Blocks.DARK_OAK_FENCE_GATE, false); + defaultDisplacements.put(Blocks.ACACIA_FENCE_GATE, false); + defaultDisplacements.put(Blocks.WOODEN_PRESSURE_PLATE, false); + defaultDisplacements.put(Blocks.STONE_PRESSURE_PLATE, false); + defaultDisplacements.put(Blocks.LIGHT_WEIGHTED_PRESSURE_PLATE, false); + defaultDisplacements.put(Blocks.HEAVY_WEIGHTED_PRESSURE_PLATE, false); + defaultDisplacements.put(Blocks.LADDER, false); + defaultDisplacements.put(Blocks.IRON_BARS, false); + defaultDisplacements.put(Blocks.GLASS_PANE, false); + defaultDisplacements.put(Blocks.STAINED_GLASS_PANE, false); + defaultDisplacements.put(Blocks.PORTAL, false); + defaultDisplacements.put(Blocks.END_PORTAL, false); + defaultDisplacements.put(Blocks.COBBLESTONE_WALL, false); + defaultDisplacements.put(Blocks.BARRIER, false); + defaultDisplacements.put(Blocks.STANDING_BANNER, false); + defaultDisplacements.put(Blocks.WALL_BANNER, false); + defaultDisplacements.put(Blocks.CAKE, false); - defaultDisplacements.put(Blocks.iron_door, false); - defaultDisplacements.put(Blocks.standing_sign, false); - defaultDisplacements.put(Blocks.wall_sign, false); - defaultDisplacements.put(Blocks.reeds, false); + defaultDisplacements.put(Blocks.IRON_DOOR, false); + defaultDisplacements.put(Blocks.STANDING_SIGN, false); + defaultDisplacements.put(Blocks.WALL_SIGN, false); + defaultDisplacements.put(Blocks.REEDS, false); } protected Map displacements = Maps.newHashMap(); @@ -212,7 +212,7 @@ public abstract class BlockFluidBase extends Block implements IFluidBlock } Material material = state.getMaterial(); - if (material.blocksMovement() || material == Material.portal) + if (material.blocksMovement() || material == Material.PORTAL) { return false; } @@ -261,7 +261,7 @@ public abstract class BlockFluidBase extends Block implements IFluidBlock } Material material = state.getMaterial(); - if (material.blocksMovement() || material == Material.portal) + if (material.blocksMovement() || material == Material.PORTAL) { return false; } @@ -298,7 +298,7 @@ public abstract class BlockFluidBase extends Block implements IFluidBlock } @Override - public void func_189540_a(IBlockState state, World world, BlockPos pos, Block neighborBlock) + public void neighborChanged(IBlockState state, World world, BlockPos pos, Block neighborBlock) { world.scheduleUpdate(pos, this, tickRate); } diff --git a/src/main/java/net/minecraftforge/fluids/BlockFluidClassic.java b/src/main/java/net/minecraftforge/fluids/BlockFluidClassic.java index 449a9c0342..c2490aca67 100644 --- a/src/main/java/net/minecraftforge/fluids/BlockFluidClassic.java +++ b/src/main/java/net/minecraftforge/fluids/BlockFluidClassic.java @@ -43,7 +43,7 @@ public class BlockFluidClassic extends BlockFluidBase public int getQuantaValue(IBlockAccess world, BlockPos pos) { IBlockState state = world.getBlockState(pos); - if (state.getBlock() == Blocks.air) + if (state.getBlock() == Blocks.AIR) { return 0; } @@ -291,9 +291,9 @@ public class BlockFluidClassic extends BlockFluidBase Material material = state.getMaterial(); if (material.blocksMovement() || - material == Material.water || - material == Material.lava || - material == Material.portal) + material == Material.WATER || + material == Material.LAVA || + material == Material.PORTAL) { return false; } diff --git a/src/main/java/net/minecraftforge/fluids/Fluid.java b/src/main/java/net/minecraftforge/fluids/Fluid.java index 247b740c00..27eb5768a4 100644 --- a/src/main/java/net/minecraftforge/fluids/Fluid.java +++ b/src/main/java/net/minecraftforge/fluids/Fluid.java @@ -266,13 +266,13 @@ public class Fluid { if(fillSound == null) { - if(getBlock() != null && getBlock().getDefaultState().getMaterial() == Material.lava) + if(getBlock() != null && getBlock().getDefaultState().getMaterial() == Material.LAVA) { - fillSound = SoundEvents.item_bucket_fill_lava; + fillSound = SoundEvents.ITEM_BUCKET_FILL_LAVA; } else { - fillSound = SoundEvents.item_bucket_fill; + fillSound = SoundEvents.ITEM_BUCKET_FILL; } } @@ -283,13 +283,13 @@ public class Fluid { if(emptySound == null) { - if(getBlock() != null && getBlock().getDefaultState().getMaterial() == Material.lava) + if(getBlock() != null && getBlock().getDefaultState().getMaterial() == Material.LAVA) { - emptySound = SoundEvents.item_bucket_empty_lava; + emptySound = SoundEvents.ITEM_BUCKET_EMPTY_LAVA; } else { - emptySound = SoundEvents.item_bucket_empty; + emptySound = SoundEvents.ITEM_BUCKET_EMPTY; } } diff --git a/src/main/java/net/minecraftforge/fluids/FluidContainerRegistry.java b/src/main/java/net/minecraftforge/fluids/FluidContainerRegistry.java index 0b2c3d49cf..7a10e79e21 100644 --- a/src/main/java/net/minecraftforge/fluids/FluidContainerRegistry.java +++ b/src/main/java/net/minecraftforge/fluids/FluidContainerRegistry.java @@ -71,15 +71,15 @@ public abstract class FluidContainerRegistry private static Set emptyContainers = Sets.newHashSet(); public static final int BUCKET_VOLUME = 1000; - public static final ItemStack EMPTY_BUCKET = new ItemStack(Items.bucket); - public static final ItemStack EMPTY_BOTTLE = new ItemStack(Items.glass_bottle); - private static final ItemStack NULL_EMPTYCONTAINER = new ItemStack(Items.bucket); + public static final ItemStack EMPTY_BUCKET = new ItemStack(Items.BUCKET); + public static final ItemStack EMPTY_BOTTLE = new ItemStack(Items.GLASS_BOTTLE); + private static final ItemStack NULL_EMPTYCONTAINER = new ItemStack(Items.BUCKET); static { - registerFluidContainer(FluidRegistry.WATER, new ItemStack(Items.water_bucket), EMPTY_BUCKET); - registerFluidContainer(FluidRegistry.LAVA, new ItemStack(Items.lava_bucket), EMPTY_BUCKET); - registerFluidContainer(FluidRegistry.WATER, new ItemStack(Items.potionitem), EMPTY_BOTTLE); + registerFluidContainer(FluidRegistry.WATER, new ItemStack(Items.WATER_BUCKET), EMPTY_BUCKET); + registerFluidContainer(FluidRegistry.LAVA, new ItemStack(Items.LAVA_BUCKET), EMPTY_BUCKET); + registerFluidContainer(FluidRegistry.WATER, new ItemStack(Items.POTIONITEM), EMPTY_BOTTLE); } private FluidContainerRegistry(){} diff --git a/src/main/java/net/minecraftforge/fluids/FluidRegistry.java b/src/main/java/net/minecraftforge/fluids/FluidRegistry.java index ec3e6be78a..3fdbcfdf21 100644 --- a/src/main/java/net/minecraftforge/fluids/FluidRegistry.java +++ b/src/main/java/net/minecraftforge/fluids/FluidRegistry.java @@ -55,14 +55,14 @@ public abstract class FluidRegistry public String getLocalizedName(FluidStack fs) { return I18n.translateToLocal("tile.water.name"); } - }.setBlock(Blocks.water).setUnlocalizedName(Blocks.water.getUnlocalizedName()); + }.setBlock(Blocks.WATER).setUnlocalizedName(Blocks.WATER.getUnlocalizedName()); public static final Fluid LAVA = new Fluid("lava", new ResourceLocation("blocks/lava_still"), new ResourceLocation("blocks/lava_flow")) { @Override public String getLocalizedName(FluidStack fs) { return I18n.translateToLocal("tile.lava.name"); } - }.setBlock(Blocks.lava).setLuminosity(15).setDensity(3000).setViscosity(6000).setTemperature(1300).setUnlocalizedName(Blocks.lava.getUnlocalizedName()); + }.setBlock(Blocks.LAVA).setLuminosity(15).setDensity(3000).setViscosity(6000).setTemperature(1300).setUnlocalizedName(Blocks.LAVA.getUnlocalizedName()); static { diff --git a/src/main/java/net/minecraftforge/fluids/TileFluidHandler.java b/src/main/java/net/minecraftforge/fluids/TileFluidHandler.java index 148e1d41a8..d93d6693d7 100644 --- a/src/main/java/net/minecraftforge/fluids/TileFluidHandler.java +++ b/src/main/java/net/minecraftforge/fluids/TileFluidHandler.java @@ -20,9 +20,9 @@ public class TileFluidHandler extends TileEntity implements IFluidHandler } @Override - public NBTTagCompound func_189515_b(NBTTagCompound tag) + public NBTTagCompound writeToNBT(NBTTagCompound tag) { - tag = super.func_189515_b(tag); + tag = super.writeToNBT(tag); tank.writeToNBT(tag); return tag; } diff --git a/src/main/java/net/minecraftforge/fluids/UniversalBucket.java b/src/main/java/net/minecraftforge/fluids/UniversalBucket.java index df63968197..337550a2f3 100644 --- a/src/main/java/net/minecraftforge/fluids/UniversalBucket.java +++ b/src/main/java/net/minecraftforge/fluids/UniversalBucket.java @@ -54,7 +54,7 @@ public class UniversalBucket extends Item implements IFluidContainerItem this.setMaxStackSize(1); - this.setCreativeTab(CreativeTabs.tabMisc); + this.setCreativeTab(CreativeTabs.MISC); } @SideOnly(Side.CLIENT) @@ -107,7 +107,7 @@ public class UniversalBucket extends Item implements IFluidContainerItem } // clicked on a block? - RayTraceResult mop = this.getMovingObjectPositionFromPlayer(world, player, false); + RayTraceResult mop = this.rayTrace(world, player, false); if(mop == null || mop.typeOfHit != RayTraceResult.Type.BLOCK) { @@ -129,7 +129,7 @@ public class UniversalBucket extends Item implements IFluidContainerItem && !player.capabilities.isCreativeMode) { // success! - player.addStat(StatList.func_188057_b(this)); + player.addStat(StatList.getObjectUseStats(this)); itemstack.stackSize--; ItemStack emptyStack = getEmpty() != null ? getEmpty().copy() : new ItemStack(this); @@ -181,12 +181,12 @@ public class UniversalBucket extends Item implements IFluidContainerItem } // water goes poof? - if (worldIn.provider.doesWaterVaporize() && (block == Blocks.flowing_water || block == Blocks.water)) + if (worldIn.provider.doesWaterVaporize() && (block == Blocks.FLOWING_WATER || block == Blocks.WATER)) { int i = pos.getX(); int j = pos.getY(); int k = pos.getZ(); - worldIn.playSound(null, pos, SoundEvents.block_fire_extinguish, SoundCategory.BLOCKS, 0.5F, + worldIn.playSound(null, pos, SoundEvents.BLOCK_FIRE_EXTINGUISH, SoundCategory.BLOCKS, 0.5F, 2.6F + (worldIn.rand.nextFloat() - worldIn.rand.nextFloat()) * 0.8F); for (int l = 0; l < 8; ++l) diff --git a/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java b/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java index 017ebbe390..1afaf1c807 100644 --- a/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java +++ b/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java @@ -662,7 +662,7 @@ public class FMLClientHandler implements IFMLSidedHandler @Override public NetworkManager getClientToServerNetworkManager() { - return this.client.getNetHandler()!=null ? this.client.getNetHandler().getNetworkManager() : null; + return this.client.getConnection()!=null ? this.client.getConnection().getNetworkManager() : null; } public void handleClientWorldClosing(WorldClient world) diff --git a/src/main/java/net/minecraftforge/fml/client/GuiModList.java b/src/main/java/net/minecraftforge/fml/client/GuiModList.java index 6ca185b66e..8eb9b2414f 100644 --- a/src/main/java/net/minecraftforge/fml/client/GuiModList.java +++ b/src/main/java/net/minecraftforge/fml/client/GuiModList.java @@ -584,7 +584,7 @@ public class GuiModList extends GuiScreen for (ITextComponent part : line) { if (!(part instanceof TextComponentString)) continue; - k += GuiModList.this.fontRendererObj.getStringWidth(((TextComponentString)part).getChatComponentText_TextValue()); + k += GuiModList.this.fontRendererObj.getStringWidth(((TextComponentString)part).getText()); if (k >= x) { GuiModList.this.handleComponentClick(part); diff --git a/src/main/java/net/minecraftforge/fml/client/GuiScrollingList.java b/src/main/java/net/minecraftforge/fml/client/GuiScrollingList.java index a2d4eb67a5..8779a9b9fc 100644 --- a/src/main/java/net/minecraftforge/fml/client/GuiScrollingList.java +++ b/src/main/java/net/minecraftforge/fml/client/GuiScrollingList.java @@ -287,7 +287,7 @@ public abstract class GuiScrollingList { GlStateManager.disableLighting(); GlStateManager.disableFog(); - this.client.renderEngine.bindTexture(Gui.optionsBackground); + this.client.renderEngine.bindTexture(Gui.OPTIONS_BACKGROUND); GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); float scale = 32.0F; worldr.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR); diff --git a/src/main/java/net/minecraftforge/fml/client/config/GuiButtonExt.java b/src/main/java/net/minecraftforge/fml/client/config/GuiButtonExt.java index 6399fe8b6c..e83068b8db 100644 --- a/src/main/java/net/minecraftforge/fml/client/config/GuiButtonExt.java +++ b/src/main/java/net/minecraftforge/fml/client/config/GuiButtonExt.java @@ -47,7 +47,7 @@ public class GuiButtonExt extends GuiButton { this.hovered = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height; int k = this.getHoverState(this.hovered); - GuiUtils.drawContinuousTexturedBox(buttonTextures, this.xPosition, this.yPosition, 0, 46 + k * 20, this.width, this.height, 200, 20, 2, 3, 2, 2, this.zLevel); + GuiUtils.drawContinuousTexturedBox(BUTTON_TEXTURES, this.xPosition, this.yPosition, 0, 46 + k * 20, this.width, this.height, 200, 20, 2, 3, 2, 2, this.zLevel); this.mouseDragged(mc, mouseX, mouseY); int color = 14737632; diff --git a/src/main/java/net/minecraftforge/fml/client/config/GuiCheckBox.java b/src/main/java/net/minecraftforge/fml/client/config/GuiCheckBox.java index 7f8fca783e..fd5240a4b4 100644 --- a/src/main/java/net/minecraftforge/fml/client/config/GuiCheckBox.java +++ b/src/main/java/net/minecraftforge/fml/client/config/GuiCheckBox.java @@ -40,7 +40,7 @@ public class GuiCheckBox extends GuiButton if (this.visible) { this.hovered = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.boxWidth && mouseY < this.yPosition + this.height; - GuiUtils.drawContinuousTexturedBox(buttonTextures, this.xPosition, this.yPosition, 0, 46, this.boxWidth, this.height, 200, 20, 2, 3, 2, 2, this.zLevel); + GuiUtils.drawContinuousTexturedBox(BUTTON_TEXTURES, this.xPosition, this.yPosition, 0, 46, this.boxWidth, this.height, 200, 20, 2, 3, 2, 2, this.zLevel); this.mouseDragged(mc, mouseX, mouseY); int color = 14737632; diff --git a/src/main/java/net/minecraftforge/fml/client/config/GuiUnicodeGlyphButton.java b/src/main/java/net/minecraftforge/fml/client/config/GuiUnicodeGlyphButton.java index c5986016be..29fdf898fa 100644 --- a/src/main/java/net/minecraftforge/fml/client/config/GuiUnicodeGlyphButton.java +++ b/src/main/java/net/minecraftforge/fml/client/config/GuiUnicodeGlyphButton.java @@ -13,6 +13,7 @@ package net.minecraftforge.fml.client.config; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; import net.minecraft.client.renderer.GlStateManager; /** @@ -39,7 +40,7 @@ public class GuiUnicodeGlyphButton extends GuiButtonExt { this.hovered = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height; int k = this.getHoverState(this.hovered); - GuiUtils.drawContinuousTexturedBox(buttonTextures, this.xPosition, this.yPosition, 0, 46 + k * 20, this.width, this.height, 200, 20, 2, 3, 2, 2, this.zLevel); + GuiUtils.drawContinuousTexturedBox(GuiButton.BUTTON_TEXTURES, this.xPosition, this.yPosition, 0, 46 + k * 20, this.width, this.height, 200, 20, 2, 3, 2, 2, this.zLevel); this.mouseDragged(mc, mouseX, mouseY); int color = 14737632; diff --git a/src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java b/src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java index 4cbe2a89fc..f135488c15 100644 --- a/src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java +++ b/src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java @@ -366,7 +366,7 @@ public class FMLCommonHandler { for (ICrashCallable call: crashCallables) { - category.func_189529_a(call.getLabel(), call); + category.setDetail(call.getLabel(), call); } } diff --git a/src/main/java/net/minecraftforge/fml/common/network/FMLOutboundHandler.java b/src/main/java/net/minecraftforge/fml/common/network/FMLOutboundHandler.java index 36a366f34d..7a1a5bc9cb 100644 --- a/src/main/java/net/minecraftforge/fml/common/network/FMLOutboundHandler.java +++ b/src/main/java/net/minecraftforge/fml/common/network/FMLOutboundHandler.java @@ -109,7 +109,7 @@ public class FMLOutboundHandler extends ChannelOutboundHandlerAdapter { public List selectNetworks(Object args, ChannelHandlerContext context, FMLProxyPacket packet) { EntityPlayerMP player = (EntityPlayerMP) args; - NetworkDispatcher dispatcher = player == null ? null : player.playerNetServerHandler.netManager.channel().attr(NetworkDispatcher.FML_DISPATCHER).get(); + NetworkDispatcher dispatcher = player == null ? null : player.connection.netManager.channel().attr(NetworkDispatcher.FML_DISPATCHER).get(); return dispatcher == null ? ImmutableList.of() : ImmutableList.of(dispatcher); } }, @@ -130,7 +130,7 @@ public class FMLOutboundHandler extends ChannelOutboundHandlerAdapter { ImmutableList.Builder builder = ImmutableList.builder(); for (EntityPlayerMP player : FMLCommonHandler.instance().getMinecraftServerInstance().getPlayerList().getPlayerList()) { - NetworkDispatcher dispatcher = player.playerNetServerHandler.netManager.channel().attr(NetworkDispatcher.FML_DISPATCHER).get(); + NetworkDispatcher dispatcher = player.connection.netManager.channel().attr(NetworkDispatcher.FML_DISPATCHER).get(); if (dispatcher != null) builder.add(dispatcher); } return builder.build(); @@ -160,7 +160,7 @@ public class FMLOutboundHandler extends ChannelOutboundHandlerAdapter { { if (dimension == player.dimension) { - NetworkDispatcher dispatcher = player.playerNetServerHandler.netManager.channel().attr(NetworkDispatcher.FML_DISPATCHER).get(); + NetworkDispatcher dispatcher = player.connection.netManager.channel().attr(NetworkDispatcher.FML_DISPATCHER).get(); // Null dispatchers may exist for fake players - skip them if (dispatcher != null) builder.add(dispatcher); } @@ -200,7 +200,7 @@ public class FMLOutboundHandler extends ChannelOutboundHandlerAdapter { if (d4 * d4 + d5 * d5 + d6 * d6 < tp.range * tp.range) { - NetworkDispatcher dispatcher = player.playerNetServerHandler.netManager.channel().attr(NetworkDispatcher.FML_DISPATCHER).get(); + NetworkDispatcher dispatcher = player.connection.netManager.channel().attr(NetworkDispatcher.FML_DISPATCHER).get(); if (dispatcher != null) builder.add(dispatcher); } } diff --git a/src/main/java/net/minecraftforge/fml/common/network/handshake/NetworkDispatcher.java b/src/main/java/net/minecraftforge/fml/common/network/handshake/NetworkDispatcher.java index 083995b63c..78209451b1 100644 --- a/src/main/java/net/minecraftforge/fml/common/network/handshake/NetworkDispatcher.java +++ b/src/main/java/net/minecraftforge/fml/common/network/handshake/NetworkDispatcher.java @@ -189,13 +189,13 @@ public class NetworkDispatcher extends SimpleChannelInboundHandler> im completeServerSideConnection(ConnectionType.MODDED); } // FORGE: sometimes the netqueue will tick while login is occurring, causing an NPE. We shouldn't tick until the connection is complete - if (this.playerEntity.playerNetServerHandler != this) return; + if (this.playerEntity.connection != this) return; super.update(); } }; this.netHandler = serverHandler; // NULL the play server here - we restore it further on. If not, there are packets sent before the login - player.playerNetServerHandler = null; + player.connection = null; // manually for the manager into the PLAY state, so we can send packets later this.manager.setConnectionState(EnumConnectionState.PLAY); diff --git a/src/main/java/net/minecraftforge/fml/common/network/internal/EntitySpawnHandler.java b/src/main/java/net/minecraftforge/fml/common/network/internal/EntitySpawnHandler.java index b144f5161c..89ffef4393 100644 --- a/src/main/java/net/minecraftforge/fml/common/network/internal/EntitySpawnHandler.java +++ b/src/main/java/net/minecraftforge/fml/common/network/internal/EntitySpawnHandler.java @@ -95,7 +95,7 @@ public class EntitySpawnHandler extends SimpleChannelInboundHandler entityRegistrations = ArrayListMultimap.create(); private Map entityNames = Maps.newHashMap(); private BiMap, EntityRegistration> entityClassRegistrations = HashBiMap.create(); @@ -125,12 +124,6 @@ public class EntityRegistry private EntityRegistry() { - availableIndices = new BitSet(256); - availableIndices.set(1,255); - for (Object id : EntityList.idToClassMapping.keySet()) - { - availableIndices.clear((Integer)id); - } } /** @@ -177,11 +170,11 @@ public class EntityRegistry { entityClassRegistrations.put(entityClass, er); entityNames.put(entityName, mc); - if (!EntityList.classToStringMapping.containsKey(entityClass)) + if (!EntityList.CLASS_TO_NAME.containsKey(entityClass)) { String entityModName = String.format("%s.%s", mc.getModId(), entityName); - EntityList.classToStringMapping.put(entityClass, entityModName); - EntityList.stringToClassMapping.put(entityModName, entityClass); + EntityList.CLASS_TO_NAME.put(entityClass, entityModName); + EntityList.NAME_TO_CLASS.put(entityModName, entityClass); FMLLog.finer("Automatically registered mod %s entity %s as %s", mc.getModId(), entityName, entityModName); } else @@ -214,10 +207,10 @@ public class EntityRegistry public static void registerEgg(Class entityClass, int primary, int secondary) { - if (EntityList.classToStringMapping.containsKey(entityClass)) + if (EntityList.CLASS_TO_NAME.containsKey(entityClass)) { - String name = EntityList.classToStringMapping.get(entityClass); - EntityList.entityEggs.put(name, new EntityList.EntityEggInfo(name, primary, secondary)); + String name = EntityList.CLASS_TO_NAME.get(entityClass); + EntityList.ENTITY_EGGS.put(name, new EntityList.EntityEggInfo(name, primary, secondary)); FMLLog.fine("Registering entity egg '%s' for %s", name, entityClass); } else @@ -225,97 +218,6 @@ public class EntityRegistry FMLLog.fine("Failed registering entity egg %s (No entity found)", entityClass.getName()); } } - /** - * Registers in the minecraft Entity ID list. This is generally not a good idea and shouldn't be used. - * Simply use {@link #registerModEntity(Class, String, int, Object, int, int, boolean, int, int)} instead. - * - * @param entityClass Class of the entity being registered - * @param entityName Name for the entity being registered - * @param id A globally unique ID for the entity - */ - @Deprecated - public static void registerGlobalEntityID(Class entityClass, String entityName, int id) - { - if (EntityList.classToStringMapping.containsKey(entityClass)) - { - ModContainer activeModContainer = Loader.instance().activeModContainer(); - String modId = "unknown"; - if (activeModContainer != null) - { - modId = activeModContainer.getModId(); - } - else - { - FMLLog.severe("There is a rogue mod failing to register entities from outside the context of mod loading. This is incredibly dangerous and should be stopped."); - } - FMLLog.warning("The mod %s tried to register the entity class %s which was already registered - if you wish to override default naming for FML mod entities, register it here first", modId, entityClass); - return; - } - id = instance().validateAndClaimId(id); - EntityList.addMapping(entityClass, entityName, id); - } - - /** - * Registers in the minecraft Entity ID list. This is generally not a good idea, and shouldn't be used. - * Simply use {@link #registerModEntity(Class, String, int, Object, int, int, boolean)} instead. - * @param entityClass The class of the entity being registered - * @param entityName The name of the entity being registered - * @param id The globally unique ID of the entity - * @param backgroundEggColour An RGB colour value for the spawn egg background colour - * @param foregroundEggColour An RGB colour value for the spawn egg foreground colour - */ - @Deprecated - public static void registerGlobalEntityID(Class entityClass, String entityName, int id, int backgroundEggColour, int foregroundEggColour) - { - if (EntityList.classToStringMapping.containsKey(entityClass)) - { - ModContainer activeModContainer = Loader.instance().activeModContainer(); - String modId = "unknown"; - if (activeModContainer != null) - { - modId = activeModContainer.getModId(); - } - else - { - FMLLog.severe("There is a rogue mod failing to register entities from outside the context of mod loading. This is incredibly dangerous and should be stopped."); - } - FMLLog.warning("The mod %s tried to register the entity class %s which was already registered - if you wish to override default naming for FML mod entities, register it here first", modId, entityClass); - return; - } - instance().validateAndClaimId(id); - EntityList.addMapping(entityClass, entityName, id, backgroundEggColour, foregroundEggColour); - } - - private int validateAndClaimId(int id) - { - // workaround for broken ML - int realId = id; - if (id < Byte.MIN_VALUE) - { - FMLLog.warning("Compensating for modloader out of range compensation by mod : entityId %d for mod %s is now %d", id, Loader.instance().activeModContainer().getModId(), realId); - realId += 3000; - } - - if (realId < 0) - { - realId += Byte.MAX_VALUE; - } - try - { - UnsignedBytes.checkedCast(realId); - } - catch (IllegalArgumentException e) - { - FMLLog.log(Level.ERROR, "The entity ID %d for mod %s is not an unsigned byte and may not work", id, Loader.instance().activeModContainer().getModId()); - } - - if (!availableIndices.get(realId)) - { - FMLLog.severe("The mod %s has attempted to register an entity ID %d which is already reserved. This could cause severe problems", Loader.instance().activeModContainer().getModId(), id); - } - availableIndices.clear(realId); - return realId; - } /** * Add a spawn entry for the supplied entity in the supplied {@link BiomeGenBase} list @@ -360,7 +262,7 @@ public class EntityRegistry @SuppressWarnings("unchecked") public static void addSpawn(String entityName, int weightedProb, int min, int max, EnumCreatureType typeOfCreature, Biome... biomes) { - Class entityClazz = EntityList.stringToClassMapping.get(entityName); + Class entityClazz = EntityList.NAME_TO_CLASS.get(entityName); if (EntityLiving.class.isAssignableFrom(entityClazz)) { @@ -400,7 +302,7 @@ public class EntityRegistry @SuppressWarnings("unchecked") public static void removeSpawn(String entityName, EnumCreatureType typeOfCreature, Biome... biomes) { - Class entityClazz = EntityList.stringToClassMapping.get(entityName); + Class entityClazz = EntityList.NAME_TO_CLASS.get(entityName); if (EntityLiving.class.isAssignableFrom(entityClazz)) { @@ -408,23 +310,6 @@ public class EntityRegistry } } - /** - * Utility function to try and obtain a globally unique entity ID. Not useful as it requires syncing between - * client and server. Use {@link #registerModEntity(Class, String, int, Object, int, int, boolean)} instead, - * for a much better experience. - * @return A theoretically globally unique ID - */ - @Deprecated - public static int findGlobalUniqueEntityId() - { - int res = instance().availableIndices.nextSetBit(0); - if (res < 0) - { - throw new RuntimeException("No more entity indices left"); - } - return res; - } - public EntityRegistration lookupModSpawn(Class clazz, boolean keepLooking) { Class localClazz = clazz; diff --git a/src/main/java/net/minecraftforge/fml/common/registry/FMLControlledNamespacedRegistry.java b/src/main/java/net/minecraftforge/fml/common/registry/FMLControlledNamespacedRegistry.java index 2f83b230fb..b2c76c8296 100644 --- a/src/main/java/net/minecraftforge/fml/common/registry/FMLControlledNamespacedRegistry.java +++ b/src/main/java/net/minecraftforge/fml/common/registry/FMLControlledNamespacedRegistry.java @@ -157,7 +157,7 @@ public class FMLControlledNamespacedRegistry> e this.dummiedLocations.clear(); this.dummiedLocations.addAll(otherRegistry.dummiedLocations); - underlyingIntegerMap.func_186812_a(); + underlyingIntegerMap.clear(); registryObjects.clear(); for (I thing : otherRegistry.typeSafeIterable()) diff --git a/src/main/java/net/minecraftforge/fml/common/registry/ObjectHolderRef.java b/src/main/java/net/minecraftforge/fml/common/registry/ObjectHolderRef.java index 15946999f5..2f17126248 100644 --- a/src/main/java/net/minecraftforge/fml/common/registry/ObjectHolderRef.java +++ b/src/main/java/net/minecraftforge/fml/common/registry/ObjectHolderRef.java @@ -50,8 +50,8 @@ class ObjectHolderRef { } else { - ResourceLocation tmp = isBlock ? GameData.getBlockRegistry().getNameForObject((Block)existing) : - isItem ? GameData.getItemRegistry().getNameForObject((Item)existing) : null; + ResourceLocation tmp = isBlock ? ForgeRegistries.BLOCKS.getKey((Block)existing) : + isItem ? ForgeRegistries.ITEMS.getKey((Item)existing) : null; this.injectedObject = tmp; } } catch (Exception e) @@ -104,15 +104,15 @@ class ObjectHolderRef { Object thing; if (isBlock) { - thing = GameData.getBlockRegistry().getObject(injectedObject); - if (thing == Blocks.air) + thing = ForgeRegistries.BLOCKS.getValue(injectedObject); + if (thing == Blocks.AIR) { thing = null; } } else if (isItem) { - thing = GameData.getItemRegistry().getObject(injectedObject); + thing = ForgeRegistries.ITEMS.getValue(injectedObject); } else { diff --git a/src/main/java/net/minecraftforge/fml/common/registry/VillagerRegistry.java b/src/main/java/net/minecraftforge/fml/common/registry/VillagerRegistry.java index 650a7f8d12..c6baf6cfc0 100644 --- a/src/main/java/net/minecraftforge/fml/common/registry/VillagerRegistry.java +++ b/src/main/java/net/minecraftforge/fml/common/registry/VillagerRegistry.java @@ -336,196 +336,6 @@ public class VillagerRegistry //This field is moved from EntityVillager over to here. //Moved to inner class to stop static initializer issues. //It is nasty I know but it's vanilla. - private static final ITradeList[][][][] trades = - { - { - { - { - new EmeraldForItems(Items.wheat, new PriceInfo(18, 22)), - new EmeraldForItems(Items.potato, new PriceInfo(15, 19)), - new EmeraldForItems(Items.carrot, new PriceInfo(15, 19)), - new ListItemForEmeralds(Items.bread, new PriceInfo(-4, -2)) - }, - { - new EmeraldForItems(Item.getItemFromBlock(Blocks.pumpkin), new PriceInfo(8, 13)), - new ListItemForEmeralds(Items.pumpkin_pie, new PriceInfo(-3, -2)) - }, - { - new EmeraldForItems(Item.getItemFromBlock(Blocks.melon_block), new PriceInfo(7, 12)), - new ListItemForEmeralds(Items.apple, new PriceInfo(-5, -7)) - }, - { - new ListItemForEmeralds(Items.cookie, new PriceInfo(-6, -10)), - new ListItemForEmeralds(Items.cake, new PriceInfo(1, 1)) - } - }, - { - { - new EmeraldForItems(Items.string, new PriceInfo(15, 20)), - new EmeraldForItems(Items.coal, new PriceInfo(16, 24)), - new ItemAndEmeraldToItem(Items.fish, new PriceInfo(6, 6), Items.cooked_fish, new PriceInfo(6, 6)) - }, - { - new ListEnchantedItemForEmeralds(Items.fishing_rod, new PriceInfo(7, 8)) - } - }, - { - { - new EmeraldForItems(Item.getItemFromBlock(Blocks.wool), new PriceInfo(16, 22)), - new ListItemForEmeralds(Items.shears, new PriceInfo(3, 4)) - }, - { - new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 0), new PriceInfo(1, 2)), - new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 1), new PriceInfo(1, 2)), - new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 2), new PriceInfo(1, 2)), - new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 3), new PriceInfo(1, 2)), - new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 4), new PriceInfo(1, 2)), - new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 5), new PriceInfo(1, 2)), - new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 6), new PriceInfo(1, 2)), - new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 7), new PriceInfo(1, 2)), - new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 8), new PriceInfo(1, 2)), - new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 9), new PriceInfo(1, 2)), - new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 10), new PriceInfo(1, 2)), - new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 11), new PriceInfo(1, 2)), - new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 12), new PriceInfo(1, 2)), - new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 13), new PriceInfo(1, 2)), - new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 14), new PriceInfo(1, 2)), - new ListItemForEmeralds(new ItemStack(Blocks.wool, 1, 15), new PriceInfo(1, 2)) - } - }, - { - { - new EmeraldForItems(Items.string, new PriceInfo(15, 20)), - new ListItemForEmeralds(Items.arrow, new PriceInfo(-12, -8)) - }, - { - new ListItemForEmeralds(Items.bow, new PriceInfo(2, 3)), - new ItemAndEmeraldToItem(Item.getItemFromBlock(Blocks.gravel), new PriceInfo(10, 10), Items.flint, new PriceInfo(6, 10)) - } - } - }, - { - { - { - new EmeraldForItems(Items.paper, new PriceInfo(24, 36)), - new ListEnchantedBookForEmeralds() - }, - { - new EmeraldForItems(Items.book, new PriceInfo(8, 10)), - new ListItemForEmeralds(Items.compass, new PriceInfo(10, 12)), - new ListItemForEmeralds(Item.getItemFromBlock(Blocks.bookshelf), new PriceInfo(3, 4)) - }, - { - new EmeraldForItems(Items.written_book, new PriceInfo(2, 2)), - new ListItemForEmeralds(Items.clock, new PriceInfo(10, 12)), - new ListItemForEmeralds(Item.getItemFromBlock(Blocks.glass), new PriceInfo(-5, -3)) - }, - { - new ListEnchantedBookForEmeralds() - }, - { - new ListEnchantedBookForEmeralds() - }, - { - new ListItemForEmeralds(Items.name_tag, new PriceInfo(20, 22)) - } - } - }, - { - { - { - new EmeraldForItems(Items.rotten_flesh, new PriceInfo(36, 40)), - new EmeraldForItems(Items.gold_ingot, new PriceInfo(8, 10)) - }, - { - new ListItemForEmeralds(Items.redstone, new PriceInfo(-4, -1)), - new ListItemForEmeralds(new ItemStack(Items.dye, 1, EnumDyeColor.BLUE.getDyeDamage()), new PriceInfo(-2, -1)) - }, - { - new ListItemForEmeralds(Items.ender_pearl, new PriceInfo(4, 7)), - new ListItemForEmeralds(Item.getItemFromBlock(Blocks.glowstone), new PriceInfo(-3, -1)) - }, - { - new ListItemForEmeralds(Items.experience_bottle, new PriceInfo(3, 11)) - } - } - }, - { - { - { - new EmeraldForItems(Items.coal, new PriceInfo(16, 24)), - new ListItemForEmeralds(Items.iron_helmet, new PriceInfo(4, 6)) - }, - { - new EmeraldForItems(Items.iron_ingot, new PriceInfo(7, 9)), - new ListItemForEmeralds(Items.iron_chestplate, new PriceInfo(10, 14)) - }, - { - new EmeraldForItems(Items.diamond, new PriceInfo(3, 4)), - new ListEnchantedItemForEmeralds(Items.diamond_chestplate, new PriceInfo(16, 19)) - }, - { - new ListItemForEmeralds(Items.chainmail_boots, new PriceInfo(5, 7)), - new ListItemForEmeralds(Items.chainmail_leggings, new PriceInfo(9, 11)), - new ListItemForEmeralds(Items.chainmail_helmet, new PriceInfo(5, 7)), - new ListItemForEmeralds(Items.chainmail_chestplate, new PriceInfo(11, 15)) - } - }, - { - { - new EmeraldForItems(Items.coal, new PriceInfo(16, 24)), - new ListItemForEmeralds(Items.iron_axe, new PriceInfo(6, 8)) - }, - { - new EmeraldForItems(Items.iron_ingot, new PriceInfo(7, 9)), - new ListEnchantedItemForEmeralds(Items.iron_sword, new PriceInfo(9, 10)) - }, - { - new EmeraldForItems(Items.diamond, new PriceInfo(3, 4)), - new ListEnchantedItemForEmeralds(Items.diamond_sword, new PriceInfo(12, 15)), - new ListEnchantedItemForEmeralds(Items.diamond_axe, new PriceInfo(9, 12)) - } - }, - { - { - new EmeraldForItems(Items.coal, new PriceInfo(16, 24)), - new ListEnchantedItemForEmeralds(Items.iron_shovel, new PriceInfo(5, 7)) - }, - { - new EmeraldForItems(Items.iron_ingot, new PriceInfo(7, 9)), - new ListEnchantedItemForEmeralds(Items.iron_pickaxe, new PriceInfo(9, 11)) - }, - { - new EmeraldForItems(Items.diamond, new PriceInfo(3, 4)), - new ListEnchantedItemForEmeralds(Items.diamond_pickaxe, new PriceInfo(12, 15)) - } - } - }, - { - { - { - new EmeraldForItems(Items.porkchop, new PriceInfo(14, 18)), - new EmeraldForItems(Items.chicken, new PriceInfo(14, 18)) - }, - { - new EmeraldForItems(Items.coal, new PriceInfo(16, 24)), - new ListItemForEmeralds(Items.cooked_porkchop, new PriceInfo(-7, -5)), - new ListItemForEmeralds(Items.cooked_chicken, new PriceInfo(-8, -6)) - } - }, - { - { - new EmeraldForItems(Items.leather, new PriceInfo(9, 12)), - new ListItemForEmeralds(Items.leather_leggings, new PriceInfo(2, 4)) - }, - { - new ListEnchantedItemForEmeralds(Items.leather_chestplate, new PriceInfo(7, 12)) - }, - { - new ListItemForEmeralds(Items.saddle, new PriceInfo(8, 10)) - } - } - } - }; + private static final ITradeList[][][][] trades = EntityVillager.GET_TRADES_DONT_USE(); } } diff --git a/src/main/java/net/minecraftforge/items/ItemHandlerHelper.java b/src/main/java/net/minecraftforge/items/ItemHandlerHelper.java index 9c1c320847..897257dcaf 100644 --- a/src/main/java/net/minecraftforge/items/ItemHandlerHelper.java +++ b/src/main/java/net/minecraftforge/items/ItemHandlerHelper.java @@ -158,7 +158,7 @@ public class ItemHandlerHelper if (remainder == null || remainder.stackSize != stack.stackSize) { world.playSound(player, player.posX, player.posY, player.posZ, - SoundEvents.entity_item_pickup, SoundCategory.PLAYERS, 0.2F, ((world.rand.nextFloat() - world.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); + SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.PLAYERS, 0.2F, ((world.rand.nextFloat() - world.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); } // drop remaining itemstack into the world diff --git a/src/main/java/net/minecraftforge/oredict/OreDictionary.java b/src/main/java/net/minecraftforge/oredict/OreDictionary.java index 0b2bd34214..275cc20a84 100644 --- a/src/main/java/net/minecraftforge/oredict/OreDictionary.java +++ b/src/main/java/net/minecraftforge/oredict/OreDictionary.java @@ -57,196 +57,196 @@ public class OreDictionary if (!hasInit) { // tree- and wood-related things - registerOre("logWood", new ItemStack(Blocks.log, 1, WILDCARD_VALUE)); - registerOre("logWood", new ItemStack(Blocks.log2, 1, WILDCARD_VALUE)); - registerOre("plankWood", new ItemStack(Blocks.planks, 1, WILDCARD_VALUE)); - registerOre("slabWood", new ItemStack(Blocks.wooden_slab, 1, WILDCARD_VALUE)); - registerOre("stairWood", Blocks.oak_stairs); - registerOre("stairWood", Blocks.spruce_stairs); - registerOre("stairWood", Blocks.birch_stairs); - registerOre("stairWood", Blocks.jungle_stairs); - registerOre("stairWood", Blocks.acacia_stairs); - registerOre("stairWood", Blocks.dark_oak_stairs); - registerOre("stickWood", Items.stick); - registerOre("treeSapling", new ItemStack(Blocks.sapling, 1, WILDCARD_VALUE)); - registerOre("treeLeaves", new ItemStack(Blocks.leaves, 1, WILDCARD_VALUE)); - registerOre("treeLeaves", new ItemStack(Blocks.leaves2, 1, WILDCARD_VALUE)); - registerOre("vine", Blocks.vine); + registerOre("logWood", new ItemStack(Blocks.LOG, 1, WILDCARD_VALUE)); + registerOre("logWood", new ItemStack(Blocks.LOG2, 1, WILDCARD_VALUE)); + registerOre("plankWood", new ItemStack(Blocks.PLANKS, 1, WILDCARD_VALUE)); + registerOre("slabWood", new ItemStack(Blocks.WOODEN_SLAB, 1, WILDCARD_VALUE)); + registerOre("stairWood", Blocks.OAK_STAIRS); + registerOre("stairWood", Blocks.SPRUCE_STAIRS); + registerOre("stairWood", Blocks.BIRCH_STAIRS); + registerOre("stairWood", Blocks.JUNGLE_STAIRS); + registerOre("stairWood", Blocks.ACACIA_STAIRS); + registerOre("stairWood", Blocks.DARK_OAK_STAIRS); + registerOre("stickWood", Items.STICK); + registerOre("treeSapling", new ItemStack(Blocks.SAPLING, 1, WILDCARD_VALUE)); + registerOre("treeLeaves", new ItemStack(Blocks.LEAVES, 1, WILDCARD_VALUE)); + registerOre("treeLeaves", new ItemStack(Blocks.LEAVES2, 1, WILDCARD_VALUE)); + registerOre("vine", Blocks.VINE); // Ores - registerOre("oreGold", Blocks.gold_ore); - registerOre("oreIron", Blocks.iron_ore); - registerOre("oreLapis", Blocks.lapis_ore); - registerOre("oreDiamond", Blocks.diamond_ore); - registerOre("oreRedstone", Blocks.redstone_ore); - registerOre("oreEmerald", Blocks.emerald_ore); - registerOre("oreQuartz", Blocks.quartz_ore); - registerOre("oreCoal", Blocks.coal_ore); + registerOre("oreGold", Blocks.GOLD_ORE); + registerOre("oreIron", Blocks.IRON_ORE); + registerOre("oreLapis", Blocks.LAPIS_ORE); + registerOre("oreDiamond", Blocks.DIAMOND_ORE); + registerOre("oreRedstone", Blocks.REDSTONE_ORE); + registerOre("oreEmerald", Blocks.EMERALD_ORE); + registerOre("oreQuartz", Blocks.QUARTZ_ORE); + registerOre("oreCoal", Blocks.COAL_ORE); // ingots/nuggets - registerOre("ingotIron", Items.iron_ingot); - registerOre("ingotGold", Items.gold_ingot); - registerOre("ingotBrick", Items.brick); - registerOre("ingotBrickNether", Items.netherbrick); - registerOre("nuggetGold", Items.gold_nugget); + registerOre("ingotIron", Items.IRON_INGOT); + registerOre("ingotGold", Items.GOLD_INGOT); + registerOre("ingotBrick", Items.BRICK); + registerOre("ingotBrickNether", Items.NETHERBRICK); + registerOre("nuggetGold", Items.GOLD_NUGGET); // gems and dusts - registerOre("gemDiamond", Items.diamond); - registerOre("gemEmerald", Items.emerald); - registerOre("gemQuartz", Items.quartz); - registerOre("gemPrismarine", Items.prismarine_shard); - registerOre("dustPrismarine", Items.prismarine_crystals); - registerOre("dustRedstone", Items.redstone); - registerOre("dustGlowstone", Items.glowstone_dust); - registerOre("gemLapis", new ItemStack(Items.dye, 1, 4)); + registerOre("gemDiamond", Items.DIAMOND); + registerOre("gemEmerald", Items.EMERALD); + registerOre("gemQuartz", Items.QUARTZ); + registerOre("gemPrismarine", Items.PRISMARINE_SHARD); + registerOre("dustPrismarine", Items.PRISMARINE_CRYSTALS); + registerOre("dustRedstone", Items.REDSTONE); + registerOre("dustGlowstone", Items.GLOWSTONE_DUST); + registerOre("gemLapis", new ItemStack(Items.DYE, 1, 4)); // storage blocks - registerOre("blockGold", Blocks.gold_block); - registerOre("blockIron", Blocks.iron_block); - registerOre("blockLapis", Blocks.lapis_block); - registerOre("blockDiamond", Blocks.diamond_block); - registerOre("blockRedstone", Blocks.redstone_block); - registerOre("blockEmerald", Blocks.emerald_block); - registerOre("blockQuartz", Blocks.quartz_block); - registerOre("blockCoal", Blocks.coal_block); + registerOre("blockGold", Blocks.GOLD_BLOCK); + registerOre("blockIron", Blocks.IRON_BLOCK); + registerOre("blockLapis", Blocks.LAPIS_BLOCK); + registerOre("blockDiamond", Blocks.DIAMOND_BLOCK); + registerOre("blockRedstone", Blocks.REDSTONE_BLOCK); + registerOre("blockEmerald", Blocks.EMERALD_BLOCK); + registerOre("blockQuartz", Blocks.QUARTZ_BLOCK); + registerOre("blockCoal", Blocks.COAL_BLOCK); // crops - registerOre("cropWheat", Items.wheat); - registerOre("cropPotato", Items.potato); - registerOre("cropCarrot", Items.carrot); - registerOre("cropNetherWart", Items.nether_wart); - registerOre("sugarcane", Items.reeds); - registerOre("blockCactus", Blocks.cactus); + registerOre("cropWheat", Items.WHEAT); + registerOre("cropPotato", Items.POTATO); + registerOre("cropCarrot", Items.CARROT); + registerOre("cropNetherWart", Items.NETHER_WART); + registerOre("sugarcane", Items.REEDS); + registerOre("blockCactus", Blocks.CACTUS); // misc materials - registerOre("dye", new ItemStack(Items.dye, 1, WILDCARD_VALUE)); - registerOre("paper", new ItemStack(Items.paper)); + registerOre("dye", new ItemStack(Items.DYE, 1, WILDCARD_VALUE)); + registerOre("paper", new ItemStack(Items.PAPER)); // mob drops - registerOre("slimeball", Items.slime_ball); - registerOre("enderpearl", Items.ender_pearl); - registerOre("bone", Items.bone); - registerOre("gunpowder", Items.gunpowder); - registerOre("string", Items.string); - registerOre("netherStar", Items.nether_star); - registerOre("leather", Items.leather); - registerOre("feather", Items.feather); - registerOre("egg", Items.egg); + registerOre("slimeball", Items.SLIME_BALL); + registerOre("enderpearl", Items.ENDER_PEARL); + registerOre("bone", Items.BONE); + registerOre("gunpowder", Items.GUNPOWDER); + registerOre("string", Items.STRING); + registerOre("netherStar", Items.NETHER_STAR); + registerOre("leather", Items.LEATHER); + registerOre("feather", Items.FEATHER); + registerOre("egg", Items.EGG); // records - registerOre("record", Items.record_13); - registerOre("record", Items.record_cat); - registerOre("record", Items.record_blocks); - registerOre("record", Items.record_chirp); - registerOre("record", Items.record_far); - registerOre("record", Items.record_mall); - registerOre("record", Items.record_mellohi); - registerOre("record", Items.record_stal); - registerOre("record", Items.record_strad); - registerOre("record", Items.record_ward); - registerOre("record", Items.record_11); - registerOre("record", Items.record_wait); + registerOre("record", Items.RECORD_13); + registerOre("record", Items.RECORD_CAT); + registerOre("record", Items.RECORD_BLOCKS); + registerOre("record", Items.RECORD_CHIRP); + registerOre("record", Items.RECORD_FAR); + registerOre("record", Items.RECORD_MALL); + registerOre("record", Items.RECORD_MELLOHI); + registerOre("record", Items.RECORD_STAL); + registerOre("record", Items.RECORD_STRAD); + registerOre("record", Items.RECORD_WARD); + registerOre("record", Items.RECORD_11); + registerOre("record", Items.RECORD_WAIT); // blocks - registerOre("dirt", Blocks.dirt); - registerOre("grass", Blocks.grass); - registerOre("stone", Blocks.stone); - registerOre("cobblestone", Blocks.cobblestone); - registerOre("gravel", Blocks.gravel); - registerOre("sand", new ItemStack(Blocks.sand, 1, WILDCARD_VALUE)); - registerOre("sandstone", new ItemStack(Blocks.sandstone, 1, WILDCARD_VALUE)); - registerOre("sandstone", new ItemStack(Blocks.red_sandstone, 1, WILDCARD_VALUE)); - registerOre("netherrack", Blocks.netherrack); - registerOre("obsidian", Blocks.obsidian); - registerOre("glowstone", Blocks.glowstone); - registerOre("endstone", Blocks.end_stone); - registerOre("torch", Blocks.torch); - registerOre("workbench", Blocks.crafting_table); - registerOre("blockSlime", Blocks.slime_block); - registerOre("blockPrismarine", new ItemStack(Blocks.prismarine, 1, BlockPrismarine.EnumType.ROUGH.getMetadata())); - registerOre("blockPrismarineBrick", new ItemStack(Blocks.prismarine, 1, BlockPrismarine.EnumType.BRICKS.getMetadata())); - registerOre("blockPrismarineDark", new ItemStack(Blocks.prismarine, 1, BlockPrismarine.EnumType.DARK.getMetadata())); - registerOre("stoneGranite", new ItemStack(Blocks.stone, 1, 1)); - registerOre("stoneGranitePolished", new ItemStack(Blocks.stone, 1, 2)); - registerOre("stoneDiorite", new ItemStack(Blocks.stone, 1, 3)); - registerOre("stoneDioritePolished", new ItemStack(Blocks.stone, 1, 4)); - registerOre("stoneAndesite", new ItemStack(Blocks.stone, 1, 5)); - registerOre("stoneAndesitePolished", new ItemStack(Blocks.stone, 1, 6)); - registerOre("blockGlassColorless", Blocks.glass); - registerOre("blockGlass", Blocks.glass); - registerOre("blockGlass", new ItemStack(Blocks.stained_glass, 1, WILDCARD_VALUE)); + registerOre("dirt", Blocks.DIRT); + registerOre("grass", Blocks.GRASS); + registerOre("stone", Blocks.STONE); + registerOre("cobblestone", Blocks.COBBLESTONE); + registerOre("gravel", Blocks.GRAVEL); + registerOre("sand", new ItemStack(Blocks.SAND, 1, WILDCARD_VALUE)); + registerOre("sandstone", new ItemStack(Blocks.SANDSTONE, 1, WILDCARD_VALUE)); + registerOre("sandstone", new ItemStack(Blocks.RED_SANDSTONE, 1, WILDCARD_VALUE)); + registerOre("netherrack", Blocks.NETHERRACK); + registerOre("obsidian", Blocks.OBSIDIAN); + registerOre("glowstone", Blocks.GLOWSTONE); + registerOre("endstone", Blocks.END_STONE); + registerOre("torch", Blocks.TORCH); + registerOre("workbench", Blocks.CRAFTING_TABLE); + registerOre("blockSlime", Blocks.SLIME_BLOCK); + registerOre("blockPrismarine", new ItemStack(Blocks.PRISMARINE, 1, BlockPrismarine.EnumType.ROUGH.getMetadata())); + registerOre("blockPrismarineBrick", new ItemStack(Blocks.PRISMARINE, 1, BlockPrismarine.EnumType.BRICKS.getMetadata())); + registerOre("blockPrismarineDark", new ItemStack(Blocks.PRISMARINE, 1, BlockPrismarine.EnumType.DARK.getMetadata())); + registerOre("stoneGranite", new ItemStack(Blocks.STONE, 1, 1)); + registerOre("stoneGranitePolished", new ItemStack(Blocks.STONE, 1, 2)); + registerOre("stoneDiorite", new ItemStack(Blocks.STONE, 1, 3)); + registerOre("stoneDioritePolished", new ItemStack(Blocks.STONE, 1, 4)); + registerOre("stoneAndesite", new ItemStack(Blocks.STONE, 1, 5)); + registerOre("stoneAndesitePolished", new ItemStack(Blocks.STONE, 1, 6)); + registerOre("blockGlassColorless", Blocks.GLASS); + registerOre("blockGlass", Blocks.GLASS); + registerOre("blockGlass", new ItemStack(Blocks.STAINED_GLASS, 1, WILDCARD_VALUE)); //blockGlass{Color} is added below with dyes - registerOre("paneGlassColorless", Blocks.glass_pane); - registerOre("paneGlass", Blocks.glass_pane); - registerOre("paneGlass", new ItemStack(Blocks.stained_glass_pane, 1, WILDCARD_VALUE)); + registerOre("paneGlassColorless", Blocks.GLASS_PANE); + registerOre("paneGlass", Blocks.GLASS_PANE); + registerOre("paneGlass", new ItemStack(Blocks.STAINED_GLASS_PANE, 1, WILDCARD_VALUE)); //paneGlass{Color} is added below with dyes // chests - registerOre("chest", Blocks.chest); - registerOre("chest", Blocks.ender_chest); - registerOre("chest", Blocks.trapped_chest); - registerOre("chestWood", Blocks.chest); - registerOre("chestEnder", Blocks.ender_chest); - registerOre("chestTrapped", Blocks.trapped_chest); + registerOre("chest", Blocks.CHEST); + registerOre("chest", Blocks.ENDER_CHEST); + registerOre("chest", Blocks.TRAPPED_CHEST); + registerOre("chestWood", Blocks.CHEST); + registerOre("chestEnder", Blocks.ENDER_CHEST); + registerOre("chestTrapped", Blocks.TRAPPED_CHEST); } // Build our list of items to replace with ore tags Map replacements = new HashMap(); // wood-related things - replacements.put(new ItemStack(Items.stick), "stickWood"); - replacements.put(new ItemStack(Blocks.planks), "plankWood"); - replacements.put(new ItemStack(Blocks.planks, 1, WILDCARD_VALUE), "plankWood"); - replacements.put(new ItemStack(Blocks.wooden_slab, 1, WILDCARD_VALUE), "slabWood"); + replacements.put(new ItemStack(Items.STICK), "stickWood"); + replacements.put(new ItemStack(Blocks.PLANKS), "plankWood"); + replacements.put(new ItemStack(Blocks.PLANKS, 1, WILDCARD_VALUE), "plankWood"); + replacements.put(new ItemStack(Blocks.WOODEN_SLAB, 1, WILDCARD_VALUE), "slabWood"); // ingots/nuggets - replacements.put(new ItemStack(Items.gold_ingot), "ingotGold"); - replacements.put(new ItemStack(Items.iron_ingot), "ingotIron"); + replacements.put(new ItemStack(Items.GOLD_INGOT), "ingotGold"); + replacements.put(new ItemStack(Items.IRON_INGOT), "ingotIron"); // gems and dusts - replacements.put(new ItemStack(Items.diamond), "gemDiamond"); - replacements.put(new ItemStack(Items.emerald), "gemEmerald"); - replacements.put(new ItemStack(Items.prismarine_shard), "gemPrismarine"); - replacements.put(new ItemStack(Items.prismarine_crystals), "dustPrismarine"); - replacements.put(new ItemStack(Items.redstone), "dustRedstone"); - replacements.put(new ItemStack(Items.glowstone_dust), "dustGlowstone"); + replacements.put(new ItemStack(Items.DIAMOND), "gemDiamond"); + replacements.put(new ItemStack(Items.EMERALD), "gemEmerald"); + replacements.put(new ItemStack(Items.PRISMARINE_SHARD), "gemPrismarine"); + replacements.put(new ItemStack(Items.PRISMARINE_CRYSTALS), "dustPrismarine"); + replacements.put(new ItemStack(Items.REDSTONE), "dustRedstone"); + replacements.put(new ItemStack(Items.GLOWSTONE_DUST), "dustGlowstone"); // crops - replacements.put(new ItemStack(Items.reeds), "sugarcane"); - replacements.put(new ItemStack(Blocks.cactus), "blockCactus"); + replacements.put(new ItemStack(Items.REEDS), "sugarcane"); + replacements.put(new ItemStack(Blocks.CACTUS), "blockCactus"); // misc materials - replacements.put(new ItemStack(Items.paper), "paper"); + replacements.put(new ItemStack(Items.PAPER), "paper"); // mob drops - replacements.put(new ItemStack(Items.slime_ball), "slimeball"); - replacements.put(new ItemStack(Items.string), "string"); - replacements.put(new ItemStack(Items.leather), "leather"); - replacements.put(new ItemStack(Items.ender_pearl), "enderpearl"); - replacements.put(new ItemStack(Items.gunpowder), "gunpowder"); - replacements.put(new ItemStack(Items.nether_star), "netherStar"); - replacements.put(new ItemStack(Items.feather), "feather"); - replacements.put(new ItemStack(Items.bone), "bone"); - replacements.put(new ItemStack(Items.egg), "egg"); + replacements.put(new ItemStack(Items.SLIME_BALL), "slimeball"); + replacements.put(new ItemStack(Items.STRING), "string"); + replacements.put(new ItemStack(Items.LEATHER), "leather"); + replacements.put(new ItemStack(Items.ENDER_PEARL), "enderpearl"); + replacements.put(new ItemStack(Items.GUNPOWDER), "gunpowder"); + replacements.put(new ItemStack(Items.NETHER_STAR), "netherStar"); + replacements.put(new ItemStack(Items.FEATHER), "feather"); + replacements.put(new ItemStack(Items.BONE), "bone"); + replacements.put(new ItemStack(Items.EGG), "egg"); // blocks - replacements.put(new ItemStack(Blocks.stone), "stone"); - replacements.put(new ItemStack(Blocks.cobblestone), "cobblestone"); - replacements.put(new ItemStack(Blocks.cobblestone, 1, WILDCARD_VALUE), "cobblestone"); - replacements.put(new ItemStack(Blocks.glowstone), "glowstone"); - replacements.put(new ItemStack(Blocks.glass), "blockGlassColorless"); - replacements.put(new ItemStack(Blocks.prismarine), "prismarine"); - replacements.put(new ItemStack(Blocks.stone, 1, 1), "stoneGranite"); - replacements.put(new ItemStack(Blocks.stone, 1, 2), "stoneGranitePolished"); - replacements.put(new ItemStack(Blocks.stone, 1, 3), "stoneDiorite"); - replacements.put(new ItemStack(Blocks.stone, 1, 4), "stoneDioritePolished"); - replacements.put(new ItemStack(Blocks.stone, 1, 5), "stoneAndesite"); - replacements.put(new ItemStack(Blocks.stone, 1, 6), "stoneAndesitePolished"); + replacements.put(new ItemStack(Blocks.STONE), "stone"); + replacements.put(new ItemStack(Blocks.COBBLESTONE), "cobblestone"); + replacements.put(new ItemStack(Blocks.COBBLESTONE, 1, WILDCARD_VALUE), "cobblestone"); + replacements.put(new ItemStack(Blocks.GLOWSTONE), "glowstone"); + replacements.put(new ItemStack(Blocks.GLASS), "blockGlassColorless"); + replacements.put(new ItemStack(Blocks.PRISMARINE), "prismarine"); + replacements.put(new ItemStack(Blocks.STONE, 1, 1), "stoneGranite"); + replacements.put(new ItemStack(Blocks.STONE, 1, 2), "stoneGranitePolished"); + replacements.put(new ItemStack(Blocks.STONE, 1, 3), "stoneDiorite"); + replacements.put(new ItemStack(Blocks.STONE, 1, 4), "stoneDioritePolished"); + replacements.put(new ItemStack(Blocks.STONE, 1, 5), "stoneAndesite"); + replacements.put(new ItemStack(Blocks.STONE, 1, 6), "stoneAndesitePolished"); // chests - replacements.put(new ItemStack(Blocks.chest), "chestWood"); - replacements.put(new ItemStack(Blocks.ender_chest), "chestEnder"); - replacements.put(new ItemStack(Blocks.trapped_chest), "chestTrapped"); + replacements.put(new ItemStack(Blocks.CHEST), "chestWood"); + replacements.put(new ItemStack(Blocks.ENDER_CHEST), "chestEnder"); + replacements.put(new ItemStack(Blocks.TRAPPED_CHEST), "chestTrapped"); // Register dyes String[] dyes = @@ -271,9 +271,9 @@ public class OreDictionary for(int i = 0; i < 16; i++) { - ItemStack dye = new ItemStack(Items.dye, 1, i); - ItemStack block = new ItemStack(Blocks.stained_glass, 1, 15 - i); - ItemStack pane = new ItemStack(Blocks.stained_glass_pane, 1, 15 - i); + ItemStack dye = new ItemStack(Items.DYE, 1, i); + ItemStack block = new ItemStack(Blocks.STAINED_GLASS, 1, 15 - i); + ItemStack pane = new ItemStack(Blocks.STAINED_GLASS_PANE, 1, 15 - i); if (!hasInit) { registerOre("dye" + dyes[i], dye); @@ -291,32 +291,32 @@ public class OreDictionary // Ignore recipes for the following items ItemStack[] exclusions = new ItemStack[] { - new ItemStack(Blocks.lapis_block), - new ItemStack(Items.cookie), - new ItemStack(Blocks.stonebrick), - new ItemStack(Blocks.stone_slab, 1, WILDCARD_VALUE), - new ItemStack(Blocks.stone_stairs), - new ItemStack(Blocks.cobblestone_wall), - new ItemStack(Blocks.oak_fence), - new ItemStack(Blocks.oak_fence_gate), - new ItemStack(Blocks.oak_stairs), - new ItemStack(Blocks.spruce_fence), - new ItemStack(Blocks.spruce_fence_gate), - new ItemStack(Blocks.spruce_stairs), - new ItemStack(Blocks.birch_fence), - new ItemStack(Blocks.birch_fence_gate), - new ItemStack(Blocks.birch_stairs), - new ItemStack(Blocks.jungle_fence), - new ItemStack(Blocks.jungle_fence_gate), - new ItemStack(Blocks.jungle_stairs), - new ItemStack(Blocks.acacia_fence), - new ItemStack(Blocks.acacia_fence_gate), - new ItemStack(Blocks.acacia_stairs), - new ItemStack(Blocks.dark_oak_fence), - new ItemStack(Blocks.dark_oak_fence_gate), - new ItemStack(Blocks.dark_oak_stairs), - new ItemStack(Blocks.wooden_slab), - new ItemStack(Blocks.glass_pane), + new ItemStack(Blocks.LAPIS_BLOCK), + new ItemStack(Items.COOKIE), + new ItemStack(Blocks.STONEBRICK), + new ItemStack(Blocks.STONE_SLAB, 1, WILDCARD_VALUE), + new ItemStack(Blocks.STONE_STAIRS), + new ItemStack(Blocks.COBBLESTONE_WALL), + new ItemStack(Blocks.OAK_FENCE), + new ItemStack(Blocks.OAK_FENCE_GATE), + new ItemStack(Blocks.OAK_STAIRS), + new ItemStack(Blocks.SPRUCE_FENCE), + new ItemStack(Blocks.SPRUCE_FENCE_GATE), + new ItemStack(Blocks.SPRUCE_STAIRS), + new ItemStack(Blocks.BIRCH_STAIRS), + new ItemStack(Blocks.BIRCH_FENCE_GATE), + new ItemStack(Blocks.BIRCH_STAIRS), + new ItemStack(Blocks.JUNGLE_FENCE), + new ItemStack(Blocks.JUNGLE_FENCE_GATE), + new ItemStack(Blocks.JUNGLE_STAIRS), + new ItemStack(Blocks.ACACIA_FENCE), + new ItemStack(Blocks.ACACIA_FENCE_GATE), + new ItemStack(Blocks.ACACIA_STAIRS), + new ItemStack(Blocks.DARK_OAK_FENCE), + new ItemStack(Blocks.DARK_OAK_FENCE_GATE), + new ItemStack(Blocks.DARK_OAK_STAIRS), + new ItemStack(Blocks.WOODEN_SLAB), + new ItemStack(Blocks.GLASS_PANE), null //So the above can have a comma and we don't have to keep editing extra lines. }; diff --git a/src/main/resources/forge.exc b/src/main/resources/forge.exc index 9e7a69fda5..f715ac5f39 100644 --- a/src/main/resources/forge.exc +++ b/src/main/resources/forge.exc @@ -42,8 +42,8 @@ net/minecraft/client/renderer/block/model/FaceBakery.rotateVertex(Lorg/lwjgl/uti net/minecraft/item/ItemBlock.setTileEntityNBT(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)Z=|p_179224_0_,p_179224_1_,p_179224_2_,player net/minecraft/server/management/PlayerList.initializeConnectionToPlayer(Lnet/minecraft/network/NetworkManager;Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/network/NetHandlerPlayServer;)V=|p_72355_1_,p_72355_2_,nethandlerplayserver -net/minecraft/item/ItemMonsterPlacer.spawnCreature(Lnet/minecraft/world/World;Ljava/lang/String;DDD)Lnet/minecraft/entity/Entity;=|p_77840_0_,name,p_77840_2_,p_77840_4_,p_77840_6_ +net/minecraft/stats/StatList.replaceAllSimilarBlocks([Lnet/minecraft/stats/StatBase;Z)V=|p_75924_0_,useItemIds net/minecraft/stats/StatList.mergeStatBases([Lnet/minecraft/stats/StatBase;Lnet/minecraft/block/Block;Lnet/minecraft/block/Block;Z)V=|p_151180_0_,p_151180_1_,p_151180_2_,useItemIds net/minecraft/item/ItemStack.(Lnet/minecraft/item/Item;IILnet/minecraft/nbt/NBTTagCompound;)V=|p_i1881_1_,p_i1881_2_,p_i1881_3_,capNBT diff --git a/src/test/java/net/minecraftforge/debug/DynBucketTest.java b/src/test/java/net/minecraftforge/debug/DynBucketTest.java index 1274077c60..e38452fdeb 100644 --- a/src/test/java/net/minecraftforge/debug/DynBucketTest.java +++ b/src/test/java/net/minecraftforge/debug/DynBucketTest.java @@ -90,8 +90,8 @@ public class DynBucketTest } }); ModelBakery.registerItemVariants(dynBottle, bottle); - ModelLoader.setCustomModelResourceLocation(Item.itemRegistry.getObject(simpleTankName), 0, new ModelResourceLocation(simpleTankName, "normal")); - ModelLoader.setCustomModelResourceLocation(Item.itemRegistry.getObject(testItemName), 0, new ModelResourceLocation(new ResourceLocation("minecraft", "stick"), "inventory")); + ModelLoader.setCustomModelResourceLocation(Item.REGISTRY.getObject(simpleTankName), 0, new ModelResourceLocation(simpleTankName, "normal")); + ModelLoader.setCustomModelResourceLocation(Item.REGISTRY.getObject(testItemName), 0, new ModelResourceLocation(new ResourceLocation("minecraft", "stick"), "inventory")); } } @@ -125,7 +125,7 @@ public class DynBucketTest //registerFluidContainer2(FluidRegistry.getFluid(TestGas.name), i++); // Set TestFluidBlocks blockstate to use milk instead of testfluid for the texture to be loaded - FluidContainerRegistry.registerFluidContainer(FluidRegistry.getFluid("milk"), new ItemStack(Items.milk_bucket), FluidContainerRegistry.EMPTY_BUCKET); + FluidContainerRegistry.registerFluidContainer(FluidRegistry.getFluid("milk"), new ItemStack(Items.MILK_BUCKET), FluidContainerRegistry.EMPTY_BUCKET); proxy.setupModels(); //MinecraftForge.EVENT_BUS.register(this); @@ -139,7 +139,7 @@ public class DynBucketTest FluidStack fs = new FluidStack(fluid, FluidContainerRegistry.BUCKET_VOLUME); ItemStack stack = new ItemStack(dynBucket, 1, meta); - FluidContainerRegistry.registerFluidContainer(fs, stack, new ItemStack(Items.bucket)); + FluidContainerRegistry.registerFluidContainer(fs, stack, new ItemStack(Items.BUCKET)); } @SuppressWarnings("unused") @@ -150,7 +150,7 @@ public class DynBucketTest FluidStack fs = new FluidStack(fluid, 250); ItemStack stack = new ItemStack(dynBottle, 1, meta); - FluidContainerRegistry.registerFluidContainer(fs, stack, new ItemStack(Items.glass_bottle)); + FluidContainerRegistry.registerFluidContainer(fs, stack, new ItemStack(Items.GLASS_BOTTLE)); } @SubscribeEvent @@ -182,17 +182,17 @@ public class DynBucketTest ItemStackHandler handler2 = new ItemStackHandler(5); IItemHandler joined = new CombinedInvWrapper(handler, handler2); - handler.setStackInSlot(0, new ItemStack(Blocks.stone)); - handler.setStackInSlot(1, new ItemStack(Blocks.grass)); - handler.setStackInSlot(2, new ItemStack(Blocks.dirt)); - handler.setStackInSlot(3, new ItemStack(Blocks.glass)); - handler.setStackInSlot(4, new ItemStack(Blocks.sand)); + handler.setStackInSlot(0, new ItemStack(Blocks.STONE)); + handler.setStackInSlot(1, new ItemStack(Blocks.GRASS)); + handler.setStackInSlot(2, new ItemStack(Blocks.DIRT)); + handler.setStackInSlot(3, new ItemStack(Blocks.GLASS)); + handler.setStackInSlot(4, new ItemStack(Blocks.SAND)); - handler2.setStackInSlot(0, new ItemStack(Blocks.slime_block)); - handler2.setStackInSlot(1, new ItemStack(Blocks.tnt)); - handler2.setStackInSlot(2, new ItemStack(Blocks.planks)); - handler2.setStackInSlot(3, new ItemStack(Blocks.log)); - handler2.setStackInSlot(4, new ItemStack(Blocks.diamond_block)); + handler2.setStackInSlot(0, new ItemStack(Blocks.SLIME_BLOCK)); + handler2.setStackInSlot(1, new ItemStack(Blocks.TNT)); + handler2.setStackInSlot(2, new ItemStack(Blocks.PLANKS)); + handler2.setStackInSlot(3, new ItemStack(Blocks.LOG)); + handler2.setStackInSlot(4, new ItemStack(Blocks.DIAMOND_BLOCK)); for (int i = 0; i < handler.getSlots(); i++) { System.out.println("Expected 1: " + handler.getStackInSlot(i)); @@ -217,7 +217,7 @@ public class DynBucketTest setUnlocalizedName("dynbucket"); setMaxStackSize(1); setHasSubtypes(true); - setCreativeTab(CreativeTabs.tabMisc); + setCreativeTab(CreativeTabs.MISC); } @Override @@ -236,12 +236,12 @@ public class DynBucketTest { public DynBottle() { - super(250, new ItemStack(Items.glass_bottle), true); + super(250, new ItemStack(Items.GLASS_BOTTLE), true); setUnlocalizedName("dynbottle"); setRegistryName(new ResourceLocation(MODID, "dynbottle")); setMaxStackSize(16); setHasSubtypes(true); - setCreativeTab(CreativeTabs.tabMisc); + setCreativeTab(CreativeTabs.MISC); } } @@ -251,8 +251,8 @@ public class DynBucketTest protected BlockSimpleTank() { - super(Material.rock); - setCreativeTab(CreativeTabs.tabMisc); + super(Material.ROCK); + setCreativeTab(CreativeTabs.MISC); } @Override @@ -369,17 +369,17 @@ public class DynBucketTest } @Override - public NBTTagCompound func_189515_b(NBTTagCompound tags) + public NBTTagCompound writeToNBT(NBTTagCompound tags) { - tags = super.func_189515_b(tags); + tags = super.writeToNBT(tags); tank.writeToNBT(tags); return tags; } @Override - public SPacketUpdateTileEntity func_189518_D_() { + public SPacketUpdateTileEntity getUpdatePacket() { NBTTagCompound tag = new NBTTagCompound(); - func_189515_b(tag); + tag = writeToNBT(tag); return new SPacketUpdateTileEntity(this.getPos(), this.getBlockMetadata(), tag); } diff --git a/src/test/java/net/minecraftforge/debug/ForgeBlockStatesLoaderDebug.java b/src/test/java/net/minecraftforge/debug/ForgeBlockStatesLoaderDebug.java index fcd979faf6..e53581ce1f 100644 --- a/src/test/java/net/minecraftforge/debug/ForgeBlockStatesLoaderDebug.java +++ b/src/test/java/net/minecraftforge/debug/ForgeBlockStatesLoaderDebug.java @@ -37,7 +37,7 @@ public class ForgeBlockStatesLoaderDebug { //public static final Block blockCustom = new CustomMappedBlock(); public static final String nameCustomWall = "custom_wall"; - public static final BlockWall blockCustomWall = new BlockWall(Blocks.cobblestone); + public static final BlockWall blockCustomWall = new BlockWall(Blocks.COBBLESTONE); public static final ItemMultiTexture itemCustomWall = (ItemMultiTexture)new ItemMultiTexture(blockCustomWall, blockCustomWall, new Function() { @Override diff --git a/src/test/java/net/minecraftforge/debug/ItemLayerModelDebug.java b/src/test/java/net/minecraftforge/debug/ItemLayerModelDebug.java index 1e827bb0c3..b46dcf9947 100644 --- a/src/test/java/net/minecraftforge/debug/ItemLayerModelDebug.java +++ b/src/test/java/net/minecraftforge/debug/ItemLayerModelDebug.java @@ -51,7 +51,7 @@ public class ItemLayerModelDebug private TestItem() { - setCreativeTab(CreativeTabs.tabBlock); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(MODID + ":" + name); setRegistryName(new ResourceLocation(MODID, name)); } diff --git a/src/test/java/net/minecraftforge/debug/ItemTileDebug.java b/src/test/java/net/minecraftforge/debug/ItemTileDebug.java index 8cd2b7a84b..318beaf552 100644 --- a/src/test/java/net/minecraftforge/debug/ItemTileDebug.java +++ b/src/test/java/net/minecraftforge/debug/ItemTileDebug.java @@ -123,8 +123,8 @@ public class ItemTileDebug private TestBlock() { - super(Material.iron); - setCreativeTab(CreativeTabs.tabBlock); + super(Material.IRON); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(MODID + ":" + name); setRegistryName(new ResourceLocation(MODID, name)); } diff --git a/src/test/java/net/minecraftforge/debug/LootTablesDebug.java b/src/test/java/net/minecraftforge/debug/LootTablesDebug.java index f22247a134..7b4a89e948 100644 --- a/src/test/java/net/minecraftforge/debug/LootTablesDebug.java +++ b/src/test/java/net/minecraftforge/debug/LootTablesDebug.java @@ -34,7 +34,7 @@ public class LootTablesDebug { LootPool main = event.getTable().getPool("main"); //Note: This CAN NPE if another mod removes things main.removeEntry("minecraft:wooden_axe"); main.removeEntry("minecraft:stone_axe"); - main.addEntry(new LootEntryItem(Items.diamond_chestplate, 1, 0, new LootFunction[0], new LootCondition[0], MODID + ":diamond_chestplate")); + main.addEntry(new LootEntryItem(Items.DIAMOND_CHESTPLATE, 1, 0, new LootFunction[0], new LootCondition[0], MODID + ":diamond_chestplate")); // Get rid of all building mats. Which is pool #3, index starts at 0, but 0 is named "main" event.getTable().removePool("pool3"); diff --git a/src/test/java/net/minecraftforge/debug/ModelAnimationDebug.java b/src/test/java/net/minecraftforge/debug/ModelAnimationDebug.java index f546b01f8c..92b44cb2d8 100644 --- a/src/test/java/net/minecraftforge/debug/ModelAnimationDebug.java +++ b/src/test/java/net/minecraftforge/debug/ModelAnimationDebug.java @@ -77,10 +77,10 @@ public class ModelAnimationDebug { public void preInit(FMLPreInitializationEvent event) { - GameRegistry.register(new Block(Material.wood) + GameRegistry.register(new Block(Material.WOOD) { { - setCreativeTab(CreativeTabs.tabBlock); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(MODID + "." + blockName); setRegistryName(blockId); } @@ -152,7 +152,7 @@ public class ModelAnimationDebug return true; } }); - GameRegistry.register(new ItemBlock(Block.blockRegistry.getObject(blockId)) + GameRegistry.register(new ItemBlock(Block.REGISTRY.getObject(blockId)) { @Override public ICapabilityProvider initCapabilities(ItemStack stack, NBTTagCompound nbt) @@ -181,7 +181,7 @@ public class ModelAnimationDebug { super.preInit(event); B3DLoader.INSTANCE.addDomain(MODID); - ModelLoader.setCustomModelResourceLocation(Item.itemRegistry.getObject(blockId), 0, new ModelResourceLocation(blockId, "inventory")); + ModelLoader.setCustomModelResourceLocation(Item.REGISTRY.getObject(blockId), 0, new ModelResourceLocation(blockId, "inventory")); ClientRegistry.bindTileEntitySpecialRenderer(Chest.class, new AnimationTESR() { @Override @@ -219,7 +219,7 @@ public class ModelAnimationDebug { protected ResourceLocation getEntityTexture(EntityChest entity) { - return TextureMap.locationBlocksTexture; + return TextureMap.LOCATION_BLOCKS_TEXTURE; } }; } diff --git a/src/test/java/net/minecraftforge/debug/ModelBakeEventDebug.java b/src/test/java/net/minecraftforge/debug/ModelBakeEventDebug.java index 478b140a86..acc12822fc 100644 --- a/src/test/java/net/minecraftforge/debug/ModelBakeEventDebug.java +++ b/src/test/java/net/minecraftforge/debug/ModelBakeEventDebug.java @@ -132,8 +132,8 @@ public class ModelBakeEventDebug private CustomModelBlock() { - super(Material.iron); - setCreativeTab(CreativeTabs.tabBlock); + super(Material.IRON); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(MODID + ":" + name); setRegistryName(blockName); } diff --git a/src/test/java/net/minecraftforge/debug/ModelFluidDebug.java b/src/test/java/net/minecraftforge/debug/ModelFluidDebug.java index 9937c33429..9d9256525f 100644 --- a/src/test/java/net/minecraftforge/debug/ModelFluidDebug.java +++ b/src/test/java/net/minecraftforge/debug/ModelFluidDebug.java @@ -158,8 +158,8 @@ public class ModelFluidDebug private TestFluidBlock() { - super(TestFluid.instance, Material.water); - setCreativeTab(CreativeTabs.tabBlock); + super(TestFluid.instance, Material.WATER); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(MODID + ":" + name); setRegistryName(new ResourceLocation(MODID, name)); } @@ -172,8 +172,8 @@ public class ModelFluidDebug private MilkFluidBlock() { - super(milkFluid, Material.water); - setCreativeTab(CreativeTabs.tabBlock); + super(milkFluid, Material.WATER); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(MODID + ":" + name); setRegistryName(new ResourceLocation(MODID, name)); } @@ -186,8 +186,8 @@ public class ModelFluidDebug private TestGasBlock() { - super(TestGas.instance, Material.lava); - setCreativeTab(CreativeTabs.tabBlock); + super(TestGas.instance, Material.LAVA); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(MODID + ":" + name); setRegistryName(new ResourceLocation(MODID, name)); } diff --git a/src/test/java/net/minecraftforge/debug/ModelLoaderRegistryDebug.java b/src/test/java/net/minecraftforge/debug/ModelLoaderRegistryDebug.java index 430072227a..bf25428c4b 100644 --- a/src/test/java/net/minecraftforge/debug/ModelLoaderRegistryDebug.java +++ b/src/test/java/net/minecraftforge/debug/ModelLoaderRegistryDebug.java @@ -124,9 +124,9 @@ public class ModelLoaderRegistryDebug private CustomModelBlock() { - super(Material.iron); + super(Material.IRON); this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH)); - setCreativeTab(CreativeTabs.tabBlock); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(MODID + ":" + name); setRegistryName(new ResourceLocation(MODID, name)); } @@ -225,8 +225,8 @@ public class ModelLoaderRegistryDebug private OBJTesseractBlock() { - super(Material.iron); - setCreativeTab(CreativeTabs.tabBlock); + super(Material.IRON); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(MODID + ":" + name); setRegistryName(new ResourceLocation(MODID, name)); } @@ -371,8 +371,8 @@ public class ModelLoaderRegistryDebug private OBJVertexColoring1() { - super(Material.iron); - setCreativeTab(CreativeTabs.tabBlock); + super(Material.IRON); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(name); setRegistryName(new ResourceLocation(MODID, name)); } @@ -403,9 +403,9 @@ public class ModelLoaderRegistryDebug private OBJDirectionEye() { - super(Material.iron); + super(Material.IRON); setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH)); - setCreativeTab(CreativeTabs.tabBlock); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(name); setRegistryName(new ResourceLocation(MODID, name)); } @@ -487,8 +487,8 @@ public class ModelLoaderRegistryDebug private OBJVertexColoring2() { - super(Material.iron); - setCreativeTab(CreativeTabs.tabBlock); + super(Material.IRON); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(name); setRegistryName(new ResourceLocation(MODID, name)); } @@ -590,9 +590,9 @@ public class ModelLoaderRegistryDebug private OBJDirectionBlock() { - super(Material.iron); + super(Material.IRON); this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH)); - setCreativeTab(CreativeTabs.tabBlock); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(MODID + ":" + name); setRegistryName(new ResourceLocation(MODID, name)); } @@ -678,9 +678,9 @@ public class ModelLoaderRegistryDebug private OBJCustomDataBlock() { - super(Material.iron); + super(Material.IRON); this.setDefaultState(this.blockState.getBaseState().withProperty(NORTH, false).withProperty(SOUTH, false).withProperty(WEST, false).withProperty(EAST, false)); - setCreativeTab(CreativeTabs.tabBlock); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(MODID + ":" + name); setRegistryName(new ResourceLocation(MODID, name)); } @@ -735,8 +735,8 @@ public class ModelLoaderRegistryDebug public ExtendedBlockState state = new ExtendedBlockState(this, new IProperty[0], new IUnlistedProperty[] {OBJModel.OBJProperty.INSTANCE}); private OBJDynamicEye() { - super(Material.iron); - setCreativeTab(CreativeTabs.tabBlock); + super(Material.IRON); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(MODID + ":" + name); setRegistryName(new ResourceLocation(MODID, name)); } diff --git a/src/test/java/net/minecraftforge/debug/MultiLayerModelDebug.java b/src/test/java/net/minecraftforge/debug/MultiLayerModelDebug.java index 468d37c5f8..f50512b356 100644 --- a/src/test/java/net/minecraftforge/debug/MultiLayerModelDebug.java +++ b/src/test/java/net/minecraftforge/debug/MultiLayerModelDebug.java @@ -32,10 +32,10 @@ public class MultiLayerModelDebug { public void preInit(FMLPreInitializationEvent event) { - GameRegistry.register(new Block(Material.wood) + GameRegistry.register(new Block(Material.WOOD) { { - setCreativeTab(CreativeTabs.tabBlock); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(MODID + "." + blockName); setRegistryName(blockId); } @@ -52,7 +52,7 @@ public class MultiLayerModelDebug return layer == BlockRenderLayer.SOLID || layer == BlockRenderLayer.TRANSLUCENT; } }); - GameRegistry.register(new ItemBlock(Block.blockRegistry.getObject(blockId)).setRegistryName(blockId)); + GameRegistry.register(new ItemBlock(Block.REGISTRY.getObject(blockId)).setRegistryName(blockId)); } } @@ -64,7 +64,7 @@ public class MultiLayerModelDebug public void preInit(FMLPreInitializationEvent event) { super.preInit(event); - ModelLoader.setCustomModelResourceLocation(Item.itemRegistry.getObject(blockId), 0, new ModelResourceLocation(blockId, "inventory")); + ModelLoader.setCustomModelResourceLocation(Item.REGISTRY.getObject(blockId), 0, new ModelResourceLocation(blockId, "inventory")); } } diff --git a/src/test/java/net/minecraftforge/debug/PotionRegistryDebug.java b/src/test/java/net/minecraftforge/debug/PotionRegistryDebug.java index 6bfb4e5930..8e80a00a11 100644 --- a/src/test/java/net/minecraftforge/debug/PotionRegistryDebug.java +++ b/src/test/java/net/minecraftforge/debug/PotionRegistryDebug.java @@ -60,7 +60,7 @@ public class PotionRegistryDebug { public void renderInventoryEffect(int x, int y, PotionEffect effect, Minecraft mc) { Potion potion = effect.getPotion(); - mc.getTextureManager().bindTexture(TextureMap.locationBlocksTexture); + mc.getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); TextureAtlasSprite sprite = mc.getTextureMapBlocks().getAtlasSprite("minecraft:blocks/fire_layer_0"); x += 6; @@ -89,7 +89,7 @@ public class PotionRegistryDebug { public void renderHUDEffect(int x, int y, PotionEffect effect, Minecraft mc, float alpha) { Potion potion = effect.getPotion(); - mc.getTextureManager().bindTexture(TextureMap.locationBlocksTexture); + mc.getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); TextureAtlasSprite sprite = mc.getTextureMapBlocks().getAtlasSprite("minecraft:blocks/tnt_side"); x += 3; diff --git a/src/test/java/net/minecraftforge/test/BrewingRecipeRegistryTest.java b/src/test/java/net/minecraftforge/test/BrewingRecipeRegistryTest.java index 2d825de956..eec99f583e 100644 --- a/src/test/java/net/minecraftforge/test/BrewingRecipeRegistryTest.java +++ b/src/test/java/net/minecraftforge/test/BrewingRecipeRegistryTest.java @@ -8,33 +8,33 @@ import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.event.FMLInitializationEvent; @Mod(modid="BrewingRecipeRegistryTest", name="BrewingRecipeRegistryTest", version="0.0.0") -public class BrewingRecipeRegistryTest +public class BrewingRecipeRegistryTest { public static final boolean ENABLE = false; - + @EventHandler - public void init(FMLInitializationEvent event) + public void init(FMLInitializationEvent event) { if(!ENABLE) return; - - // The following adds a recipe that brews a piece of rotten flesh "into" a diamond sword resulting in a diamond hoe - BrewingRecipeRegistry.addRecipe(new ItemStack(Items.diamond_sword), new ItemStack(Items.rotten_flesh), new ItemStack(Items.diamond_hoe)); - ItemStack output0 = BrewingRecipeRegistry.getOutput(new ItemStack(Items.diamond_sword), new ItemStack(Items.rotten_flesh)); - if(output0.getItem() == Items.diamond_hoe) + // The following adds a recipe that brews a piece of rotten flesh "into" a diamond sword resulting in a diamond hoe + BrewingRecipeRegistry.addRecipe(new ItemStack(Items.DIAMOND_SWORD), new ItemStack(Items.ROTTEN_FLESH), new ItemStack(Items.DIAMOND_HOE)); + + ItemStack output0 = BrewingRecipeRegistry.getOutput(new ItemStack(Items.DIAMOND_SWORD), new ItemStack(Items.ROTTEN_FLESH)); + if(output0.getItem() == Items.DIAMOND_HOE) System.out.println("Recipe succefully registered and working. Diamond Hoe obtained."); - + // Testing if OreDictionary support is working. Register a recipe that brews a gemDiamond into a gold sword resulting in a diamond sword - BrewingRecipeRegistry.addRecipe(new ItemStack(Items.golden_sword), "gemDiamond", new ItemStack(Items.diamond_sword)); - - ItemStack output1 = BrewingRecipeRegistry.getOutput(new ItemStack(Items.golden_sword), new ItemStack(Items.diamond)); - if(output1.getItem() == Items.diamond_sword) + BrewingRecipeRegistry.addRecipe(new ItemStack(Items.GOLDEN_SWORD), "gemDiamond", new ItemStack(Items.DIAMOND_SWORD)); + + ItemStack output1 = BrewingRecipeRegistry.getOutput(new ItemStack(Items.GOLDEN_SWORD), new ItemStack(Items.DIAMOND)); + if(output1.getItem() == Items.DIAMOND_SWORD) System.out.println("Recipe succefully registered and working. Diamond Sword obtained."); - + // In vanilla, brewing netherwart into a water bottle results in an awkward potion (with metadata 16). The following tests if that still happens - ItemStack output2 = BrewingRecipeRegistry.getOutput(new ItemStack(Items.potionitem, 1, 0), new ItemStack(Items.nether_wart)); - if(output2 != null && output2.getItem() == Items.potionitem && output2.getItemDamage() == 16) + ItemStack output2 = BrewingRecipeRegistry.getOutput(new ItemStack(Items.POTIONITEM, 1, 0), new ItemStack(Items.NETHER_WART)); + if(output2 != null && output2.getItem() == Items.POTIONITEM && output2.getItemDamage() == 16) System.out.println("Vanilla behaviour still in place. Brewed Water Bottle with Nether Wart and got Awkward Potion"); } } diff --git a/src/test/java/net/minecraftforge/test/FOVModifierTest.java b/src/test/java/net/minecraftforge/test/FOVModifierTest.java index efcb082f0c..495bf99244 100644 --- a/src/test/java/net/minecraftforge/test/FOVModifierTest.java +++ b/src/test/java/net/minecraftforge/test/FOVModifierTest.java @@ -15,12 +15,12 @@ public class FOVModifierTest { @EventHandler public void init(FMLInitializationEvent event) { - MinecraftForge.EVENT_BUS.register(this); + MinecraftForge.EVENT_BUS.register(this); } - + @SubscribeEvent public void getFOVModifier(EntityViewRenderEvent.FOVModifier event) { - if(event.getState().getMaterial() == Material.water) + if(event.getState().getMaterial() == Material.WATER) event.setFOV(event.getFOV() / 60.0f * 50.0f); } } diff --git a/src/test/java/net/minecraftforge/test/NoBedSleepingTest.java b/src/test/java/net/minecraftforge/test/NoBedSleepingTest.java index 471a8e0bda..56ad676c61 100644 --- a/src/test/java/net/minecraftforge/test/NoBedSleepingTest.java +++ b/src/test/java/net/minecraftforge/test/NoBedSleepingTest.java @@ -152,7 +152,7 @@ public class NoBedSleepingTest private ItemSleepingPill() { - setCreativeTab(CreativeTabs.tabMisc); + setCreativeTab(CreativeTabs.MISC); setUnlocalizedName(MODID + ":" + name); setRegistryName(new ResourceLocation(MODID, name)); } diff --git a/src/test/java/net/minecraftforge/test/PlayerInteractEventTest.java b/src/test/java/net/minecraftforge/test/PlayerInteractEventTest.java index 97739dd877..744ecfec51 100644 --- a/src/test/java/net/minecraftforge/test/PlayerInteractEventTest.java +++ b/src/test/java/net/minecraftforge/test/PlayerInteractEventTest.java @@ -50,11 +50,11 @@ public class PlayerInteractEventTest if (evt.getItemStack() != null) { - if (evt.getItemStack().getItem() == Items.golden_pickaxe) + if (evt.getItemStack().getItem() == Items.GOLDEN_PICKAXE) evt.setCanceled(true); // Redstone should not activate and pick should not be able to dig anything - if (evt.getItemStack().getItem() == Items.diamond_pickaxe) + if (evt.getItemStack().getItem() == Items.DIAMOND_PICKAXE) evt.setUseBlock(Event.Result.DENY); // Redstone should not activate, pick should still dig - if (evt.getItemStack().getItem() == Items.iron_pickaxe) + if (evt.getItemStack().getItem() == Items.IRON_PICKAXE) evt.setUseItem(Event.Result.DENY); // Pick should not dig, Redstone should still activate } @@ -88,18 +88,18 @@ public class PlayerInteractEventTest // Case: Flint and steel in main hand on top of a TE will light a fire, not open the TE. // Note that if you do this on a chest, the f+s will fail, but then your off hand will open the chest // If you dual wield flints and steels and right click a chest nothing should happen - if (evt.getItemStack() != null && evt.getItemStack().getItem() == Items.flint_and_steel) + if (evt.getItemStack() != null && evt.getItemStack().getItem() == Items.FLINT_AND_STEEL) evt.setUseBlock(Event.Result.DENY); // Case: Painting in main hand // Opening a TE will also place a painting on the TE if possible - if (evt.getHand() == EnumHand.MAIN_HAND && evt.getItemStack() != null && evt.getItemStack().getItem() == Items.painting) { + if (evt.getHand() == EnumHand.MAIN_HAND && evt.getItemStack() != null && evt.getItemStack().getItem() == Items.PAINTING) { evt.setUseItem(Event.Result.ALLOW); } // Spawn egg in main hand, block in offhand -> block should be placed // Sword in main hand, spawn egg in offhand -> nothing should happen - if (evt.getItemStack() != null && evt.getItemStack().getItem() == Items.spawn_egg) { + if (evt.getItemStack() != null && evt.getItemStack().getItem() == Items.SPAWN_EGG) { evt.setCanceled(true); } @@ -115,7 +115,7 @@ public class PlayerInteractEventTest // Case: Ender pearl in main hand, bow in offhand with arrows in inv -> Bow should trigger // Case: Sword in main hand, ender pearl in offhand -> Nothing should happen - if (evt.getItemStack() != null && evt.getItemStack().getItem() == Items.ender_pearl) + if (evt.getItemStack() != null && evt.getItemStack().getItem() == Items.ENDER_PEARL) evt.setCanceled(true); } @@ -127,7 +127,7 @@ public class PlayerInteractEventTest if (evt.getItemStack() != null && evt.getTarget() instanceof EntityArmorStand - && evt.getItemStack().getItem() == Items.iron_helmet) + && evt.getItemStack().getItem() == Items.IRON_HELMET) evt.setCanceled(true); // Should not be able to place iron helmet onto armor stand (you will put it on instead) if (evt.getWorld().isRemote diff --git a/src/test/java/net/minecraftforge/test/TestCapabilityMod.java b/src/test/java/net/minecraftforge/test/TestCapabilityMod.java index 44a6d22245..58b796ec9a 100644 --- a/src/test/java/net/minecraftforge/test/TestCapabilityMod.java +++ b/src/test/java/net/minecraftforge/test/TestCapabilityMod.java @@ -45,7 +45,7 @@ public class TestCapabilityMod public void onInteract(PlayerInteractEvent.LeftClickBlock event) { if (event.getItemStack() == null) return; - if (event.getItemStack().getItem() != Items.stick) return; + if (event.getItemStack().getItem() != Items.STICK) return; // This is just a example of how to interact with the TE, note the strong type binding that getCapability has TileEntity te = event.getWorld().getTileEntity(event.getPos()); @@ -55,7 +55,7 @@ public class TestCapabilityMod IExampleCapability inv = te.getCapability(TEST_CAP, event.getFace()); System.out.println("Hi I'm a " + inv.getOwnerType()); } - if (event.getWorld().getBlockState(event.getPos()).getBlock() == Blocks.dirt) + if (event.getWorld().getBlockState(event.getPos()).getBlock() == Blocks.DIRT) { event.getEntityPlayer().addChatMessage(new TextComponentString(TextFormatting.RED + "" + TextFormatting.ITALIC + "TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST")); event.setCanceled(true); From 68ad1e03cf3c885b6ba3e1450d84d925156ce02a Mon Sep 17 00:00:00 2001 From: cpw Date: Wed, 18 May 2016 13:10:41 -0400 Subject: [PATCH 03/45] Fix schizophrenia in version numbers. --- src/main/java/net/minecraftforge/common/ForgeVersion.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/minecraftforge/common/ForgeVersion.java b/src/main/java/net/minecraftforge/common/ForgeVersion.java index 7232ba678f..03c2c9147a 100644 --- a/src/main/java/net/minecraftforge/common/ForgeVersion.java +++ b/src/main/java/net/minecraftforge/common/ForgeVersion.java @@ -39,7 +39,7 @@ public class ForgeVersion //This number is incremented every time Jenkins builds Forge, and never reset. Should always be 0 in the repo code. public static final int buildVersion = 0; // This is the minecraft version we're building for - used in various places in Forge/FML code - public static final String mcVersion = "1.9"; + public static final String mcVersion = "1.9.4"; // This is the MCP data version we're using public static final String mcpVersion = "9.23"; @SuppressWarnings("unused") From 5bd06388c1583716b1b4ea95a31204883fa11a50 Mon Sep 17 00:00:00 2001 From: LexManos Date: Wed, 18 May 2016 17:22:39 -0700 Subject: [PATCH 04/45] Bump version information for 1.9.4. --- src/main/java/net/minecraftforge/common/ForgeVersion.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraftforge/common/ForgeVersion.java b/src/main/java/net/minecraftforge/common/ForgeVersion.java index 03c2c9147a..635934a5f2 100644 --- a/src/main/java/net/minecraftforge/common/ForgeVersion.java +++ b/src/main/java/net/minecraftforge/common/ForgeVersion.java @@ -33,15 +33,15 @@ public class ForgeVersion //This number is incremented every time we remove deprecated code/major API changes, never reset public static final int majorVersion = 12; //This number is incremented every minecraft release, never reset - public static final int minorVersion = 16; + public static final int minorVersion = 17; //This number is incremented every time a interface changes or new major feature is added, and reset every Minecraft version - public static final int revisionVersion = 1; + public static final int revisionVersion = 0; //This number is incremented every time Jenkins builds Forge, and never reset. Should always be 0 in the repo code. public static final int buildVersion = 0; // This is the minecraft version we're building for - used in various places in Forge/FML code public static final String mcVersion = "1.9.4"; // This is the MCP data version we're using - public static final String mcpVersion = "9.23"; + public static final String mcpVersion = "9.28"; @SuppressWarnings("unused") private static Status status = PENDING; @SuppressWarnings("unused") From 7f6f2f0ec19ec09d752ec10eb5be952fd5f3badc Mon Sep 17 00:00:00 2001 From: LexManos Date: Wed, 18 May 2016 18:06:41 -0700 Subject: [PATCH 05/45] Update example mod for new mappings. --- mdk/src/main/java/com/example/examplemod/ExampleMod.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mdk/src/main/java/com/example/examplemod/ExampleMod.java b/mdk/src/main/java/com/example/examplemod/ExampleMod.java index 82123bc37b..f01de148ef 100644 --- a/mdk/src/main/java/com/example/examplemod/ExampleMod.java +++ b/mdk/src/main/java/com/example/examplemod/ExampleMod.java @@ -14,7 +14,7 @@ public class ExampleMod @EventHandler public void init(FMLInitializationEvent event) { - // some example code - System.out.println("DIRT BLOCK >> "+Blocks.dirt.getUnlocalizedName()); + // some example code + System.out.println("DIRT BLOCK >> "+Blocks.DIRT.getUnlocalizedName()); } } From a4e2d0e30497870c8396ac2a8e4461613c0ac8ed Mon Sep 17 00:00:00 2001 From: Steven Blom Date: Fri, 20 May 2016 13:25:04 +0930 Subject: [PATCH 06/45] Add Unit Test to detect mismatches between EnumHelper and Enum ctor --- .../minecraftforge/test/EnumHelperTest.java | 59 ++++++++++++++++++- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/src/test/java/net/minecraftforge/test/EnumHelperTest.java b/src/test/java/net/minecraftforge/test/EnumHelperTest.java index 174a46561d..0b9ba148fd 100644 --- a/src/test/java/net/minecraftforge/test/EnumHelperTest.java +++ b/src/test/java/net/minecraftforge/test/EnumHelperTest.java @@ -1,6 +1,7 @@ package net.minecraftforge.test; import java.lang.reflect.Constructor; +import java.lang.reflect.Method; import net.minecraftforge.client.EnumHelperClient; import net.minecraftforge.common.BiomeDictionary; @@ -16,7 +17,60 @@ public class EnumHelperTest private boolean failed = false; @Test - public void test() + public void testEnumHelperMethodsMatchEnumConstructors() + { + //Quick note to point out that Enum constructors start with (string name, int ordinal). + // EnumHelper methods by convention start with (string name), and the ordinal is calculated. + for (Method method : EnumHelper.class.getDeclaredMethods()) + { + String name = method.getName(); + if (!name.equals("addEnum") && name.startsWith("add")) + { + System.out.println(" " + method); + + Class returnType = method.getReturnType(); + Constructor[] declaredConstructors = returnType.getDeclaredConstructors(); + Class[] actualParameters = method.getParameterTypes(); + + Assert.assertTrue(actualParameters.length >= 1); + Assert.assertEquals("First parameter of add method should be String (name)", + String.class, + actualParameters[0]); + Assert.assertEquals(String.class, actualParameters[0]); + + for (Constructor declaredConstructor : declaredConstructors) + { + System.out.println(" " + declaredConstructor.toString()); + + Class[] expectedParameters = declaredConstructor.getParameterTypes(); + + Assert.assertTrue(expectedParameters.length >= 2); + Assert.assertEquals("First parameter of enum constructor should be String (name)", + String.class, + expectedParameters[0]); + Assert.assertEquals("Second parameter of enum should be int (ordinal)", + int.class, + expectedParameters[1]); + + for (int i = 1, j = 2; i < actualParameters.length && j < expectedParameters.length; i++, j++) + { + Assert.assertEquals( + "method Parameter " + i + " (" + actualParameters[i].getName() + ") " + + "should match constructor parameter" + j + " (" + expectedParameters[j] + ")", + expectedParameters[j], + actualParameters[i]); + } + + Assert.assertEquals("Length of parameters incorrect", + (expectedParameters.length - 2), + (actualParameters.length - 1)); + } + } + } + } + + @Test + public void testEnumHelperTypes() { System.out.println("Testing EnumHelper:"); Object[][] types = (Object[][])ReflectionHelper.getPrivateValue(EnumHelper.class, null, "commonTypes"); @@ -24,7 +78,7 @@ public class EnumHelperTest testType(o); System.out.println("Testing EnumHelperClient:"); - types = (Object[][])ReflectionHelper.getPrivateValue(EnumHelperClient.class, null, "clentTypes"); + types = (Object[][])ReflectionHelper.getPrivateValue(EnumHelperClient.class, null, "clientTypes"); for (Object[] o : types) testType(o); @@ -33,6 +87,7 @@ public class EnumHelperTest Assert.assertEquals(BiomeDictionary.Type.BEACH, BiomeDictionary.Type.getType("BEACH")); Assert.assertEquals(BiomeDictionary.Type.getType("NEWTYPE"), BiomeDictionary.Type.getType("NEWTYPE")); } + private void testType(Object[] info) { Class cls = (Class)info[0]; From f4750ae2bf264f806ee91213a3331f6962f58e29 Mon Sep 17 00:00:00 2001 From: cpw Date: Sat, 21 May 2016 09:18:51 -0400 Subject: [PATCH 07/45] Tweak build file slightly - allow passing buildNumber using gradle parameters (-PbuildNumber=...) and provide a "resetBuildNumber" function to reset the buildNumber to zero in the ForgeVersion file. Means builds can be reproducible in-IDE. --- build.gradle | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index 6d739dd74a..b3344ee934 100644 --- a/build.gradle +++ b/build.gradle @@ -89,7 +89,7 @@ task changelog(type: JenkinsChangelog) { outputs.upToDateWhen { false } // never up to date serverRoot = "http://ci.jenkins.minecraftforge.net/" jobName = "minecraftforge" - targetBuild = System.env['BUILD_NUMBER'] ?: 0; + targetBuild = System.env['BUILD_NUMBER'] ?: project.ext.properties.buildNumber ?:0; authName = "console_script" authPassword = project.hasProperty('forgeJenkinsPass') ? project.getProperty('forgeJenkinsPass') : ""; output = "build/distributions/${project.name}-${project.version}-changelog.txt" @@ -218,14 +218,13 @@ artifacts { task ciWriteBuildNumber << { def file = file("src/main/java/net/minecraftforge/common/ForgeVersion.java"); - def bn = System.getenv("BUILD_NUMBER")?:0; + def bn = System.getenv("BUILD_NUMBER")?:project.ext.properties.buildNumber?:0; def outfile = ""; def ln = System.getProperty('line.separator') file.eachLine{ String s -> - if (s.contains("buildVersion") && s.contains("= 0;")) { + if (s.matches("^ public static final int buildVersion = [\\d]+;\$")) s = " public static final int buildVersion = ${bn};"; - } outfile += (s+ln); } file.write(outfile); @@ -345,10 +344,8 @@ String getVersionFromJava(File file) } } - if (System.getenv().containsKey("BUILD_NUMBER")) - { - build = System.getenv("BUILD_NUMBER"); - } + build = System.getenv("BUILD_NUMBER") ?: project.ext.properties.buildNumber ?: 0 + String branch = null; if (!System.getenv().containsKey("GIT_BRANCH")) @@ -370,6 +367,10 @@ String getVersionFromJava(File file) return out; } +task resetBuildNumber << { + project.ext.properties.buildNumber = 0; + ciWriteBuildNumber.execute() +} // re-add old tasks for jenkins compat // should be remvoed, and the jenkisn fixed when no longer building with FG 1.2 task setupForge { dependsOn 'setup' } @@ -386,4 +387,4 @@ task fixParams << { } fixParams.dependsOn('extractMcpMappings') extractMcpMappings.finalizedBy('fixParams') -*/ \ No newline at end of file +*/ From 95bacd7a52b1faab8239a35216cb718b061b5509 Mon Sep 17 00:00:00 2001 From: tterrag Date: Sun, 22 May 2016 03:11:09 -0400 Subject: [PATCH 08/45] Fix screenshot link paths on Windows (#2886) --- .../minecraft/net/minecraft/util/ScreenShotHelper.java.patch | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/patches/minecraft/net/minecraft/util/ScreenShotHelper.java.patch b/patches/minecraft/net/minecraft/util/ScreenShotHelper.java.patch index 66c5e3cffc..f7ace8c62a 100644 --- a/patches/minecraft/net/minecraft/util/ScreenShotHelper.java.patch +++ b/patches/minecraft/net/minecraft/util/ScreenShotHelper.java.patch @@ -1,9 +1,10 @@ --- ../src-base/minecraft/net/minecraft/util/ScreenShotHelper.java +++ ../src-work/minecraft/net/minecraft/util/ScreenShotHelper.java -@@ -52,10 +52,13 @@ +@@ -52,10 +52,14 @@ file2 = new File(file1, p_148259_1_); } ++ file2 = file2.getCanonicalFile(); // FORGE: Fix errors on Windows with paths that include \.\ + net.minecraftforge.client.event.ScreenshotEvent event = net.minecraftforge.client.ForgeHooksClient.onScreenshot(bufferedimage, file2); + if (event.isCanceled()) return event.getCancelMessage(); else file2 = event.getScreenshotFile(); ImageIO.write(bufferedimage, "png", (File)file2); From 9df1e4b11e0d2d0fbf938cedae2da130d40cca89 Mon Sep 17 00:00:00 2001 From: LexManos Date: Mon, 23 May 2016 15:30:20 -0700 Subject: [PATCH 09/45] Take capabilities into account when comparing ItemStack NBT's. Closes #2726 --- .../net/minecraft/item/ItemStack.java.patch | 42 +++++++++++++++++-- .../capabilities/CapabilityDispatcher.java | 7 ++++ 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/patches/minecraft/net/minecraft/item/ItemStack.java.patch b/patches/minecraft/net/minecraft/item/ItemStack.java.patch index 39a3c359c6..8d9ed7a16a 100644 --- a/patches/minecraft/net/minecraft/item/ItemStack.java.patch +++ b/patches/minecraft/net/minecraft/item/ItemStack.java.patch @@ -164,7 +164,41 @@ if (this.field_77990_d != null) { -@@ -762,6 +768,7 @@ +@@ -352,7 +358,19 @@ + + public static boolean func_77970_a(@Nullable ItemStack p_77970_0_, @Nullable ItemStack p_77970_1_) + { +- return p_77970_0_ == null && p_77970_1_ == null ? true : (p_77970_0_ != null && p_77970_1_ != null ? (p_77970_0_.field_77990_d == null && p_77970_1_.field_77990_d != null ? false : p_77970_0_.field_77990_d == null || p_77970_0_.field_77990_d.equals(p_77970_1_.field_77990_d)) : false); ++ if (p_77970_0_ == null && p_77970_1_ == null) return true; ++ if (p_77970_0_ == null && p_77970_1_ != null) return false; ++ if (p_77970_0_ != null && p_77970_1_ == null) return false; ++ if (p_77970_0_.field_77990_d == null && p_77970_1_.field_77990_d != null) return false; ++ if (p_77970_0_.field_77990_d != null && p_77970_1_.field_77990_d == null) return false; ++ if (p_77970_0_.field_77990_d != null && !p_77970_0_.field_77990_d.equals(p_77970_1_.field_77990_d)) return false; ++ if (p_77970_0_.capabilities != null || p_77970_1_.capabilities != null) ++ { ++ boolean ret = p_77970_0_.capabilities != null ? p_77970_0_.capabilities.areCompatible(p_77970_1_.capabilities) : p_77970_1_.capabilities.areCompatible(null); ++ if (!ret) return false; ++ } ++ ++ return true; + } + + public static boolean func_77989_b(@Nullable ItemStack p_77989_0_, @Nullable ItemStack p_77989_1_) +@@ -362,7 +380,11 @@ + + private boolean func_77959_d(ItemStack p_77959_1_) + { +- return this.field_77994_a != p_77959_1_.field_77994_a ? false : (this.field_151002_e != p_77959_1_.field_151002_e ? false : (this.field_77991_e != p_77959_1_.field_77991_e ? false : (this.field_77990_d == null && p_77959_1_.field_77990_d != null ? false : this.field_77990_d == null || this.field_77990_d.equals(p_77959_1_.field_77990_d)))); ++ if (this.field_77994_a != p_77959_1_.field_77994_a) return false; ++ if (this.field_151002_e != p_77959_1_.field_151002_e) return false; ++ if (this.field_77991_e != p_77959_1_.field_77991_e) return false; ++ if (!ItemStack.func_77970_a(this, p_77959_1_)) return false; ++ return true; + } + + public static boolean func_179545_c(@Nullable ItemStack p_179545_0_, @Nullable ItemStack p_179545_1_) +@@ -762,6 +784,7 @@ } } @@ -172,7 +206,7 @@ return list; } -@@ -873,7 +880,7 @@ +@@ -873,7 +896,7 @@ } else { @@ -181,7 +215,7 @@ } return multimap; -@@ -906,6 +913,18 @@ +@@ -906,6 +929,18 @@ @Deprecated public void func_150996_a(Item p_150996_1_) { @@ -200,7 +234,7 @@ this.field_151002_e = p_150996_1_; } -@@ -991,4 +1010,26 @@ +@@ -991,4 +1026,26 @@ return false; } } diff --git a/src/main/java/net/minecraftforge/common/capabilities/CapabilityDispatcher.java b/src/main/java/net/minecraftforge/common/capabilities/CapabilityDispatcher.java index 145378db28..ae36f7f8f3 100644 --- a/src/main/java/net/minecraftforge/common/capabilities/CapabilityDispatcher.java +++ b/src/main/java/net/minecraftforge/common/capabilities/CapabilityDispatcher.java @@ -114,4 +114,11 @@ public final class CapabilityDispatcher implements INBTSerializable Date: Mon, 23 May 2016 15:53:52 -0700 Subject: [PATCH 10/45] Tipped arrows are now not affected by infinite enchantment but are still effected by creative mode. --- .../net/minecraft/item/ItemArrow.java.patch | 13 +++++++++++++ .../minecraft/net/minecraft/item/ItemBow.java.patch | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 patches/minecraft/net/minecraft/item/ItemArrow.java.patch diff --git a/patches/minecraft/net/minecraft/item/ItemArrow.java.patch b/patches/minecraft/net/minecraft/item/ItemArrow.java.patch new file mode 100644 index 0000000000..01363b4bb2 --- /dev/null +++ b/patches/minecraft/net/minecraft/item/ItemArrow.java.patch @@ -0,0 +1,13 @@ +--- ../src-base/minecraft/net/minecraft/item/ItemArrow.java ++++ ../src-work/minecraft/net/minecraft/item/ItemArrow.java +@@ -19,4 +19,10 @@ + entitytippedarrow.func_184555_a(p_185052_2_); + return entitytippedarrow; + } ++ ++ public boolean isInfinite(ItemStack stack, ItemStack bow, net.minecraft.entity.player.EntityPlayer player) ++ { ++ int enchant = net.minecraft.enchantment.EnchantmentHelper.func_77506_a(net.minecraft.init.Enchantments.field_185312_x, bow); ++ return enchant <= 0 ? false : this.getClass() == ItemArrow.class; ++ } + } diff --git a/patches/minecraft/net/minecraft/item/ItemBow.java.patch b/patches/minecraft/net/minecraft/item/ItemBow.java.patch index ffd7dfdc20..eef4d43a78 100644 --- a/patches/minecraft/net/minecraft/item/ItemBow.java.patch +++ b/patches/minecraft/net/minecraft/item/ItemBow.java.patch @@ -21,7 +21,7 @@ if ((double)f >= 0.1D) { - boolean flag1 = flag && itemstack.func_77973_b() == Items.field_151032_g; -+ boolean flag1 = flag && itemstack.func_77973_b() instanceof ItemArrow; //Forge: Fix consuming custom arrows. ++ boolean flag1 = entityplayer.field_71075_bZ.field_75098_d || (itemstack.func_77973_b() instanceof ItemArrow ? ((ItemArrow)itemstack.func_77973_b()).isInfinite(itemstack, p_77615_1_, entityplayer) : false); if (!p_77615_2_.field_72995_K) { From 8c02a0a4cce0855c3b461fae40807fd58e2e15de Mon Sep 17 00:00:00 2001 From: LexManos Date: Mon, 23 May 2016 16:10:44 -0700 Subject: [PATCH 11/45] Set max enchantment ID to Short.MAX_VALUE. Closes #2799 --- .../java/net/minecraftforge/fml/common/registry/GameData.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/minecraftforge/fml/common/registry/GameData.java b/src/main/java/net/minecraftforge/fml/common/registry/GameData.java index 2e000eea7c..6cea3a011e 100644 --- a/src/main/java/net/minecraftforge/fml/common/registry/GameData.java +++ b/src/main/java/net/minecraftforge/fml/common/registry/GameData.java @@ -49,7 +49,7 @@ public class GameData private static final int MIN_POTIONTYPE_ID = 0; // Int private static final int MAX_POTIONTYPE_ID = Integer.MAX_VALUE >> 5; // Int (SPacketEffect) private static final int MIN_ENCHANTMENT_ID = 0; // Int - private static final int MAX_ENCHANTMENT_ID = Integer.MAX_VALUE >> 5; // Int - not serialized as an ID? + private static final int MAX_ENCHANTMENT_ID = Short.MAX_VALUE - 1; // Short - serialized as a short in ItemStack NBTs. private static final ResourceLocation BLOCK_TO_ITEM = new ResourceLocation("minecraft:blocktoitemmap"); private static final ResourceLocation BLOCKSTATE_TO_ID = new ResourceLocation("minecraft:blockstatetoid"); From 5415891f11d70c33c5f6f7a0f8adeca047ff7197 Mon Sep 17 00:00:00 2001 From: LexManos Date: Mon, 23 May 2016 16:15:00 -0700 Subject: [PATCH 12/45] Fix Container.compouteStackSize not respecting stack version of maxStackSize. Closes #2756 --- .../net/minecraft/inventory/Container.java.patch | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/patches/minecraft/net/minecraft/inventory/Container.java.patch b/patches/minecraft/net/minecraft/inventory/Container.java.patch index 72217bbbf3..06224c3eb7 100644 --- a/patches/minecraft/net/minecraft/inventory/Container.java.patch +++ b/patches/minecraft/net/minecraft/inventory/Container.java.patch @@ -9,3 +9,12 @@ { slot1.func_75215_d(p_75135_1_.func_77946_l()); slot1.func_75218_e(); +@@ -728,7 +728,7 @@ + p_94525_2_.field_77994_a = 1; + break; + case 2: +- p_94525_2_.field_77994_a = p_94525_2_.func_77973_b().func_77639_j(); ++ p_94525_2_.field_77994_a = p_94525_2_.func_77976_d(); + } + + p_94525_2_.field_77994_a += p_94525_3_; From 6b8466778e23226e686bcd0c83769804541eac49 Mon Sep 17 00:00:00 2001 From: LexManos Date: Mon, 23 May 2016 16:35:49 -0700 Subject: [PATCH 13/45] Fire playerDestroyItem event's in some cases where we were not. --- .../entity/player/EntityPlayer.java.patch | 50 ++++++++++++++----- .../PlayerInteractionManager.java.patch | 20 +++++--- 2 files changed, 50 insertions(+), 20 deletions(-) diff --git a/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch b/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch index f168507e7d..682a8da4af 100644 --- a/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch +++ b/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch @@ -223,7 +223,23 @@ ItemStack itemstack = p_184822_2_ != null ? p_184822_2_.func_77946_l() : null; if (!p_184822_1_.func_184230_a(this, p_184822_2_, p_184822_3_)) -@@ -1127,6 +1196,7 @@ +@@ -1086,6 +1155,7 @@ + { + if (p_184822_2_.field_77994_a <= 0 && !this.field_71075_bZ.field_75098_d) + { ++ net.minecraftforge.event.ForgeEventFactory.onPlayerDestroyItem(this, p_184822_2_, p_184822_3_); + this.func_184611_a(p_184822_3_, (ItemStack)null); + } + +@@ -1101,6 +1171,7 @@ + { + if (p_184822_2_.field_77994_a <= 0 && !this.field_71075_bZ.field_75098_d) + { ++ net.minecraftforge.event.ForgeEventFactory.onPlayerDestroyItem(this, p_184822_2_, p_184822_3_); + this.func_184611_a(p_184822_3_, (ItemStack)null); + } + else if (p_184822_2_.field_77994_a < itemstack.field_77994_a && this.field_71075_bZ.field_75098_d) +@@ -1127,6 +1198,7 @@ public void func_71059_n(Entity p_71059_1_) { @@ -231,7 +247,15 @@ if (p_71059_1_.func_70075_an()) { if (!p_71059_1_.func_85031_j(this)) -@@ -1414,6 +1484,8 @@ +@@ -1326,6 +1398,7 @@ + if (itemstack1.field_77994_a <= 0) + { + this.func_184611_a(EnumHand.MAIN_HAND, (ItemStack)null); ++ net.minecraftforge.event.ForgeEventFactory.onPlayerDestroyItem(this, itemstack1, EnumHand.MAIN_HAND); + } + } + +@@ -1414,6 +1487,8 @@ public EntityPlayer.SleepResult func_180469_a(BlockPos p_180469_1_) { @@ -240,7 +264,7 @@ if (!this.field_70170_p.field_72995_K) { if (this.func_70608_bn() || !this.func_70089_S()) -@@ -1453,9 +1525,10 @@ +@@ -1453,9 +1528,10 @@ this.func_70105_a(0.2F, 0.2F); @@ -254,7 +278,7 @@ float f = 0.5F; float f1 = 0.5F; -@@ -1518,13 +1591,14 @@ +@@ -1518,13 +1594,14 @@ public void func_70999_a(boolean p_70999_1_, boolean p_70999_2_, boolean p_70999_3_) { @@ -272,7 +296,7 @@ if (blockpos == null) { -@@ -1533,6 +1607,10 @@ +@@ -1533,6 +1610,10 @@ this.func_70107_b((double)((float)blockpos.func_177958_n() + 0.5F), (double)((float)blockpos.func_177956_o() + 0.1F), (double)((float)blockpos.func_177952_p() + 0.5F)); } @@ -283,7 +307,7 @@ this.field_71083_bS = false; -@@ -1551,15 +1629,16 @@ +@@ -1551,15 +1632,16 @@ private boolean func_175143_p() { @@ -303,7 +327,7 @@ { if (!p_180467_2_) { -@@ -1574,16 +1653,17 @@ +@@ -1574,16 +1656,17 @@ } else { @@ -324,7 +348,7 @@ switch (enumfacing) { -@@ -1623,16 +1703,24 @@ +@@ -1623,16 +1706,24 @@ public BlockPos func_180470_cg() { @@ -351,7 +375,7 @@ if (p_180473_1_ != null) { this.field_71077_c = p_180473_1_; -@@ -1827,6 +1915,10 @@ +@@ -1827,6 +1918,10 @@ super.func_180430_e(p_180430_1_, p_180430_2_); } @@ -362,7 +386,7 @@ } protected void func_71061_d_() -@@ -2027,6 +2119,18 @@ +@@ -2027,6 +2122,18 @@ this.field_175152_f = p_71049_1_.field_175152_f; this.field_71078_a = p_71049_1_.field_71078_a; this.func_184212_Q().func_187227_b(field_184827_bp, p_71049_1_.func_184212_Q().func_187225_a(field_184827_bp)); @@ -381,7 +405,7 @@ } protected boolean func_70041_e_() -@@ -2126,7 +2230,10 @@ +@@ -2126,7 +2233,10 @@ public ITextComponent func_145748_c_() { @@ -393,7 +417,7 @@ itextcomponent.func_150256_b().func_150241_a(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/msg " + this.func_70005_c_() + " ")); itextcomponent.func_150256_b().func_150209_a(this.func_174823_aP()); itextcomponent.func_150256_b().func_179989_a(this.func_70005_c_()); -@@ -2135,7 +2242,7 @@ +@@ -2135,7 +2245,7 @@ public float func_70047_e() { @@ -402,7 +426,7 @@ if (this.func_70608_bn()) { -@@ -2346,6 +2453,161 @@ +@@ -2346,6 +2456,161 @@ return (float)this.func_110148_a(SharedMonsterAttributes.field_188792_h).func_111126_e(); } diff --git a/patches/minecraft/net/minecraft/server/management/PlayerInteractionManager.java.patch b/patches/minecraft/net/minecraft/server/management/PlayerInteractionManager.java.patch index 830573df1a..7195588cad 100644 --- a/patches/minecraft/net/minecraft/server/management/PlayerInteractionManager.java.patch +++ b/patches/minecraft/net/minecraft/server/management/PlayerInteractionManager.java.patch @@ -134,7 +134,7 @@ { return false; } -@@ -265,41 +300,22 @@ +@@ -265,58 +300,46 @@ } else { @@ -181,7 +181,13 @@ if (itemstack1 != null) { -@@ -311,12 +327,18 @@ + itemstack1.func_179548_a(this.field_73092_a, iblockstate, p_180237_1_, this.field_73090_b); + +- if (itemstack1.field_77994_a == 0) ++ if (itemstack1.field_77994_a <= 0) + { ++ net.minecraftforge.event.ForgeEventFactory.onPlayerDestroyItem(this.field_73090_b, itemstack1, EnumHand.MAIN_HAND); + this.field_73090_b.func_184611_a(EnumHand.MAIN_HAND, (ItemStack)null); } } @@ -200,7 +206,7 @@ return flag1; } } -@@ -334,6 +356,7 @@ +@@ -334,6 +357,7 @@ } else { @@ -208,7 +214,7 @@ int i = p_187250_3_.field_77994_a; int j = p_187250_3_.func_77960_j(); ActionResult actionresult = p_187250_3_.func_77957_a(p_187250_2_, p_187250_1_, p_187250_4_); -@@ -360,6 +383,7 @@ +@@ -360,6 +384,7 @@ if (itemstack.field_77994_a == 0) { p_187250_1_.func_184611_a(p_187250_4_, (ItemStack)null); @@ -216,7 +222,7 @@ } if (!p_187250_1_.func_184587_cr()) -@@ -404,13 +428,26 @@ +@@ -404,13 +429,26 @@ } else { @@ -246,7 +252,7 @@ } } -@@ -430,14 +467,21 @@ +@@ -430,14 +468,21 @@ { int j = p_187251_3_.func_77960_j(); int i = p_187251_3_.field_77994_a; @@ -268,7 +274,7 @@ } } } -@@ -446,4 +490,13 @@ +@@ -446,4 +491,13 @@ { this.field_73092_a = p_73080_1_; } From 1fbadb0ead44dd4080d2a9ffc201deb7a4088705 Mon Sep 17 00:00:00 2001 From: LexManos Date: Mon, 23 May 2016 17:15:13 -0700 Subject: [PATCH 14/45] Fix villagers having farmer skin on vanilla servers. Closes #2894 --- .../entity/passive/EntityVillager.java.patch | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch b/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch index c1df5d02d8..49592a1861 100644 --- a/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch +++ b/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch @@ -63,7 +63,7 @@ } public int func_70946_n() -@@ -335,6 +348,39 @@ +@@ -335,6 +348,43 @@ return Math.max(((Integer)this.field_70180_af.func_187225_a(field_184752_bw)).intValue() % 5, 0); } @@ -92,18 +92,22 @@ + public void func_184206_a(DataParameter key) + { + super.func_184206_a(key); -+ if(key == PROFESSION_STR) ++ if (key.equals(PROFESSION_STR)) + { + String p = this.field_70180_af.func_187225_a(PROFESSION_STR); + net.minecraft.util.ResourceLocation res = new net.minecraft.util.ResourceLocation(p == null ? "minecraft:farmer" : p); + this.prof = net.minecraftforge.fml.common.registry.VillagerRegistry.instance().getRegistry().getValue(res); + } ++ else if (key.equals(field_184752_bw)) ++ { ++ net.minecraftforge.fml.common.registry.VillagerRegistry.onSetProfession(this, this.field_70180_af.func_187225_a(field_184752_bw)); ++ } + } + public boolean func_70941_o() { return this.field_70952_f; -@@ -534,15 +580,13 @@ +@@ -534,15 +584,13 @@ private void func_175554_cu() { @@ -120,7 +124,7 @@ this.field_175562_bw = 1; } -@@ -553,13 +597,11 @@ +@@ -553,13 +601,11 @@ int i = this.field_175563_bv - 1; int j = this.field_175562_bw - 1; @@ -137,7 +141,7 @@ { entityvillager$itradelist.func_179401_a(this.field_70963_i, this.field_70146_Z); } -@@ -648,9 +690,14 @@ +@@ -648,9 +694,14 @@ } } @@ -145,7 +149,7 @@ + s1 = this.getProfessionForge().getCareer(this.field_175563_bv).getName(); + else + s1 = "entity.Villager." + s1; -+ //TODO: Hook into VillagerRegistry to get name ++ if (s1 != null) { - TextComponentTranslation textcomponenttranslation = new TextComponentTranslation("entity.Villager." + s1, new Object[0]); @@ -153,7 +157,7 @@ textcomponenttranslation.func_150256_b().func_150209_a(this.func_174823_aP()); textcomponenttranslation.func_150256_b().func_179989_a(this.func_189512_bd()); -@@ -710,7 +757,7 @@ +@@ -710,7 +761,7 @@ public IEntityLivingData func_180482_a(DifficultyInstance p_180482_1_, @Nullable IEntityLivingData p_180482_2_) { p_180482_2_ = super.func_180482_a(p_180482_1_, p_180482_2_); @@ -162,7 +166,7 @@ this.func_175552_ct(); return p_180482_2_; } -@@ -1030,4 +1077,6 @@ +@@ -1030,4 +1081,6 @@ return ((Integer)this.func_76341_a()).intValue() >= ((Integer)this.func_76340_b()).intValue() ? ((Integer)this.func_76341_a()).intValue() : ((Integer)this.func_76341_a()).intValue() + p_179412_1_.nextInt(((Integer)this.func_76340_b()).intValue() - ((Integer)this.func_76341_a()).intValue() + 1); } } From 614ba8fa73361076c20ca4e90cdcba3b0eabab64 Mon Sep 17 00:00:00 2001 From: LexManos Date: Tue, 24 May 2016 14:44:35 -0700 Subject: [PATCH 15/45] Add alternative ItemAxe Constructor --- .../net/minecraft/item/ItemAxe.java.patch | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 patches/minecraft/net/minecraft/item/ItemAxe.java.patch diff --git a/patches/minecraft/net/minecraft/item/ItemAxe.java.patch b/patches/minecraft/net/minecraft/item/ItemAxe.java.patch new file mode 100644 index 0000000000..da43601d39 --- /dev/null +++ b/patches/minecraft/net/minecraft/item/ItemAxe.java.patch @@ -0,0 +1,16 @@ +--- ../src-base/minecraft/net/minecraft/item/ItemAxe.java ++++ ../src-work/minecraft/net/minecraft/item/ItemAxe.java +@@ -20,6 +20,13 @@ + this.field_185065_c = field_185067_n[p_i45327_1_.ordinal()]; + } + ++ protected ItemAxe(Item.ToolMaterial material, int damage, int speed) ++ { ++ super(material, field_150917_c); ++ this.field_77865_bY = damage; ++ this.field_185065_c = speed; ++ } ++ + public float func_150893_a(ItemStack p_150893_1_, IBlockState p_150893_2_) + { + Material material = p_150893_2_.func_185904_a(); From b65b2991a4fd1689cfc675e0831c60c2efb1d907 Mon Sep 17 00:00:00 2001 From: LexManos Date: Tue, 24 May 2016 16:10:47 -0700 Subject: [PATCH 16/45] Fix paramters for addArmorMaterial, addOption and addGameType. --- .../client/EnumHelperClient.java | 25 ++++++++++++------- .../common/util/EnumHelper.java | 12 ++++----- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/main/java/net/minecraftforge/client/EnumHelperClient.java b/src/main/java/net/minecraftforge/client/EnumHelperClient.java index 62604d9e78..0f8a48d3ef 100644 --- a/src/main/java/net/minecraftforge/client/EnumHelperClient.java +++ b/src/main/java/net/minecraftforge/client/EnumHelperClient.java @@ -2,35 +2,42 @@ package net.minecraftforge.client; import net.minecraft.util.Util.EnumOS; import net.minecraft.world.WorldSettings.GameType; -import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.client.settings.GameSettings.Options; import net.minecraftforge.common.util.EnumHelper; public class EnumHelperClient extends EnumHelper { private static Class[][] clientTypes = { - {GameType.class, int.class, String.class}, + {GameType.class, int.class, String.class, String.class}, {Options.class, String.class, boolean.class, boolean.class}, {EnumOS.class} }; - - public static GameType addGameType(String name, int id, String displayName) + + public static GameType addGameType(String name, int id, String displayName, String shortName) { - return addEnum(GameType.class, name, id, displayName); + return addEnum(GameType.class, name, id, displayName, shortName); } - + public static Options addOptions(String name, String langName, boolean isSlider, boolean isToggle) { return addEnum(Options.class, name, langName, isSlider, isToggle); } - + + public static Options addOptions(String name, String langName, boolean isSlider, boolean isToggle, float valMin, float valMax, float valStep) + { + return addEnum(Options.class, name, + new Class[]{String.class, boolean.class, boolean.class, float.class, float.class, float.class}, + langName, isSlider, isToggle, valMin, valMax, valStep); + } + public static EnumOS addOS2(String name) { return addEnum(EnumOS.class, name); } - public static > T addEnum(Class enumType, String enumName, Object... paramValues) + private static > T addEnum(Class enumType, String enumName, Object... paramValues) { return addEnum(clientTypes, enumType, enumName, paramValues); } -} +} \ No newline at end of file diff --git a/src/main/java/net/minecraftforge/common/util/EnumHelper.java b/src/main/java/net/minecraftforge/common/util/EnumHelper.java index 54c001c30d..b939a993c1 100644 --- a/src/main/java/net/minecraftforge/common/util/EnumHelper.java +++ b/src/main/java/net/minecraftforge/common/util/EnumHelper.java @@ -38,7 +38,7 @@ public class EnumHelper private static Class[][] commonTypes = { {EnumAction.class}, - {ArmorMaterial.class, String.class, int.class, int[].class, int.class, SoundEvent.class}, + {ArmorMaterial.class, String.class, int.class, int[].class, int.class, SoundEvent.class, float.class}, {EnumArt.class, String.class, int.class, int.class, int.class, int.class}, {EnumCreatureAttribute.class}, {EnumCreatureType.class, Class.class, int.class, Material.class, boolean.class, boolean.class}, @@ -56,9 +56,9 @@ public class EnumHelper { return addEnum(EnumAction.class, name); } - public static ArmorMaterial addArmorMaterial(String name, String textureName, int durability, int[] reductionAmounts, int enchantability, SoundEvent soundOnEquip) + public static ArmorMaterial addArmorMaterial(String name, String textureName, int durability, int[] reductionAmounts, int enchantability, SoundEvent soundOnEquip, float toughness) { - return addEnum(ArmorMaterial.class, name, textureName, durability, reductionAmounts, enchantability, soundOnEquip); + return addEnum(ArmorMaterial.class, name, textureName, durability, reductionAmounts, enchantability, soundOnEquip, toughness); } public static EnumArt addArt(String name, String tile, int sizeX, int sizeY, int offsetX, int offsetY) { @@ -181,13 +181,13 @@ public class EnumHelper blankField(enumClass, "enumConstants"); } - public static > T addEnum(Class enumType, String enumName, Object... paramValues) + private static > T addEnum(Class enumType, String enumName, Object... paramValues) { setup(); return addEnum(commonTypes, enumType, enumName, paramValues); } - public static > T addEnum(Class[][] map, Class enumType, String enumName, Object... paramValues) + protected static > T addEnum(Class[][] map, Class enumType, String enumName, Object... paramValues) { for (Class[] lookup : map) { @@ -353,4 +353,4 @@ public class EnumHelper setup(); } } -} +} \ No newline at end of file From df7c7d6dfc9cec9732f54a0ff8e21c42f70b7954 Mon Sep 17 00:00:00 2001 From: LexManos Date: Tue, 24 May 2016 16:11:12 -0700 Subject: [PATCH 17/45] Make unit test for EnumHelper more robust and less spammy. Now detects missing accessors as well. --- .../minecraftforge/test/EnumHelperTest.java | 141 +++++++++++------- 1 file changed, 86 insertions(+), 55 deletions(-) diff --git a/src/test/java/net/minecraftforge/test/EnumHelperTest.java b/src/test/java/net/minecraftforge/test/EnumHelperTest.java index 0b9ba148fd..84f0db49f3 100644 --- a/src/test/java/net/minecraftforge/test/EnumHelperTest.java +++ b/src/test/java/net/minecraftforge/test/EnumHelperTest.java @@ -1,8 +1,16 @@ package net.minecraftforge.test; import java.lang.reflect.Constructor; +import java.lang.reflect.Field; import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import net.minecraft.init.Bootstrap; import net.minecraftforge.client.EnumHelperClient; import net.minecraftforge.common.BiomeDictionary; import net.minecraftforge.common.util.EnumHelper; @@ -10,23 +18,53 @@ import net.minecraftforge.common.util.EnumHelper; import org.junit.Assert; import org.junit.Test; -import net.minecraftforge.fml.relauncher.ReflectionHelper; +import com.google.common.base.Joiner; +import com.google.common.base.Throwables; public class EnumHelperTest { - private boolean failed = false; + private static final Joiner COMMA = Joiner.on(","); + + private static void setBootstrap() + { + try + { + for (Field f : Bootstrap.class.getDeclaredFields()) + { + if (Modifier.isPrivate(f.getModifiers()) && Modifier.isStatic(f.getModifiers()) && f.getType() == boolean.class) + { + f.setAccessible(true); + f.set(null, true); + } + } + } + catch (Exception e) + { + Throwables.propagate(e); + } + } @Test public void testEnumHelperMethodsMatchEnumConstructors() { + setBootstrap(); + + boolean failed = false; + Set> seenCtrs = new HashSet>(); + Set> matchedCtrs = new HashSet>(); + //Quick note to point out that Enum constructors start with (string name, int ordinal). // EnumHelper methods by convention start with (string name), and the ordinal is calculated. - for (Method method : EnumHelper.class.getDeclaredMethods()) + List mtds = new ArrayList(); + mtds.addAll(Arrays.asList(EnumHelper.class.getDeclaredMethods())); + mtds.addAll(Arrays.asList(EnumHelperClient.class.getDeclaredMethods())); + + for (Method method : mtds) { String name = method.getName(); - if (!name.equals("addEnum") && name.startsWith("add")) + if (!name.equals("addEnum") && name.startsWith("add") && Modifier.isPublic(method.getModifiers())) { - System.out.println(" " + method); + //System.out.println(" " + method); Class returnType = method.getReturnType(); Constructor[] declaredConstructors = returnType.getDeclaredConstructors(); @@ -36,11 +74,19 @@ public class EnumHelperTest Assert.assertEquals("First parameter of add method should be String (name)", String.class, actualParameters[0]); - Assert.assertEquals(String.class, actualParameters[0]); + + actualParameters = Arrays.copyOfRange(actualParameters, 1, actualParameters.length); //Trim off name + String info = + " Method: " + method.getDeclaringClass().getSimpleName() + "." + method.getName() + "\n" + + " Class: " + returnType.getName() + "\n" + + " Actual: " + COMMA.join(actualParameters); + + boolean found = false; // There can sometimes be multiple constructors. for (Constructor declaredConstructor : declaredConstructors) { - System.out.println(" " + declaredConstructor.toString()); + seenCtrs.add(declaredConstructor); + //System.out.println(" " + declaredConstructor.toString()); Class[] expectedParameters = declaredConstructor.getParameterTypes(); @@ -52,62 +98,47 @@ public class EnumHelperTest int.class, expectedParameters[1]); - for (int i = 1, j = 2; i < actualParameters.length && j < expectedParameters.length; i++, j++) - { - Assert.assertEquals( - "method Parameter " + i + " (" + actualParameters[i].getName() + ") " + - "should match constructor parameter" + j + " (" + expectedParameters[j] + ")", - expectedParameters[j], - actualParameters[i]); - } + expectedParameters = Arrays.copyOfRange(expectedParameters, 2, expectedParameters.length); - Assert.assertEquals("Length of parameters incorrect", - (expectedParameters.length - 2), - (actualParameters.length - 1)); + info += "\n Expected: " + COMMA.join(expectedParameters); + + if (Arrays.equals(actualParameters, expectedParameters)) + { + matchedCtrs.add(declaredConstructor); + found = true; + } + } + + if (!found) + { + System.out.println("Pamaters did not Match:"); + System.out.println(info); + failed = true; } } } + + seenCtrs.removeAll(matchedCtrs); + if (!seenCtrs.isEmpty()) + { + for (Constructor ctr : seenCtrs) + { + System.out.println("Missing accessor for Enum:"); + System.out.println(" Class: " + ctr.getName()); + System.out.println(" Params: " + COMMA.join(Arrays.copyOfRange(ctr.getParameterTypes(), 2, ctr.getParameterTypes().length))); + } + failed = true; + } + + Assert.assertFalse(failed); } @Test public void testEnumHelperTypes() { - System.out.println("Testing EnumHelper:"); - Object[][] types = (Object[][])ReflectionHelper.getPrivateValue(EnumHelper.class, null, "commonTypes"); - for (Object[] o : types) - testType(o); - - System.out.println("Testing EnumHelperClient:"); - types = (Object[][])ReflectionHelper.getPrivateValue(EnumHelperClient.class, null, "clientTypes"); - for (Object[] o : types) - testType(o); - - if (failed) - throw new RuntimeException("Enum Helper test failed!"); + setBootstrap(); Assert.assertEquals(BiomeDictionary.Type.BEACH, BiomeDictionary.Type.getType("BEACH")); - Assert.assertEquals(BiomeDictionary.Type.getType("NEWTYPE"), BiomeDictionary.Type.getType("NEWTYPE")); + // This works, it's been tested, find a way to make this a unit test... + //Assert.assertEquals(BiomeDictionary.Type.getType("NEWTYPE"), BiomeDictionary.Type.getType("NEWTYPE")); } - - private void testType(Object[] info) - { - Class cls = (Class)info[0]; - Class[] parameterTypes = new Class[info.length + 2 - 1]; - parameterTypes[0] = String.class; - parameterTypes[1] = int.class; - System.arraycopy(info, 1, parameterTypes, 2, info.length - 1); - try - { - cls.getDeclaredConstructor(parameterTypes); - System.out.println(" " + cls.getName() + ": Success"); - } - catch (Exception e) - { - System.out.println(" " + cls.getName() + ": Failed"); - for (Constructor c : cls.getDeclaredConstructors()) - { - System.out.println(" " + c.toString()); - } - failed = true; - } - } -} +} \ No newline at end of file From 48cc7582cc2d98ff47ad1d0c491b9ec7133f2780 Mon Sep 17 00:00:00 2001 From: The-Fireplace Date: Tue, 24 May 2016 21:58:22 -0500 Subject: [PATCH 18/45] Switch new constructor to use floats (#2904) --- patches/minecraft/net/minecraft/item/ItemAxe.java.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/minecraft/net/minecraft/item/ItemAxe.java.patch b/patches/minecraft/net/minecraft/item/ItemAxe.java.patch index da43601d39..310c9091ee 100644 --- a/patches/minecraft/net/minecraft/item/ItemAxe.java.patch +++ b/patches/minecraft/net/minecraft/item/ItemAxe.java.patch @@ -4,7 +4,7 @@ this.field_185065_c = field_185067_n[p_i45327_1_.ordinal()]; } -+ protected ItemAxe(Item.ToolMaterial material, int damage, int speed) ++ protected ItemAxe(Item.ToolMaterial material, float damage, float speed) + { + super(material, field_150917_c); + this.field_77865_bY = damage; From e00a11be995b749be32fefc21b6fcbf72e46a241 Mon Sep 17 00:00:00 2001 From: tterrag Date: Thu, 26 May 2016 01:19:29 -0400 Subject: [PATCH 19/45] Add hook for TE data sync on client (#2893) --- .../client/network/NetHandlerPlayClient.java.patch | 9 +++++++++ .../net/minecraft/tileentity/TileEntity.java.patch | 14 +++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch b/patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch index b386a5048b..19d54fabb2 100644 --- a/patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch +++ b/patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch @@ -9,6 +9,15 @@ this.field_147299_f.field_71474_y.field_74318_M = p_147282_1_.func_149192_g(); this.field_147299_f.func_71403_a(this.field_147300_g); this.field_147299_f.field_71439_g.field_71093_bK = p_147282_1_.func_149194_f(); +@@ -719,7 +719,7 @@ + + if (tileentity != null) + { +- tileentity.func_145839_a(nbttagcompound); ++ tileentity.handleUpdateTag(nbttagcompound); + } + } + } @@ -797,14 +797,16 @@ public void func_147251_a(SPacketChat p_147251_1_) { diff --git a/patches/minecraft/net/minecraft/tileentity/TileEntity.java.patch b/patches/minecraft/net/minecraft/tileentity/TileEntity.java.patch index 67eb002d68..a9b425575b 100644 --- a/patches/minecraft/net/minecraft/tileentity/TileEntity.java.patch +++ b/patches/minecraft/net/minecraft/tileentity/TileEntity.java.patch @@ -68,7 +68,7 @@ public double func_145835_a(double p_145835_1_, double p_145835_3_, double p_145835_5_) { double d0 = (double)this.field_174879_c.func_177958_n() + 0.5D - p_145835_1_; -@@ -283,6 +293,186 @@ +@@ -283,6 +293,198 @@ return false; } @@ -85,6 +85,18 @@ + public void onDataPacket(net.minecraft.network.NetworkManager net, net.minecraft.network.play.server.SPacketUpdateTileEntity pkt) + { + } ++ ++ /** ++ * Called when the chunk's TE update tag, gotten from {@link #getUpdateTag()}, is received on the client. ++ *

++ * Used to handle this tag in a special way. By default this simply calls {@link #readFromNBT(NBTTagCompound)}. ++ * ++ * @param tag The {@link NBTTagCompound} sent from {@link #getUpdateTag()} ++ */ ++ public void handleUpdateTag(NBTTagCompound tag) ++ { ++ this.func_145839_a(tag); ++ } + + /** + * Called when the chunk this TileEntity is on is Unloaded. From 4c56961b9e0d6bfce98b44dda91bb82c3bd8223f Mon Sep 17 00:00:00 2001 From: cpw Date: Sat, 28 May 2016 18:05:24 -0400 Subject: [PATCH 20/45] Strip Optional from the class signature as well, since that's loaded by the TypeToken registry code and might cause a crash. --- .../asm/transformers/ModAPITransformer.java | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraftforge/fml/common/asm/transformers/ModAPITransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/ModAPITransformer.java index e76c1b7cbc..531c380016 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/transformers/ModAPITransformer.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/transformers/ModAPITransformer.java @@ -15,6 +15,8 @@ import net.minecraftforge.fml.relauncher.FMLRelaunchLog; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.signature.SignatureReader; +import org.objectweb.asm.signature.SignatureWriter; import org.objectweb.asm.tree.ClassNode; import org.objectweb.asm.tree.MethodNode; @@ -97,8 +99,16 @@ public class ModAPITransformer implements IClassTransformer { private void stripInterface(ClassNode classNode, String interfaceName, boolean stripRefs) { - String ifaceName = interfaceName.replace('.', '/'); + final String ifaceName = interfaceName.replace('.', '/'); boolean found = classNode.interfaces.remove(ifaceName); + if (found && classNode.signature != null) + { + SignatureReader sr = new SignatureReader(classNode.signature); + final RemovingSignatureWriter signatureWriter = new RemovingSignatureWriter(ifaceName); + sr.accept(signatureWriter); + classNode.signature = signatureWriter.toString(); + if (logDebugInfo) FMLRelaunchLog.finer("Optional removal - interface %s removed from type signature"); + } if (found && logDebugInfo) FMLRelaunchLog.finer("Optional removal - interface %s removed", interfaceName); if (!found && logDebugInfo) FMLRelaunchLog.finer("Optional removal - interface %s NOT removed - not found", interfaceName); @@ -157,4 +167,25 @@ public class ModAPITransformer implements IClassTransformer { } } + private static class RemovingSignatureWriter extends SignatureWriter + { + private final String ifaceName; + + RemovingSignatureWriter(String ifaceName) + { + this.ifaceName = ifaceName; + } + + @Override + public void visitClassType(String name) + { + if (name.equals(ifaceName)) { + super.visitClassType("java/lang/Object"); + } + else + { + super.visitClassType(name); + } + } + } } From a97b4c4db75163c25616cdf5371ba865fed2be24 Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 17:47:12 -0700 Subject: [PATCH 21/45] Fix installer downloading vanilla jar when not needed. And filter some more known libraries. --- jsons/1.9.4-rel.json | 1 + .../net/minecraftforge/fml/common/ModClassLoader.java | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/jsons/1.9.4-rel.json b/jsons/1.9.4-rel.json index 22daa58ed6..39d34f66d8 100644 --- a/jsons/1.9.4-rel.json +++ b/jsons/1.9.4-rel.json @@ -18,6 +18,7 @@ "minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker --versionType Forge", "mainClass": "net.minecraft.launchwrapper.Launch", "inheritsFrom": "1.9.4", + "jar": "1.9.4", "libraries": [ { "name": "@artifact@", diff --git a/src/main/java/net/minecraftforge/fml/common/ModClassLoader.java b/src/main/java/net/minecraftforge/fml/common/ModClassLoader.java index 4f0b95e7ee..e5224a5e93 100644 --- a/src/main/java/net/minecraftforge/fml/common/ModClassLoader.java +++ b/src/main/java/net/minecraftforge/fml/common/ModClassLoader.java @@ -131,7 +131,14 @@ public class ModClassLoader extends URLClassLoader "log4j-core-", "lwjgl-", "lwjgl_util-", - "twitch-" + "twitch-", + "jline-", + "jna-", + "platform-", + "oshi-core-", + "netty-", + "libraryjavasound-", + "fastutil-" }; for (String s : prefixes) { From a1a67e76543bddc8ad32473d87b41642e5503723 Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 17:47:58 -0700 Subject: [PATCH 22/45] Capture interfaces when scanning classes and preload implementations of ICrashReportDetail. --- .../minecraftforge/common/MinecraftForge.java | 113 ------------------ .../net/minecraftforge/fml/common/Loader.java | 33 +++++ .../common/discovery/asm/ASMModParser.java | 12 +- .../common/discovery/asm/ModClassVisitor.java | 2 +- 4 files changed, 45 insertions(+), 115 deletions(-) diff --git a/src/main/java/net/minecraftforge/common/MinecraftForge.java b/src/main/java/net/minecraftforge/common/MinecraftForge.java index c386dcd8e0..f0c9cd2374 100644 --- a/src/main/java/net/minecraftforge/common/MinecraftForge.java +++ b/src/main/java/net/minecraftforge/common/MinecraftForge.java @@ -59,119 +59,6 @@ public class MinecraftForge OreDictionary.getOreName(0); - //Force these classes to be defined, Should prevent derp error hiding. - @SuppressWarnings("unused") - CrashReport fake = new CrashReport("ThisIsFake", new Exception("Not real")); - //Lets init World's crash report inner classes to prevent them from hiding errors. - String[] handlers = { - "net.minecraft.world.World$1", - "net.minecraft.world.World$2", - "net.minecraft.world.World$3", - "net.minecraft.world.World$4", - "net.minecraft.world.chunk.Chunk$1", - "net.minecraft.world.chunk.Chunk$2", - "net.minecraft.world.chunk.Chunk$3", - "net.minecraft.command.server.CommandBlockLogic$1", - "net.minecraft.command.server.CommandBlockLogic$2", - "net.minecraft.crash.CrashReportCategory$1", - "net.minecraft.crash.CrashReportCategory$2", - "net.minecraft.crash.CrashReportCategory$3", - "net.minecraft.crash.CrashReportCategory$4", - "net.minecraft.crash.CrashReportCategory$5", - "net.minecraft.crash.CrashReportCategory$Entry", - "net.minecraft.entity.Entity$1", - "net.minecraft.entity.Entity$2", - "net.minecraft.entity.Entity$3", - "net.minecraft.entity.Entity$4", - "net.minecraft.entity.EntityTracker$1", - "net.minecraft.world.gen.layer.GenLayer$1", - "net.minecraft.world.gen.layer.GenLayer$2", - "net.minecraft.entity.player.InventoryPlayer$1", - "net.minecraft.world.gen.structure.MapGenStructure$1", - "net.minecraft.world.gen.structure.MapGenStructure$2", - "net.minecraft.world.gen.structure.MapGenStructure$3", - "net.minecraft.server.MinecraftServer$3", - "net.minecraft.server.MinecraftServer$4", - "net.minecraft.server.MinecraftServer$5", - "net.minecraft.nbt.NBTTagCompound$1", - "net.minecraft.nbt.NBTTagCompound$2", - "net.minecraft.network.NetHandlerPlayServer$2", - "net.minecraft.network.NetworkSystem$3", - "net.minecraft.tileentity.TileEntity$1", - "net.minecraft.tileentity.TileEntity$2", - "net.minecraft.tileentity.TileEntity$3", - "net.minecraft.world.storage.WorldInfo$1", - "net.minecraft.world.storage.WorldInfo$2", - "net.minecraft.world.storage.WorldInfo$3", - "net.minecraft.world.storage.WorldInfo$4", - "net.minecraft.world.storage.WorldInfo$5", - "net.minecraft.world.storage.WorldInfo$6", - "net.minecraft.world.storage.WorldInfo$7", - "net.minecraft.world.storage.WorldInfo$8", - "net.minecraft.world.storage.WorldInfo$9" - }; - String[] client = { - "net.minecraft.client.Minecraft$3", - "net.minecraft.client.Minecraft$4", - "net.minecraft.client.Minecraft$5", - "net.minecraft.client.Minecraft$6", - "net.minecraft.client.Minecraft$7", - "net.minecraft.client.Minecraft$8", - "net.minecraft.client.Minecraft$9", - "net.minecraft.client.Minecraft$10", - "net.minecraft.client.Minecraft$11", - "net.minecraft.client.Minecraft$12", - "net.minecraft.client.Minecraft$13", - "net.minecraft.client.Minecraft$14", - "net.minecraft.client.Minecraft$15", - "net.minecraft.client.multiplayer.WorldClient$1", - "net.minecraft.client.multiplayer.WorldClient$2", - "net.minecraft.client.multiplayer.WorldClient$3", - "net.minecraft.client.multiplayer.WorldClient$4", - "net.minecraft.client.particle,EffectRenderer$1", - "net.minecraft.client.particle,EffectRenderer$2", - "net.minecraft.client.particle,EffectRenderer$3", - "net.minecraft.client.particle,EffectRenderer$4", - "net.minecraft.client.renderer.EntityRenderer$1", - "net.minecraft.client.renderer.EntityRenderer$2", - "net.minecraft.client.renderer.EntityRenderer$3", - "net.minecraft.server.integrated.IntegratedServer$1", - "net.minecraft.server.integrated.IntegratedServer$2", - "net.minecraft.client.renderer.RenderGlobal$1", - "net.minecraft.client.renderer.entity.RenderItem$1", - "net.minecraft.client.renderer.entity.RenderItem$2", - "net.minecraft.client.renderer.entity.RenderItem$3", - "net.minecraft.client.renderer.entity.RenderItem$4", - "net.minecraft.client.renderer.texture.TextureAtlasSprite$1", - "net.minecraft.client.renderer.texture.TextureManager$1", - "net.minecraft.client.renderer.texture.TextureMap$1", - "net.minecraft.client.renderer.texture.TextureMap$2", - "net.minecraft.client.renderer.texture.TextureMap$3" - }; - String[] server = { - "net.minecraft.server.dedicated.DedicatedServer$3", - "net.minecraft.server.dedicated.DedicatedServer$4" - }; - if (FMLCommonHandler.instance().getSide() == Side.CLIENT) - handlers = ObjectArrays.concat(handlers, client, String.class); - else - handlers = ObjectArrays.concat(handlers, server, String.class); - - //FMLLog.info("Preloading CrashReport classes", ForgeVersion.getVersion()); - for (String s : handlers) - { - //FMLLog.info("\t" + s); - try - { - Class cls = Class.forName(s, false, MinecraftForge.class.getClassLoader()); - if (cls != null && !Callable.class.isAssignableFrom(cls)) - { - //FMLLog.info("\t% s is not a instance of callable!", s); - } - } - catch (Exception e){} - } - UsernameCache.load(); // Load before all the mods, so MC owns the MC fluids FluidRegistry.validateFluidRegistry(); diff --git a/src/main/java/net/minecraftforge/fml/common/Loader.java b/src/main/java/net/minecraftforge/fml/common/Loader.java index f4b514205d..50f348ebf1 100644 --- a/src/main/java/net/minecraftforge/fml/common/Loader.java +++ b/src/main/java/net/minecraftforge/fml/common/Loader.java @@ -26,11 +26,14 @@ import java.util.Map; import java.util.Properties; import java.util.Set; +import net.minecraft.crash.CrashReport; +import net.minecraft.crash.ICrashReportDetail; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.capabilities.CapabilityManager; import net.minecraftforge.fml.common.LoaderState.ModState; import net.minecraftforge.fml.common.ModContainer.Disableable; import net.minecraftforge.fml.common.ProgressManager.ProgressBar; +import net.minecraftforge.fml.common.discovery.ASMDataTable.ASMData; import net.minecraftforge.fml.common.discovery.ModDiscoverer; import net.minecraftforge.fml.common.event.FMLInterModComms; import net.minecraftforge.fml.common.event.FMLLoadEvent; @@ -518,6 +521,7 @@ public class Loader } } } + preloadCrashClasses(); modController.transition(LoaderState.CONSTRUCTING, false); modController.distributeStateMessage(LoaderState.CONSTRUCTING, modClassLoader, discoverer.getASMTable(), reverseDependencies); @@ -1114,4 +1118,33 @@ public class Loader { return modController != null ? modController.getState() : LoaderState.NOINIT; } + + + private void preloadCrashClasses() + { + //For all the normal CrashReport classes to be defined. We're in MC's classloader so this should all be fine + new CrashReport("ThisIsFake", new Exception("Not real")); + + FMLLog.log(Level.DEBUG, "Preloading CrashReport Classes"); + //Find all ICrashReportDetail's handlers and preload them. + List classes = Lists.newArrayList(); + for (ASMData asm : discoverer.getASMTable().getAll(ICrashReportDetail.class.getName().replace('.', '/'))) + { + classes.add(asm.getClassName()); + } + for (ASMData asm : discoverer.getASMTable().getAll(ICrashCallable.class.getName().replace('.', '/'))) + { + classes.add(asm.getClassName()); + } + Collections.sort(classes); //Sort it because I like pretty output ;) + for (String name : classes) + { + FMLLog.log(Level.DEBUG, "\t" + name); + try + { + Class cls = Class.forName(name, false, getClass().getClassLoader()); + } + catch (Exception e){} + } + } } diff --git a/src/main/java/net/minecraftforge/fml/common/discovery/asm/ASMModParser.java b/src/main/java/net/minecraftforge/fml/common/discovery/asm/ASMModParser.java index a7bc19c89a..00a74f90f0 100644 --- a/src/main/java/net/minecraftforge/fml/common/discovery/asm/ASMModParser.java +++ b/src/main/java/net/minecraftforge/fml/common/discovery/asm/ASMModParser.java @@ -17,6 +17,7 @@ import java.io.InputStream; import java.util.Collections; import java.util.LinkedList; import java.util.List; +import java.util.Set; import net.minecraftforge.fml.common.FMLLog; import net.minecraftforge.fml.common.LoaderException; @@ -30,6 +31,7 @@ import org.objectweb.asm.Type; import com.google.common.base.Objects; import com.google.common.base.Strings; import com.google.common.collect.Lists; +import com.google.common.collect.Sets; public class ASMModParser { @@ -38,6 +40,7 @@ public class ASMModParser private int classVersion; private Type asmSuperType; private LinkedList annotations = Lists.newLinkedList(); + private Set interfaces = Sets.newHashSet(); private String baseModProperties; static enum AnnotationType @@ -59,11 +62,13 @@ public class ASMModParser } } - public void beginNewTypeName(String typeQName, int classVersion, String superClassQName) + public void beginNewTypeName(String typeQName, int classVersion, String superClassQName, String[] interfaces) { this.asmType = Type.getObjectType(typeQName); this.classVersion = classVersion; this.asmSuperType = !Strings.isNullOrEmpty(superClassQName) ? Type.getObjectType(superClassQName) : null; + for (String intf : interfaces) + this.interfaces.add(intf); } public void startClassAnnotation(String annotationName) @@ -146,6 +151,11 @@ public class ASMModParser { table.addASMData(candidate, ma.asmType.getClassName(), this.asmType.getClassName(), ma.member, ma.values); } + + for (String intf : interfaces) + { + table.addASMData(candidate, intf, this.asmType.getClassName(), null, null); + } } public void addAnnotationArray(String name) diff --git a/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModClassVisitor.java b/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModClassVisitor.java index 578560d2d9..4854c9b325 100644 --- a/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModClassVisitor.java +++ b/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModClassVisitor.java @@ -32,7 +32,7 @@ public class ModClassVisitor extends ClassVisitor @Override public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { - discoverer.beginNewTypeName(name, version, superName); + discoverer.beginNewTypeName(name, version, superName, interfaces); } @Override From 4824d647f430995a27cf8b115b73ce370b32723f Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 17:55:27 -0700 Subject: [PATCH 23/45] Set Enchantment table's harvest level. Closes #1349 --- src/main/java/net/minecraftforge/common/ForgeHooks.java | 1 + .../java/net/minecraftforge/common/MinecraftForge.java | 7 ------- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/main/java/net/minecraftforge/common/ForgeHooks.java b/src/main/java/net/minecraftforge/common/ForgeHooks.java index 09b2aca937..15371b4c5d 100644 --- a/src/main/java/net/minecraftforge/common/ForgeHooks.java +++ b/src/main/java/net/minecraftforge/common/ForgeHooks.java @@ -223,6 +223,7 @@ public class ForgeHooks } Blocks.OBSIDIAN.setHarvestLevel("pickaxe", 3); + Blocks.ENCHANTING_TABLE.setHarvestLevel("pickaxe", 0); Block[] oreBlocks = new Block[] { Blocks.EMERALD_ORE, Blocks.EMERALD_BLOCK, Blocks.DIAMOND_ORE, Blocks.DIAMOND_BLOCK, Blocks.GOLD_ORE, Blocks.GOLD_BLOCK, Blocks.REDSTONE_ORE, Blocks.LIT_REDSTONE_ORE diff --git a/src/main/java/net/minecraftforge/common/MinecraftForge.java b/src/main/java/net/minecraftforge/common/MinecraftForge.java index f0c9cd2374..37c4e65af5 100644 --- a/src/main/java/net/minecraftforge/common/MinecraftForge.java +++ b/src/main/java/net/minecraftforge/common/MinecraftForge.java @@ -1,15 +1,8 @@ package net.minecraftforge.common; -import java.util.concurrent.Callable; - -import com.google.common.collect.ObjectArrays; - -import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.FMLLog; import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.eventhandler.EventBus; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraft.crash.CrashReport; import net.minecraft.item.ItemStack; import net.minecraftforge.common.ForgeHooks.SeedEntry; import net.minecraftforge.fluids.FluidRegistry; From 35978b0d962157fea5b7525e22f51a183d7f796b Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 18:04:29 -0700 Subject: [PATCH 24/45] More uniformly apply Configuration.caseSensitiveCustomCategories. Closes #1353 --- .../common/config/Configuration.java | 34 ++++++------------- 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/src/main/java/net/minecraftforge/common/config/Configuration.java b/src/main/java/net/minecraftforge/common/config/Configuration.java index 13c34e06c8..759a806cd5 100644 --- a/src/main/java/net/minecraftforge/common/config/Configuration.java +++ b/src/main/java/net/minecraftforge/common/config/Configuration.java @@ -114,7 +114,7 @@ public class Configuration File fileBak = new File(file.getAbsolutePath() + "_" + new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()) + ".errored"); FMLLog.severe("An exception occurred while loading config file %s. This file will be renamed to %s " + - "and a new config file will be generated.", file.getName(), fileBak.getName()); + "and a new config file will be generated.", file.getName(), fileBak.getName()); e.printStackTrace(); file.renameTo(fileBak); @@ -688,11 +688,6 @@ public class Configuration */ public Property get(String category, String key, String defaultValue, String comment, Property.Type type) { - if (!caseSensitiveCustomCategories) - { - category = category.toLowerCase(Locale.ENGLISH); - } - ConfigCategory cat = getCategory(category); if (cat.containsKey(key)) @@ -736,11 +731,6 @@ public class Configuration */ public Property get(String category, String key, String[] defaultValues, String comment, Property.Type type) { - if (!caseSensitiveCustomCategories) - { - category = category.toLowerCase(Locale.ENGLISH); - } - ConfigCategory cat = getCategory(category); if (cat.containsKey(key)) @@ -780,11 +770,15 @@ public class Configuration public boolean hasCategory(String category) { + if (!caseSensitiveCustomCategories) + category = category.toLowerCase(Locale.ENGLISH); return categories.get(category) != null; } public boolean hasKey(String category, String key) { + if (!caseSensitiveCustomCategories) + category = category.toLowerCase(Locale.ENGLISH); ConfigCategory cat = categories.get(category); return cat != null && cat.containsKey(key); } @@ -906,6 +900,8 @@ public class Configuration if (tmpList != null) // allow special characters as part of string lists break; name = line.substring(nameStart, nameEnd + 1); + if (!caseSensitiveCustomCategories) + name = name.toLowerCase(Locale.ENGLISH); String qualifiedName = ConfigCategory.getQualifiedName(name, currentCat); ConfigCategory cat = categories.get(qualifiedName); @@ -1119,6 +1115,9 @@ public class Configuration public ConfigCategory getCategory(String category) { + if (!caseSensitiveCustomCategories) + category = category.toLowerCase(Locale.ENGLISH); + ConfigCategory ret = categories.get(category); if (ret == null) @@ -1188,8 +1187,6 @@ public class Configuration */ public Configuration setCategoryComment(String category, String comment) { - if (!caseSensitiveCustomCategories) - category = category.toLowerCase(Locale.ENGLISH); getCategory(category).setComment(comment); return this; } @@ -1207,8 +1204,6 @@ public class Configuration */ public Configuration setCategoryLanguageKey(String category, String langKey) { - if (!caseSensitiveCustomCategories) - category = category.toLowerCase(Locale.ENGLISH); getCategory(category).setLanguageKey(langKey); return this; } @@ -1221,9 +1216,6 @@ public class Configuration */ public Configuration setCategoryConfigEntryClass(String category, Class clazz) { - - if (!caseSensitiveCustomCategories) - category = category.toLowerCase(Locale.ENGLISH); getCategory(category).setConfigEntryClass(clazz); return this; } @@ -1235,8 +1227,6 @@ public class Configuration */ public Configuration setCategoryRequiresWorldRestart(String category, boolean requiresWorldRestart) { - if (!caseSensitiveCustomCategories) - category = category.toLowerCase(Locale.ENGLISH); getCategory(category).setRequiresWorldRestart(requiresWorldRestart); return this; } @@ -1249,8 +1239,6 @@ public class Configuration */ public Configuration setCategoryRequiresMcRestart(String category, boolean requiresMcRestart) { - if (!caseSensitiveCustomCategories) - category = category.toLowerCase(Locale.ENGLISH); getCategory(category).setRequiresMcRestart(requiresMcRestart); return this; } @@ -1261,8 +1249,6 @@ public class Configuration */ public Configuration setCategoryPropertyOrder(String category, List propOrder) { - if (!caseSensitiveCustomCategories) - category = category.toLowerCase(Locale.ENGLISH); getCategory(category).setPropertyOrder(propOrder); return this; } From a5ffda5d66b0b415c7c3115e1749e1a4d09eca5e Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 18:20:05 -0700 Subject: [PATCH 25/45] Close player's inventory to prevent potential dupe issues on some modded items. Closes #1431 --- .../entity/player/EntityPlayer.java.patch | 56 ++++++++++--------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch b/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch index 682a8da4af..84d1061fa1 100644 --- a/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch +++ b/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch @@ -67,7 +67,11 @@ if (this.func_70005_c_().equals("Notch")) { this.func_146097_a(new ItemStack(Items.field_151034_e, 1), true, false); -@@ -592,6 +603,9 @@ +@@ -589,9 +600,13 @@ + + if (!this.field_70170_p.func_82736_K().func_82766_b("keepInventory") && !this.func_175149_v()) + { ++ this.func_71053_j(); //Force the screen closed before droping inventory, this will cause the held item to drop and 'bag' items to finalize. this.field_71071_by.func_70436_m(); } @@ -77,7 +81,7 @@ if (p_70645_1_ != null) { this.field_70159_w = (double)(-MathHelper.func_76134_b((this.field_70739_aP + this.field_70177_z) * 0.017453292F) * 0.1F); -@@ -680,13 +694,26 @@ +@@ -680,13 +695,26 @@ @Nullable public EntityItem func_71040_bB(boolean p_71040_1_) { @@ -106,7 +110,7 @@ } @Nullable -@@ -751,14 +778,22 @@ +@@ -751,14 +779,22 @@ @Nullable public ItemStack func_184816_a(EntityItem p_184816_1_) { @@ -130,7 +134,7 @@ if (f > 1.0F) { int i = EnchantmentHelper.func_185293_e(this); -@@ -808,12 +843,13 @@ +@@ -808,12 +844,13 @@ f /= 5.0F; } @@ -146,7 +150,7 @@ } public void func_70037_a(NBTTagCompound p_70037_1_) -@@ -849,6 +885,16 @@ +@@ -849,6 +886,16 @@ this.field_82248_d = p_70037_1_.func_74767_n("SpawnForced"); } @@ -163,7 +167,7 @@ this.field_71100_bB.func_75112_a(p_70037_1_); this.field_71075_bZ.func_75095_b(p_70037_1_); -@@ -881,6 +927,23 @@ +@@ -881,6 +928,23 @@ p_70014_1_.func_74757_a("SpawnForced", this.field_82248_d); } @@ -187,7 +191,7 @@ this.field_71100_bB.func_75117_b(p_70014_1_); this.field_71075_bZ.func_75091_a(p_70014_1_); p_70014_1_.func_74782_a("EnderItems", this.field_71078_a.func_70487_g()); -@@ -888,6 +951,7 @@ +@@ -888,6 +952,7 @@ public boolean func_70097_a(DamageSource p_70097_1_, float p_70097_2_) { @@ -195,7 +199,7 @@ if (this.func_180431_b(p_70097_1_)) { return false; -@@ -970,6 +1034,7 @@ +@@ -970,6 +1035,7 @@ if (this.field_184627_bm.field_77994_a <= 0) { EnumHand enumhand = this.func_184600_cs(); @@ -203,7 +207,7 @@ if (enumhand == EnumHand.MAIN_HAND) { -@@ -1005,7 +1070,10 @@ +@@ -1005,7 +1071,10 @@ { if (!this.func_180431_b(p_70665_1_)) { @@ -215,7 +219,7 @@ p_70665_2_ = this.func_70672_c(p_70665_1_, p_70665_2_); float f = p_70665_2_; p_70665_2_ = Math.max(p_70665_2_ - this.func_110139_bj(), 0.0F); -@@ -1071,6 +1139,7 @@ +@@ -1071,6 +1140,7 @@ } else { @@ -223,7 +227,7 @@ ItemStack itemstack = p_184822_2_ != null ? p_184822_2_.func_77946_l() : null; if (!p_184822_1_.func_184230_a(this, p_184822_2_, p_184822_3_)) -@@ -1086,6 +1155,7 @@ +@@ -1086,6 +1156,7 @@ { if (p_184822_2_.field_77994_a <= 0 && !this.field_71075_bZ.field_75098_d) { @@ -231,7 +235,7 @@ this.func_184611_a(p_184822_3_, (ItemStack)null); } -@@ -1101,6 +1171,7 @@ +@@ -1101,6 +1172,7 @@ { if (p_184822_2_.field_77994_a <= 0 && !this.field_71075_bZ.field_75098_d) { @@ -239,7 +243,7 @@ this.func_184611_a(p_184822_3_, (ItemStack)null); } else if (p_184822_2_.field_77994_a < itemstack.field_77994_a && this.field_71075_bZ.field_75098_d) -@@ -1127,6 +1198,7 @@ +@@ -1127,6 +1199,7 @@ public void func_71059_n(Entity p_71059_1_) { @@ -247,7 +251,7 @@ if (p_71059_1_.func_70075_an()) { if (!p_71059_1_.func_85031_j(this)) -@@ -1326,6 +1398,7 @@ +@@ -1326,6 +1399,7 @@ if (itemstack1.field_77994_a <= 0) { this.func_184611_a(EnumHand.MAIN_HAND, (ItemStack)null); @@ -255,7 +259,7 @@ } } -@@ -1414,6 +1487,8 @@ +@@ -1414,6 +1488,8 @@ public EntityPlayer.SleepResult func_180469_a(BlockPos p_180469_1_) { @@ -264,7 +268,7 @@ if (!this.field_70170_p.field_72995_K) { if (this.func_70608_bn() || !this.func_70089_S()) -@@ -1453,9 +1528,10 @@ +@@ -1453,9 +1529,10 @@ this.func_70105_a(0.2F, 0.2F); @@ -278,7 +282,7 @@ float f = 0.5F; float f1 = 0.5F; -@@ -1518,13 +1594,14 @@ +@@ -1518,13 +1595,14 @@ public void func_70999_a(boolean p_70999_1_, boolean p_70999_2_, boolean p_70999_3_) { @@ -296,7 +300,7 @@ if (blockpos == null) { -@@ -1533,6 +1610,10 @@ +@@ -1533,6 +1611,10 @@ this.func_70107_b((double)((float)blockpos.func_177958_n() + 0.5F), (double)((float)blockpos.func_177956_o() + 0.1F), (double)((float)blockpos.func_177952_p() + 0.5F)); } @@ -307,7 +311,7 @@ this.field_71083_bS = false; -@@ -1551,15 +1632,16 @@ +@@ -1551,15 +1633,16 @@ private boolean func_175143_p() { @@ -327,7 +331,7 @@ { if (!p_180467_2_) { -@@ -1574,16 +1656,17 @@ +@@ -1574,16 +1657,17 @@ } else { @@ -348,7 +352,7 @@ switch (enumfacing) { -@@ -1623,16 +1706,24 @@ +@@ -1623,16 +1707,24 @@ public BlockPos func_180470_cg() { @@ -375,7 +379,7 @@ if (p_180473_1_ != null) { this.field_71077_c = p_180473_1_; -@@ -1827,6 +1918,10 @@ +@@ -1827,6 +1919,10 @@ super.func_180430_e(p_180430_1_, p_180430_2_); } @@ -386,7 +390,7 @@ } protected void func_71061_d_() -@@ -2027,6 +2122,18 @@ +@@ -2027,6 +2123,18 @@ this.field_175152_f = p_71049_1_.field_175152_f; this.field_71078_a = p_71049_1_.field_71078_a; this.func_184212_Q().func_187227_b(field_184827_bp, p_71049_1_.func_184212_Q().func_187225_a(field_184827_bp)); @@ -405,7 +409,7 @@ } protected boolean func_70041_e_() -@@ -2126,7 +2233,10 @@ +@@ -2126,7 +2234,10 @@ public ITextComponent func_145748_c_() { @@ -417,7 +421,7 @@ itextcomponent.func_150256_b().func_150241_a(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/msg " + this.func_70005_c_() + " ")); itextcomponent.func_150256_b().func_150209_a(this.func_174823_aP()); itextcomponent.func_150256_b().func_179989_a(this.func_70005_c_()); -@@ -2135,7 +2245,7 @@ +@@ -2135,7 +2246,7 @@ public float func_70047_e() { @@ -426,7 +430,7 @@ if (this.func_70608_bn()) { -@@ -2346,6 +2456,161 @@ +@@ -2346,6 +2457,161 @@ return (float)this.func_110148_a(SharedMonsterAttributes.field_188792_h).func_111126_e(); } From c0840da355181ea49c3b66a911d72b813e4154ad Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 19:21:57 -0700 Subject: [PATCH 26/45] Move getArmorModel hook up two lines so that the attributes and animation information is set. Closes #1939 --- .../client/renderer/entity/layers/LayerArmorBase.java.patch | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/patches/minecraft/net/minecraft/client/renderer/entity/layers/LayerArmorBase.java.patch b/patches/minecraft/net/minecraft/client/renderer/entity/layers/LayerArmorBase.java.patch index 11c2dc9ce2..200b267fdf 100644 --- a/patches/minecraft/net/minecraft/client/renderer/entity/layers/LayerArmorBase.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/entity/layers/LayerArmorBase.java.patch @@ -1,10 +1,12 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/entity/layers/LayerArmorBase.java +++ ../src-work/minecraft/net/minecraft/client/renderer/entity/layers/LayerArmorBase.java -@@ -60,29 +60,27 @@ +@@ -58,31 +58,29 @@ + if (itemarmor.func_185083_B_() == p_188361_9_) + { T t = this.func_188360_a(p_188361_9_); ++ t = getArmorModelHook(p_188361_1_, itemstack, p_188361_9_, t); t.func_178686_a(this.field_177190_a.func_177087_b()); t.func_78086_a(p_188361_1_, p_188361_2_, p_188361_3_, p_188361_4_); -+ t = getArmorModelHook(p_188361_1_, itemstack, p_188361_9_, t); this.func_188359_a(t, p_188361_9_); boolean flag = this.func_188363_b(p_188361_9_); - this.field_177190_a.func_110776_a(this.func_177181_a(itemarmor, flag)); From 357d2f8d861fb10e2d042a1d1f59b1525dfe6e51 Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 19:56:35 -0700 Subject: [PATCH 27/45] Fire PopulateChunkEvent Pre and Post in ChunkProviderFlat. Closes #2050 --- .../world/gen/ChunkProviderFlat.java.patch | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 patches/minecraft/net/minecraft/world/gen/ChunkProviderFlat.java.patch diff --git a/patches/minecraft/net/minecraft/world/gen/ChunkProviderFlat.java.patch b/patches/minecraft/net/minecraft/world/gen/ChunkProviderFlat.java.patch new file mode 100644 index 0000000000..6df9bd1fe8 --- /dev/null +++ b/patches/minecraft/net/minecraft/world/gen/ChunkProviderFlat.java.patch @@ -0,0 +1,29 @@ +--- ../src-base/minecraft/net/minecraft/world/gen/ChunkProviderFlat.java ++++ ../src-work/minecraft/net/minecraft/world/gen/ChunkProviderFlat.java +@@ -163,6 +163,7 @@ + + public void func_185931_b(int p_185931_1_, int p_185931_2_) + { ++ net.minecraft.block.BlockFalling.field_149832_M = true; + int i = p_185931_1_ * 16; + int j = p_185931_2_ * 16; + BlockPos blockpos = new BlockPos(i, 0, j); +@@ -174,6 +175,8 @@ + this.field_73161_b.setSeed((long)p_185931_1_ * k + (long)p_185931_2_ * l ^ this.field_73163_a.func_72905_C()); + ChunkPos chunkpos = new ChunkPos(p_185931_1_, p_185931_2_); + ++ net.minecraftforge.event.ForgeEventFactory.onChunkPopulate(true, this, this.field_73163_a, this.field_73161_b, p_185931_1_, p_185931_2_, flag); ++ + for (MapGenStructure mapgenstructure : this.field_82696_f) + { + boolean flag1 = mapgenstructure.func_175794_a(this.field_73163_a, this.field_73161_b, chunkpos); +@@ -211,6 +214,9 @@ + { + biome.func_180624_a(this.field_73163_a, this.field_73161_b, blockpos); + } ++ ++ net.minecraftforge.event.ForgeEventFactory.onChunkPopulate(false, this, this.field_73163_a, this.field_73161_b, p_185931_1_, p_185931_2_, flag); ++ net.minecraft.block.BlockFalling.field_149832_M = false; + } + + public boolean func_185933_a(Chunk p_185933_1_, int p_185933_2_, int p_185933_3_) From debe0ffdf8d85a4f87368743b144533ba33e731e Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 20:13:03 -0700 Subject: [PATCH 28/45] Fire LivingSpawnEvents for MobSpawners. Closes #2079 --- .../tileentity/MobSpawnerBaseLogic.java.patch | 18 ++++++++++++++++ .../event/ForgeEventFactory.java | 2 ++ .../event/entity/living/LivingSpawnEvent.java | 21 +++++++++---------- 3 files changed, 30 insertions(+), 11 deletions(-) create mode 100644 patches/minecraft/net/minecraft/tileentity/MobSpawnerBaseLogic.java.patch diff --git a/patches/minecraft/net/minecraft/tileentity/MobSpawnerBaseLogic.java.patch b/patches/minecraft/net/minecraft/tileentity/MobSpawnerBaseLogic.java.patch new file mode 100644 index 0000000000..f20307a0cb --- /dev/null +++ b/patches/minecraft/net/minecraft/tileentity/MobSpawnerBaseLogic.java.patch @@ -0,0 +1,18 @@ +--- ../src-base/minecraft/net/minecraft/tileentity/MobSpawnerBaseLogic.java ++++ ../src-work/minecraft/net/minecraft/tileentity/MobSpawnerBaseLogic.java +@@ -117,10 +117,14 @@ + EntityLiving entityliving = entity instanceof EntityLiving ? (EntityLiving)entity : null; + entity.func_70012_b(entity.field_70165_t, entity.field_70163_u, entity.field_70161_v, world.field_73012_v.nextFloat() * 360.0F, 0.0F); + +- if (entityliving == null || entityliving.func_70601_bi() && entityliving.func_70058_J()) ++ net.minecraftforge.fml.common.eventhandler.Event.Result canSpawn = net.minecraftforge.event.ForgeEventFactory.canEntitySpawn(entityliving, this.func_98271_a(), (float)entity.field_70165_t, (float)entity.field_70163_u, (float)entity.field_70161_v); ++ boolean force = canSpawn == net.minecraftforge.fml.common.eventhandler.Event.Result.ALLOW || ++ (canSpawn == net.minecraftforge.fml.common.eventhandler.Event.Result.DEFAULT && (entityliving.func_70601_bi() && entityliving.func_70058_J())); ++ if (entityliving == null || force) + { + if (this.field_98282_f.func_185277_b().func_186856_d() == 1 && this.field_98282_f.func_185277_b().func_150297_b("id", 8) && entity instanceof EntityLiving) + { ++ if (!net.minecraftforge.event.ForgeEventFactory.doSpecialSpawn(entityliving, this.func_98271_a(), (float)entity.field_70165_t, (float)entity.field_70163_u, (float)entity.field_70161_v)) + ((EntityLiving)entity).func_180482_a(world.func_175649_E(new BlockPos(entity)), (IEntityLivingData)null); + } + diff --git a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java index df9a87497e..e0c99129b2 100644 --- a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java +++ b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java @@ -135,6 +135,8 @@ public class ForgeEventFactory public static Result canEntitySpawn(EntityLiving entity, World world, float x, float y, float z) { + if (entity == null) + return Result.DEFAULT; LivingSpawnEvent.CheckSpawn event = new LivingSpawnEvent.CheckSpawn(entity, world, x, y, z); MinecraftForge.EVENT_BUS.post(event); return event.getResult(); diff --git a/src/main/java/net/minecraftforge/event/entity/living/LivingSpawnEvent.java b/src/main/java/net/minecraftforge/event/entity/living/LivingSpawnEvent.java index 6a538b21b0..168e67fedb 100644 --- a/src/main/java/net/minecraftforge/event/entity/living/LivingSpawnEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/living/LivingSpawnEvent.java @@ -6,8 +6,8 @@ import net.minecraft.entity.EntityLiving; import net.minecraft.world.World; /** - * LivingSpawnEvent is fired whenever a living Entity is spawned.
- * If a method utilizes this {@link Event} as its parameter, the method will + * LivingSpawnEvent is fired for any events associated with Living Enttnies spawn status.
+ * If a method utilizes this {@link Event} as its parameter, the method will * receive every child event of this class.
*
* {@link #world} contains the world in which this living Entity is being spawned.
@@ -23,7 +23,7 @@ public class LivingSpawnEvent extends LivingEvent private final float x; private final float y; private final float z; - + public LivingSpawnEvent(EntityLiving entity, World world, float x, float y, float z) { super(entity); @@ -39,7 +39,7 @@ public class LivingSpawnEvent extends LivingEvent public float getZ() { return z; } /** * Fires before mob spawn events. - * + * * Result is significant: * DEFAULT: use vanilla spawn rules * ALLOW: allow the spawn @@ -56,9 +56,8 @@ public class LivingSpawnEvent extends LivingEvent } /** - * SpecialSpawn is fired when an Entity is to be spawned from a mob spawner.
- * This event is fired whenever an Entity is spawned in a mob spawner in
- * SpawnerAnimals#findChunksForSpawning(WorldServer, boolean, boolean, boolean).
+ * SpecialSpawn is fired when an Entity is to be spawned.
+ * This allows you to do special inializers in the new entity.
*
* This event is fired via the {@link ForgeHooks#doSpecialSpawn(EntityLiving, World, float, float, float)}.
*
@@ -77,17 +76,17 @@ public class LivingSpawnEvent extends LivingEvent super(entity, world, x, y, z); } } - + /** * Fired each tick for despawnable mobs to allow control over despawning. * {@link Result#DEFAULT} will pass the mob on to vanilla despawn mechanics. * {@link Result#ALLOW} will force the mob to despawn. * {@link Result#DENY} will force the mob to remain. * This is fired every tick for every despawnable entity. Be efficient in your handlers. - * + * * Note: this is not fired if the mob is definitely going to otherwise despawn. It is fired to check if * the mob can be allowed to despawn. See {@link EntityLiving#despawnEntity} - * + * * @author cpw * */ @@ -98,6 +97,6 @@ public class LivingSpawnEvent extends LivingEvent { super(entity, entity.worldObj, (float)entity.posX, (float)entity.posY, (float)entity.posZ); } - + } } \ No newline at end of file From 0406267d89887a46aeba044893ba572cf9c5b967 Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 20:15:32 -0700 Subject: [PATCH 29/45] Fix javadocs for BiomeColor events. Closes #2093 --- .../java/net/minecraftforge/event/terraingen/BiomeEvent.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraftforge/event/terraingen/BiomeEvent.java b/src/main/java/net/minecraftforge/event/terraingen/BiomeEvent.java index a51f600792..f1b827574a 100644 --- a/src/main/java/net/minecraftforge/event/terraingen/BiomeEvent.java +++ b/src/main/java/net/minecraftforge/event/terraingen/BiomeEvent.java @@ -10,7 +10,8 @@ import net.minecraft.world.biome.Biome; * If a method utilizes this {@link Event} as its parameter, the method will * receive every child event of this class.
*
- * All children of this event are fired on the {@link MinecraftForge#TERRAIN_GEN_BUS}. + * All children of this event are fired on the {@link MinecraftForge#TERRAIN_GEN_BUS} + * unless stated otherwise in their Javadocs. **/ public class BiomeEvent extends Event { @@ -73,7 +74,7 @@ public class BiomeEvent extends Event * If a method utilizes this {@link Event} as its parameter, the method will * receive every child event of this class.
*
- * All children of this event are fired on the {@link MinecraftForge#TERRAIN_GEN_BUS}. + * All children of this event are fired on the {@link MinecraftForge#EVENT_BUS}. **/ public static class BiomeColor extends BiomeEvent { From b8996b14bcdf4de87a4b9bf8989e9b13f85a1823 Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 20:53:19 -0700 Subject: [PATCH 30/45] Fixed EntityRegistry.addSpawn adding duplicate spawn entries. Closes #2112 --- .../minecraftforge/fml/common/registry/EntityRegistry.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraftforge/fml/common/registry/EntityRegistry.java b/src/main/java/net/minecraftforge/fml/common/registry/EntityRegistry.java index 9a68d4c1f5..7cb57061c1 100644 --- a/src/main/java/net/minecraftforge/fml/common/registry/EntityRegistry.java +++ b/src/main/java/net/minecraftforge/fml/common/registry/EntityRegistry.java @@ -234,6 +234,7 @@ public class EntityRegistry { List spawns = biome.getSpawnableList(typeOfCreature); + boolean found = false; for (SpawnListEntry entry : spawns) { //Adjusting an existing spawn entry @@ -242,11 +243,13 @@ public class EntityRegistry entry.itemWeight = weightedProb; entry.minGroupCount = min; entry.maxGroupCount = max; + found = true; break; } } - spawns.add(new SpawnListEntry(entityClass, weightedProb, min, max)); + if (!found) + spawns.add(new SpawnListEntry(entityClass, weightedProb, min, max)); } } From 978861b52164ad75bdfe387a76eab7801fa6fbdb Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 21:03:24 -0700 Subject: [PATCH 31/45] Fix setTileEntity causing the world to remove the new and old tile entities. Closes #2164 --- .../net/minecraft/world/World.java.patch | 79 +++++++++++-------- 1 file changed, 44 insertions(+), 35 deletions(-) diff --git a/patches/minecraft/net/minecraft/world/World.java.patch b/patches/minecraft/net/minecraft/world/World.java.patch index 283a366205..872c37ab6b 100644 --- a/patches/minecraft/net/minecraft/world/World.java.patch +++ b/patches/minecraft/net/minecraft/world/World.java.patch @@ -364,7 +364,16 @@ throw new ReportedException(crashreport2); } } -@@ -1707,15 +1826,20 @@ +@@ -1702,20 +1821,28 @@ + + if (this.func_175667_e(tileentity.func_174877_v())) + { +- this.func_175726_f(tileentity.func_174877_v()).func_177425_e(tileentity.func_174877_v()); ++ //Forge: Bugfix: If we set the tile entity it immediately sets it in the chunk, so we could be desyned ++ Chunk chunk = this.func_175726_f(tileentity.func_174877_v()); ++ if (chunk.func_177424_a(tileentity.func_174877_v(), net.minecraft.world.chunk.Chunk.EnumCreateEntityType.CHECK) == tileentity) ++ chunk.func_177425_e(tileentity.func_174877_v()); + } } } @@ -387,7 +396,7 @@ this.field_72984_F.func_76318_c("pendingBlockEntities"); if (!this.field_147484_a.isEmpty()) -@@ -1754,7 +1878,8 @@ +@@ -1754,7 +1881,8 @@ public boolean func_175700_a(TileEntity p_175700_1_) { @@ -397,7 +406,7 @@ if (flag && p_175700_1_ instanceof ITickable) { -@@ -1788,9 +1913,13 @@ +@@ -1788,9 +1916,13 @@ { int i = MathHelper.func_76128_c(p_72866_1_.field_70165_t); int j = MathHelper.func_76128_c(p_72866_1_.field_70161_v); @@ -413,7 +422,7 @@ { p_72866_1_.field_70142_S = p_72866_1_.field_70165_t; p_72866_1_.field_70137_T = p_72866_1_.field_70163_u; -@@ -1989,6 +2118,10 @@ +@@ -1989,6 +2121,10 @@ blockpos$pooledmutableblockpos.func_185344_t(); return true; } @@ -424,7 +433,7 @@ } } } -@@ -2028,6 +2161,16 @@ +@@ -2028,6 +2164,16 @@ IBlockState iblockstate = this.func_180495_p(blockpos$pooledmutableblockpos); Block block = iblockstate.func_177230_c(); @@ -441,7 +450,7 @@ if (iblockstate.func_185904_a() == p_72918_2_) { double d0 = (double)((float)(l1 + 1) - BlockLiquid.func_149801_b(((Integer)iblockstate.func_177229_b(BlockLiquid.field_176367_b)).intValue())); -@@ -2104,6 +2247,9 @@ +@@ -2104,6 +2250,9 @@ { IBlockState iblockstate = this.func_180495_p(blockpos$pooledmutableblockpos.func_185343_d(k1, l1, i2)); @@ -451,7 +460,7 @@ if (iblockstate.func_185904_a() == p_72830_2_) { int j2 = ((Integer)iblockstate.func_177229_b(BlockLiquid.field_176367_b)).intValue(); -@@ -2136,6 +2282,7 @@ +@@ -2136,6 +2285,7 @@ public Explosion func_72885_a(@Nullable Entity p_72885_1_, double p_72885_2_, double p_72885_4_, double p_72885_6_, float p_72885_8_, boolean p_72885_9_, boolean p_72885_10_) { Explosion explosion = new Explosion(this, p_72885_1_, p_72885_2_, p_72885_4_, p_72885_6_, p_72885_8_, p_72885_9_, p_72885_10_); @@ -459,7 +468,7 @@ explosion.func_77278_a(); explosion.func_77279_a(true); return explosion; -@@ -2258,6 +2405,7 @@ +@@ -2258,6 +2408,7 @@ public void func_175690_a(BlockPos p_175690_1_, @Nullable TileEntity p_175690_2_) { @@ -467,7 +476,7 @@ if (!this.func_189509_E(p_175690_1_)) { if (p_175690_2_ != null && !p_175690_2_.func_145837_r()) -@@ -2283,8 +2431,10 @@ +@@ -2283,8 +2434,10 @@ else { this.func_175700_a(p_175690_2_); @@ -479,7 +488,7 @@ } } } -@@ -2297,6 +2447,8 @@ +@@ -2297,6 +2450,8 @@ { tileentity.func_145843_s(); this.field_147484_a.remove(tileentity); @@ -488,7 +497,7 @@ } else { -@@ -2309,6 +2461,7 @@ +@@ -2309,6 +2464,7 @@ this.func_175726_f(p_175713_1_).func_177425_e(p_175713_1_); } @@ -496,7 +505,7 @@ } public void func_147457_a(TileEntity p_147457_1_) -@@ -2335,7 +2488,7 @@ +@@ -2335,7 +2491,7 @@ if (chunk != null && !chunk.func_76621_g()) { IBlockState iblockstate = this.func_180495_p(p_175677_1_); @@ -505,7 +514,7 @@ } else { -@@ -2358,6 +2511,7 @@ +@@ -2358,6 +2514,7 @@ { this.field_72985_G = p_72891_1_; this.field_72992_H = p_72891_2_; @@ -513,7 +522,7 @@ } public void func_72835_b() -@@ -2367,6 +2521,11 @@ +@@ -2367,6 +2524,11 @@ protected void func_72947_a() { @@ -525,7 +534,7 @@ if (this.field_72986_A.func_76059_o()) { this.field_73004_o = 1.0F; -@@ -2380,6 +2539,11 @@ +@@ -2380,6 +2542,11 @@ protected void func_72979_l() { @@ -537,7 +546,7 @@ if (!this.field_73011_w.func_177495_o()) { if (!this.field_72995_K) -@@ -2499,6 +2663,11 @@ +@@ -2499,6 +2666,11 @@ public boolean func_175670_e(BlockPos p_175670_1_, boolean p_175670_2_) { @@ -549,7 +558,7 @@ Biome biome = this.func_180494_b(p_175670_1_); float f = biome.func_180626_a(p_175670_1_); -@@ -2540,6 +2709,11 @@ +@@ -2540,6 +2712,11 @@ public boolean func_175708_f(BlockPos p_175708_1_, boolean p_175708_2_) { @@ -561,7 +570,7 @@ Biome biome = this.func_180494_b(p_175708_1_); float f = biome.func_180626_a(p_175708_1_); -@@ -2557,7 +2731,7 @@ +@@ -2557,7 +2734,7 @@ { IBlockState iblockstate = this.func_180495_p(p_175708_1_); @@ -570,7 +579,7 @@ { return true; } -@@ -2589,10 +2763,11 @@ +@@ -2589,10 +2766,11 @@ else { IBlockState iblockstate = this.func_180495_p(p_175638_1_); @@ -585,7 +594,7 @@ { j = 1; } -@@ -2691,7 +2866,7 @@ +@@ -2691,7 +2869,7 @@ int j4 = j2 + enumfacing.func_96559_d(); int k4 = k2 + enumfacing.func_82599_e(); blockpos$pooledmutableblockpos.func_185343_d(i4, j4, k4); @@ -594,7 +603,7 @@ i3 = this.func_175642_b(p_180500_1_, blockpos$pooledmutableblockpos); if (i3 == l2 - l4 && j < this.field_72994_J.length) -@@ -2799,10 +2974,10 @@ +@@ -2799,10 +2977,10 @@ public List func_175674_a(@Nullable Entity p_175674_1_, AxisAlignedBB p_175674_2_, @Nullable Predicate p_175674_3_) { List list = Lists.newArrayList(); @@ -609,7 +618,7 @@ for (int i1 = i; i1 <= j; ++i1) { -@@ -2855,10 +3030,10 @@ +@@ -2855,10 +3033,10 @@ public List func_175647_a(Class p_175647_1_, AxisAlignedBB p_175647_2_, @Nullable Predicate p_175647_3_) { @@ -624,7 +633,7 @@ List list = Lists.newArrayList(); for (int i1 = i; i1 < j; ++i1) -@@ -2938,11 +3113,13 @@ +@@ -2938,11 +3116,13 @@ public void func_175650_b(Collection p_175650_1_) { @@ -641,7 +650,7 @@ } } -@@ -2955,7 +3132,7 @@ +@@ -2955,7 +3135,7 @@ { IBlockState iblockstate = this.func_180495_p(p_175716_2_); AxisAlignedBB axisalignedbb = p_175716_3_ ? null : p_175716_1_.func_176223_P().func_185890_d(this, p_175716_2_); @@ -650,7 +659,7 @@ } public int func_181545_F() -@@ -3038,7 +3215,7 @@ +@@ -3038,7 +3218,7 @@ public int func_175651_c(BlockPos p_175651_1_, EnumFacing p_175651_2_) { IBlockState iblockstate = this.func_180495_p(p_175651_1_); @@ -659,7 +668,7 @@ } public boolean func_175640_z(BlockPos p_175640_1_) -@@ -3235,7 +3412,7 @@ +@@ -3235,7 +3415,7 @@ public long func_72905_C() { @@ -668,7 +677,7 @@ } public long func_82737_E() -@@ -3245,17 +3422,17 @@ +@@ -3245,17 +3425,17 @@ public long func_72820_D() { @@ -689,7 +698,7 @@ if (!this.func_175723_af().func_177746_a(blockpos)) { -@@ -3267,7 +3444,7 @@ +@@ -3267,7 +3447,7 @@ public void func_175652_B(BlockPos p_175652_1_) { @@ -698,7 +707,7 @@ } @SideOnly(Side.CLIENT) -@@ -3287,12 +3464,18 @@ +@@ -3287,12 +3467,18 @@ if (!this.field_72996_f.contains(p_72897_1_)) { @@ -717,7 +726,7 @@ return true; } -@@ -3386,8 +3569,7 @@ +@@ -3386,8 +3572,7 @@ public boolean func_180502_D(BlockPos p_180502_1_) { @@ -727,7 +736,7 @@ } @Nullable -@@ -3448,12 +3630,12 @@ +@@ -3448,12 +3633,12 @@ public int func_72800_K() { @@ -742,7 +751,7 @@ } public Random func_72843_D(int p_72843_1_, int p_72843_2_, int p_72843_3_) -@@ -3503,7 +3685,7 @@ +@@ -3503,7 +3688,7 @@ @SideOnly(Side.CLIENT) public double func_72919_O() { @@ -751,7 +760,7 @@ } public void func_175715_c(int p_175715_1_, BlockPos p_175715_2_, int p_175715_3_) -@@ -3537,7 +3719,7 @@ +@@ -3537,7 +3722,7 @@ public void func_175666_e(BlockPos p_175666_1_, Block p_175666_2_) { @@ -760,7 +769,7 @@ { BlockPos blockpos = p_175666_1_.func_177972_a(enumfacing); -@@ -3545,18 +3727,14 @@ +@@ -3545,18 +3730,14 @@ { IBlockState iblockstate = this.func_180495_p(blockpos); @@ -783,7 +792,7 @@ } } } -@@ -3622,6 +3800,87 @@ +@@ -3622,6 +3803,87 @@ return i >= -k && i <= k && j >= -k && j <= k; } From 93be22fc8e00311a510acfdb59615d08dcdce9f2 Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 21:19:47 -0700 Subject: [PATCH 32/45] Add ServerHangWatchdog to TerminalTransformer whitelist. Closes #2203 --- .../asm/transformers/TerminalTransformer.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/minecraftforge/fml/common/asm/transformers/TerminalTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/TerminalTransformer.java index a1d75d7ec7..4edeee63dd 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/transformers/TerminalTransformer.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/transformers/TerminalTransformer.java @@ -134,11 +134,15 @@ public class TerminalTransformer implements IClassTransformer String callingClass = cause.length > 2 ? cause[3].getClassName() : "none"; String callingParent = cause.length > 3 ? cause[4].getClassName() : "none"; // FML is allowed to call system exit and the Minecraft applet (from the quit button), and the dedicated server (from itself) - if (!(callingClass.startsWith("net.minecraftforge.fml.") || - ("net.minecraft.client.Minecraft".equals(callingClass) && "net.minecraft.client.Minecraft".equals(callingParent)) || - ("net.minecraft.server.gui.MinecraftServerGui$1".equals(callingClass) && "java.awt.AWTEventMulticaster".equals(callingParent)) || - ("net.minecraft.server.dedicated.DedicatedServer".equals(callingClass) && "net.minecraft.server.MinecraftServer".equals(callingParent))) - ) + boolean allowed = false; + allowed |= callingClass.startsWith("net.minecraftforge.fml."); + allowed |= callingClass.equals("net.minecraft.client.Minecraft") && callingParent.equals("net.minecraft.client.Minecraft"); + allowed |= callingClass.equals("net.minecraft.server.gui.MinecraftServerGui$1") && callingParent.equals("java.awt.AWTEventMulticaster"); + allowed |= callingClass.equals("net.minecraft.server.dedicated.DedicatedServer") && callingParent.equals("net.minecraft.server.MinecraftServer"); + allowed |= callingClass.equals("net.minecraft.server.dedicated.ServerHangWatchdog"); + allowed |= callingClass.equals("net.minecraft.server.dedicated.ServerHangWatchdog$1"); + + if (!allowed) { throw new ExitTrappedException(); } From 772e7da3a3750c2880d213ceef27bef55927fd66 Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 22:30:09 -0700 Subject: [PATCH 33/45] Fixed NBTTagString.toString not properly escaping \'s. Closes #2393 --- .../net/minecraft/nbt/NBTTagString.java.patch | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/patches/minecraft/net/minecraft/nbt/NBTTagString.java.patch b/patches/minecraft/net/minecraft/nbt/NBTTagString.java.patch index 178a0151b2..a193b9c04b 100644 --- a/patches/minecraft/net/minecraft/nbt/NBTTagString.java.patch +++ b/patches/minecraft/net/minecraft/nbt/NBTTagString.java.patch @@ -9,3 +9,13 @@ } public byte func_74732_a() +@@ -42,7 +42,8 @@ + + public String toString() + { +- return "\"" + this.field_74751_a.replace("\"", "\\\"") + "\""; ++ // Forge: BugFix: Vanilla does a normal " -> \" conversion but doesn't escape \ ++ return "\"" + org.apache.commons.lang3.StringUtils.replaceEach(this.field_74751_a, new String[]{"\\","\""}, new String[]{"\\\\","\\\""}) + "\""; + } + + public NBTBase func_74737_b() From 2f5f9968e465b2170ec0c8e0f74ce6faea26d547 Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 22:31:48 -0700 Subject: [PATCH 34/45] Reinitalize statistics information on Mapping changes. Fixes mismatched stats to item/block ids. And auto registers stats for modded items. Closes #2454 --- .../net/minecraft/stats/StatList.java.patch | 37 +++++++++++++++++++ .../common/ForgeModContainer.java | 7 ++++ 2 files changed, 44 insertions(+) diff --git a/patches/minecraft/net/minecraft/stats/StatList.java.patch b/patches/minecraft/net/minecraft/stats/StatList.java.patch index 1efa70d8ff..53807504d5 100644 --- a/patches/minecraft/net/minecraft/stats/StatList.java.patch +++ b/patches/minecraft/net/minecraft/stats/StatList.java.patch @@ -99,3 +99,40 @@ if (p_151180_0_[i] != null && p_151180_0_[j] == null) { +@@ -306,4 +313,36 @@ + { + return (StatBase)field_188093_a.get(p_151177_0_); + } ++ ++ @Deprecated //MODDER DO NOT CALL THIS ITS JUST A EVENT CALLBACK FOR FORGE ++ public static void reinit() ++ { ++ field_188093_a.clear(); ++ field_188094_c.clear(); ++ field_188095_d.clear(); ++ field_188096_e.clear(); ++ ++ for (StatBase[] sb : new StatBase[][]{field_188065_ae, field_188066_af, field_75929_E, field_75930_F, field_188067_ai, field_188068_aj}) ++ { ++ for (int x = 0; x < sb.length; x++) ++ { ++ if (sb[x] != null) ++ { ++ field_75940_b.remove(sb[x]); ++ sb[x] = null; ++ } ++ } ++ } ++ List unknown = Lists.newArrayList(field_75940_b); ++ field_75940_b.clear(); ++ ++ for (StatBase b : unknown) ++ b.func_75971_g(); ++ ++ func_151181_c(); ++ func_75925_c(); ++ func_151179_e(); ++ func_75918_d(); ++ func_188054_f(); ++ } + } diff --git a/src/main/java/net/minecraftforge/common/ForgeModContainer.java b/src/main/java/net/minecraftforge/common/ForgeModContainer.java index b18562cdf4..6ec37cd47b 100644 --- a/src/main/java/net/minecraftforge/common/ForgeModContainer.java +++ b/src/main/java/net/minecraftforge/common/ForgeModContainer.java @@ -20,6 +20,7 @@ import java.util.Map; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.stats.StatList; import net.minecraft.world.storage.SaveHandler; import net.minecraft.world.storage.WorldInfo; import net.minecraftforge.classloading.FMLForgePlugin; @@ -350,6 +351,12 @@ public class ForgeModContainer extends DummyModContainer implements WorldAccessC } } + @Subscribe + public void mappingChange(FMLModIdMappingEvent evt) + { + StatList.reinit(); + } + @Subscribe public void postInit(FMLPostInitializationEvent evt) { From 5d2b8438c9953502a7ecc51d9f7f1f8552cbb7ae Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 22:49:54 -0700 Subject: [PATCH 35/45] Fix Thorns enchantment bypassing ISpecialArmor.damageArmor function. Closes #2463 --- .../enchantment/EnchantmentThorns.java.patch | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 patches/minecraft/net/minecraft/enchantment/EnchantmentThorns.java.patch diff --git a/patches/minecraft/net/minecraft/enchantment/EnchantmentThorns.java.patch b/patches/minecraft/net/minecraft/enchantment/EnchantmentThorns.java.patch new file mode 100644 index 0000000000..fb21368df6 --- /dev/null +++ b/patches/minecraft/net/minecraft/enchantment/EnchantmentThorns.java.patch @@ -0,0 +1,43 @@ +--- ../src-base/minecraft/net/minecraft/enchantment/EnchantmentThorns.java ++++ ../src-work/minecraft/net/minecraft/enchantment/EnchantmentThorns.java +@@ -51,12 +51,12 @@ + + if (itemstack != null) + { +- itemstack.func_77972_a(3, p_151367_1_); ++ damageArmor(itemstack, 3, p_151367_1_); + } + } + else if (itemstack != null) + { +- itemstack.func_77972_a(1, p_151367_1_); ++ damageArmor(itemstack, 1, p_151367_1_); + } + } + +@@ -69,4 +69,25 @@ + { + return p_92095_0_ > 10 ? p_92095_0_ - 10 : 1 + p_92095_1_.nextInt(4); + } ++ ++ private void damageArmor(ItemStack stack, int amount, EntityLivingBase entity) ++ { ++ int slot = -1; ++ int x = 0; ++ for (ItemStack i : entity.func_184193_aE()) ++ { ++ if (i == stack){ ++ slot = x; ++ break; ++ } ++ x++; ++ } ++ if (slot == -1 || !(stack.func_77973_b() instanceof net.minecraftforge.common.ISpecialArmor)) ++ { ++ stack.func_77972_a(1, entity); ++ return; ++ } ++ net.minecraftforge.common.ISpecialArmor armor = (net.minecraftforge.common.ISpecialArmor)stack.func_77973_b(); ++ armor.damageArmor(entity, stack, DamageSource.func_92087_a(entity), amount, slot); ++ } + } From 906b83dee421528b07daaeb657ecc5e1880e2fd0 Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 22:56:33 -0700 Subject: [PATCH 36/45] Fix tooltip for survival tab in the creative menu not drawing on any but the first page. Closes #2908 and #2504 --- .../client/gui/inventory/GuiContainerCreative.java.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/patches/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java.patch b/patches/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java.patch index fa5d4bb8c1..c6aa939018 100644 --- a/patches/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/inventory/GuiContainerCreative.java.patch @@ -57,7 +57,7 @@ + //split from above for custom search tabs + private void updateFilteredItems(GuiContainerCreative.ContainerCreative guicontainercreative$containercreative) + { -+ if (CreativeTabs.field_78032_a[field_147058_w] == CreativeTabs.field_78027_g) // FORGE: Only add enchanted books to the regular search ++ if (CreativeTabs.field_78032_a[field_147058_w] == CreativeTabs.field_78027_g) // FORGE: Only add enchanted books to the regular search for (Enchantment enchantment : Enchantment.field_185264_b) { if (enchantment != null && enchantment.field_77351_y != null) @@ -137,7 +137,7 @@ } } -+ if (!rendered && func_147052_b(CreativeTabs.field_78027_g, p_73863_1_, p_73863_2_)) ++ if (!rendered && !func_147052_b(CreativeTabs.field_78027_g, p_73863_1_, p_73863_2_)) + { + func_147052_b(CreativeTabs.field_78036_m, p_73863_1_, p_73863_2_); + } From b5f8da794ccbd44bdeb7fdc179cbbaabaca69931 Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 22:58:39 -0700 Subject: [PATCH 37/45] Make sure tool-classes for vanilla tools are initialized early. Closes #2909 and #2525 --- src/main/java/net/minecraftforge/common/MinecraftForge.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/net/minecraftforge/common/MinecraftForge.java b/src/main/java/net/minecraftforge/common/MinecraftForge.java index 37c4e65af5..a7cc2ccf9e 100644 --- a/src/main/java/net/minecraftforge/common/MinecraftForge.java +++ b/src/main/java/net/minecraftforge/common/MinecraftForge.java @@ -55,5 +55,6 @@ public class MinecraftForge UsernameCache.load(); // Load before all the mods, so MC owns the MC fluids FluidRegistry.validateFluidRegistry(); + ForgeHooks.initTools(); } } From aef721a2483fa6c336a0343b7ae6abe725a45802 Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 23:06:42 -0700 Subject: [PATCH 38/45] Fixed FluidUtil.tryEmptyFluidContainerItem not checking if the tank can accept fluids first. Closes #2527 --- src/main/java/net/minecraftforge/fluids/FluidUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/minecraftforge/fluids/FluidUtil.java b/src/main/java/net/minecraftforge/fluids/FluidUtil.java index 52facc972f..f5b000f586 100644 --- a/src/main/java/net/minecraftforge/fluids/FluidUtil.java +++ b/src/main/java/net/minecraftforge/fluids/FluidUtil.java @@ -367,7 +367,7 @@ public class FluidUtil max = fluidContainer.getCapacity(container); } FluidStack drained = fluidContainer.drain(container, max, false); - if (drained != null) + if (drained != null && tank.canFill(side, drained.getFluid())) { // check how much we can fill into the tank int filled = tank.fill(side, drained, false); From 39ac71072254447b53d785e2b6fce8cdbb2cbb5a Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 23:16:12 -0700 Subject: [PATCH 39/45] Fixed potential issue with Chunk.getLightOpacity being called before the chunk is added to the world map. Closes #2529 --- .../minecraft/world/chunk/Chunk.java.patch | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/patches/minecraft/net/minecraft/world/chunk/Chunk.java.patch b/patches/minecraft/net/minecraft/world/chunk/Chunk.java.patch index 1cf592b9b1..525db0e684 100644 --- a/patches/minecraft/net/minecraft/world/chunk/Chunk.java.patch +++ b/patches/minecraft/net/minecraft/world/chunk/Chunk.java.patch @@ -9,7 +9,7 @@ { this.field_76634_f[k << 4 | j] = l; -@@ -451,12 +451,12 @@ +@@ -451,12 +451,13 @@ public int func_177437_b(BlockPos p_177437_1_) { @@ -20,11 +20,12 @@ private int func_150808_b(int p_150808_1_, int p_150808_2_, int p_150808_3_) { - return this.func_186032_a(p_150808_1_, p_150808_2_, p_150808_3_).func_185891_c(); -+ return this.func_186032_a(p_150808_1_, p_150808_2_, p_150808_3_).getLightOpacity(this.field_76637_e, new BlockPos(p_150808_1_, p_150808_2_, p_150808_3_)); ++ IBlockState state = this.func_186032_a(p_150808_1_, p_150808_2_, p_150808_3_); //Forge: Can sometimes be called before we are added to the global world list. So use the less accurate one during that. It'll be recalculated later ++ return this.field_189550_d ? state.func_185891_c() : state.getLightOpacity(this.field_76637_e, new BlockPos(p_150808_1_, p_150808_2_, p_150808_3_)); } public IBlockState func_177435_g(BlockPos p_177435_1_) -@@ -538,6 +538,7 @@ +@@ -538,6 +539,7 @@ { Block block = p_177436_2_.func_177230_c(); Block block1 = iblockstate.func_177230_c(); @@ -32,7 +33,7 @@ ExtendedBlockStorage extendedblockstorage = this.field_76652_q[j >> 4]; boolean flag = false; -@@ -554,14 +555,19 @@ +@@ -554,14 +556,19 @@ extendedblockstorage.func_177484_a(i, j & 15, k, p_177436_2_); @@ -54,7 +55,7 @@ this.field_76637_e.func_175713_t(p_177436_1_); } } -@@ -578,8 +584,7 @@ +@@ -578,8 +585,7 @@ } else { @@ -64,7 +65,7 @@ if (j1 > 0) { -@@ -599,28 +604,19 @@ +@@ -599,28 +605,19 @@ } } @@ -97,7 +98,7 @@ this.field_76637_e.func_175690_a(p_177436_1_, tileentity1); } -@@ -723,6 +719,7 @@ +@@ -723,6 +720,7 @@ k = this.field_76645_j.length - 1; } @@ -105,7 +106,7 @@ p_76612_1_.field_70175_ag = true; p_76612_1_.field_70176_ah = this.field_76635_g; p_76612_1_.field_70162_ai = k; -@@ -763,7 +760,7 @@ +@@ -763,7 +761,7 @@ { IBlockState iblockstate = this.func_177435_g(p_177422_1_); Block block = iblockstate.func_177230_c(); @@ -114,7 +115,7 @@ } @Nullable -@@ -771,6 +768,12 @@ +@@ -771,6 +769,12 @@ { TileEntity tileentity = (TileEntity)this.field_150816_i.get(p_177424_1_); @@ -127,7 +128,7 @@ if (tileentity == null) { if (p_177424_2_ == Chunk.EnumCreateEntityType.IMMEDIATE) -@@ -780,14 +783,9 @@ +@@ -780,14 +784,9 @@ } else if (p_177424_2_ == Chunk.EnumCreateEntityType.QUEUED) { @@ -143,7 +144,7 @@ return tileentity; } -@@ -807,7 +805,7 @@ +@@ -807,7 +806,7 @@ p_177426_2_.func_145834_a(this.field_76637_e); p_177426_2_.func_174878_a(p_177426_1_); @@ -152,7 +153,7 @@ { if (this.field_150816_i.containsKey(p_177426_1_)) { -@@ -816,6 +814,7 @@ +@@ -816,6 +815,7 @@ p_177426_2_.func_145829_t(); this.field_150816_i.put(p_177426_1_, p_177426_2_); @@ -160,7 +161,7 @@ } } -@@ -844,8 +843,9 @@ +@@ -844,8 +844,9 @@ entity.func_110123_P(); } @@ -171,7 +172,7 @@ } public void func_76623_d() -@@ -861,6 +861,7 @@ +@@ -861,6 +862,7 @@ { this.field_76637_e.func_175681_c(this.field_76645_j[i]); } @@ -179,7 +180,7 @@ } public void func_76630_e() -@@ -870,8 +871,8 @@ +@@ -870,8 +872,8 @@ public void func_177414_a(@Nullable Entity p_177414_1_, AxisAlignedBB p_177414_2_, List p_177414_3_, Predicate p_177414_4_) { @@ -190,7 +191,7 @@ i = MathHelper.func_76125_a(i, 0, this.field_76645_j.length - 1); j = MathHelper.func_76125_a(j, 0, this.field_76645_j.length - 1); -@@ -910,8 +911,8 @@ +@@ -910,8 +912,8 @@ public void func_177430_a(Class p_177430_1_, AxisAlignedBB p_177430_2_, List p_177430_3_, Predicate p_177430_4_) { @@ -201,7 +202,7 @@ i = MathHelper.func_76125_a(i, 0, this.field_76645_j.length - 1); j = MathHelper.func_76125_a(j, 0, this.field_76645_j.length - 1); -@@ -1000,6 +1001,7 @@ +@@ -1000,6 +1002,7 @@ { this.func_150809_p(); p_186034_1_.func_185931_b(this.field_76635_g, this.field_76647_h); @@ -209,7 +210,7 @@ this.func_76630_e(); } } -@@ -1056,7 +1058,7 @@ +@@ -1056,7 +1059,7 @@ { BlockPos blockpos = (BlockPos)this.field_177447_w.poll(); @@ -218,7 +219,7 @@ { TileEntity tileentity = this.func_177422_i(blockpos); this.field_76637_e.func_175690_a(blockpos, tileentity); -@@ -1120,6 +1122,13 @@ +@@ -1120,6 +1123,13 @@ @SideOnly(Side.CLIENT) public void func_186033_a(PacketBuffer p_186033_1_, int p_186033_2_, boolean p_186033_3_) { @@ -232,7 +233,7 @@ boolean flag = !this.field_76637_e.field_73011_w.func_177495_o(); for (int i = 0; i < this.field_76652_q.length; ++i) -@@ -1168,10 +1177,16 @@ +@@ -1168,10 +1178,16 @@ this.field_76646_k = true; this.func_76590_a(); @@ -249,7 +250,7 @@ } public Biome func_177411_a(BlockPos p_177411_1_, BiomeProvider p_177411_2_) -@@ -1239,13 +1254,13 @@ +@@ -1239,13 +1255,13 @@ BlockPos blockpos1 = blockpos.func_177982_a(k, (j << 4) + i1, l); boolean flag = i1 == 0 || i1 == 15 || k == 0 || k == 15 || l == 0 || l == 15; @@ -265,7 +266,7 @@ { this.field_76637_e.func_175664_x(blockpos2); } -@@ -1376,7 +1391,7 @@ +@@ -1376,7 +1392,7 @@ { blockpos$mutableblockpos.func_181079_c(blockpos$mutableblockpos.func_177958_n(), l, blockpos$mutableblockpos.func_177952_p()); @@ -274,7 +275,7 @@ { this.field_76637_e.func_175664_x(blockpos$mutableblockpos); } -@@ -1487,4 +1502,20 @@ +@@ -1487,4 +1503,20 @@ QUEUED, CHECK; } From 3bdbe04261ffd85f10d6b213169b7e4a7413ba7b Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 23:19:27 -0700 Subject: [PATCH 40/45] Fixed TileEntityBeacon not using position-aware getLightOpacity. Closes #2530 and #2910 --- .../net/minecraft/tileentity/TileEntityBeacon.java.patch | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/patches/minecraft/net/minecraft/tileentity/TileEntityBeacon.java.patch b/patches/minecraft/net/minecraft/tileentity/TileEntityBeacon.java.patch index 0e6710dac9..afc892754e 100644 --- a/patches/minecraft/net/minecraft/tileentity/TileEntityBeacon.java.patch +++ b/patches/minecraft/net/minecraft/tileentity/TileEntityBeacon.java.patch @@ -1,5 +1,14 @@ --- ../src-base/minecraft/net/minecraft/tileentity/TileEntityBeacon.java +++ ../src-work/minecraft/net/minecraft/tileentity/TileEntityBeacon.java +@@ -130,7 +130,7 @@ + { + if (iblockstate.func_177230_c() != Blocks.field_150397_co) + { +- if (iblockstate.func_185891_c() >= 15 && iblockstate.func_177230_c() != Blocks.field_150357_h) ++ if (iblockstate.getLightOpacity(this.field_145850_b, blockpos$mutableblockpos) >= 15 && iblockstate.func_177230_c() != Blocks.field_150357_h) + { + this.field_146015_k = false; + this.field_174909_f.clear(); @@ -181,7 +181,7 @@ { Block block = this.field_145850_b.func_180495_p(new BlockPos(j1, i2, k1)).func_177230_c(); From 0bb4d9fb8964c077acd2b37ed2fab05e8ddc8613 Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 28 May 2016 23:46:00 -0700 Subject: [PATCH 41/45] Fixed village wells not having their biomes set. Closes #2499 --- .../gen/structure/StructureVillagePieces.java.patch | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/patches/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch b/patches/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch index f6b56cbc2f..638c98ef77 100644 --- a/patches/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch @@ -27,23 +27,24 @@ public Start() { -@@ -1460,6 +1466,7 @@ +@@ -1460,6 +1466,8 @@ this.field_74928_c = p_i2104_7_; Biome biome = p_i2104_1_.func_180300_a(new BlockPos(p_i2104_4_, 0, p_i2104_5_), Biomes.field_180279_ad); this.field_74927_b = biome == Biomes.field_76769_d || biome == Biomes.field_76786_s; + this.biome = biome; ++ this.startPiece = this; this.func_175846_a(this.field_74927_b); } -@@ -1520,6 +1527,7 @@ +@@ -1520,6 +1528,7 @@ protected int field_143015_k = -1; private int field_74896_a; private boolean field_143014_b; -+ private StructureVillagePieces.Start startPiece; ++ protected StructureVillagePieces.Start startPiece; public Village() { -@@ -1532,6 +1540,7 @@ +@@ -1532,6 +1541,7 @@ if (p_i2107_1_ != null) { this.field_143014_b = p_i2107_1_.field_74927_b; @@ -51,7 +52,7 @@ } } -@@ -1660,6 +1669,9 @@ +@@ -1660,6 +1670,9 @@ protected IBlockState func_175847_a(IBlockState p_175847_1_) { From d3e758fce6bd495100361698433e7b22a5a1fcba Mon Sep 17 00:00:00 2001 From: LexManos Date: Sun, 29 May 2016 00:06:43 -0700 Subject: [PATCH 42/45] Fixed issue with @ObjectHolder and the new registry system. Closes #2640 Only run static initalizers for classes we need to get the names from values. --- .../fml/common/registry/ObjectHolderRegistry.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/minecraftforge/fml/common/registry/ObjectHolderRegistry.java b/src/main/java/net/minecraftforge/fml/common/registry/ObjectHolderRegistry.java index 9d56cace72..0e0f2b177a 100644 --- a/src/main/java/net/minecraftforge/fml/common/registry/ObjectHolderRegistry.java +++ b/src/main/java/net/minecraftforge/fml/common/registry/ObjectHolderRegistry.java @@ -70,7 +70,7 @@ public enum ObjectHolderRegistry { { try { - clazz = Class.forName(className, true, getClass().getClassLoader()); + clazz = Class.forName(className, extractFromValue, getClass().getClassLoader()); classCache.put(className, clazz); } catch (Exception ex) From e65218b525008e25b1b34f3eb8f20775d19c9b45 Mon Sep 17 00:00:00 2001 From: LexManos Date: Sun, 29 May 2016 02:37:37 -0700 Subject: [PATCH 43/45] Fixed new ICrashReportDetail loader working with packaged mods by delaying it until the ModContainer's construct event. Closes #2924 --- .../common/ForgeModContainer.java | 49 +++++++++++++++--- .../minecraftforge/common/MinecraftForge.java | 50 +++++++++++++++++++ .../fml/common/FMLModContainer.java | 5 ++ .../net/minecraftforge/fml/common/Loader.java | 30 ----------- .../common/discovery/DirectoryDiscoverer.java | 2 +- .../common/discovery/asm/ASMModParser.java | 2 +- 6 files changed, 100 insertions(+), 38 deletions(-) diff --git a/src/main/java/net/minecraftforge/common/ForgeModContainer.java b/src/main/java/net/minecraftforge/common/ForgeModContainer.java index 6ec37cd47b..1c3aa8fede 100644 --- a/src/main/java/net/minecraftforge/common/ForgeModContainer.java +++ b/src/main/java/net/minecraftforge/common/ForgeModContainer.java @@ -14,10 +14,17 @@ import java.net.URL; import java.security.cert.Certificate; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.Date; +import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; +import org.apache.logging.log4j.Level; + +import net.minecraft.crash.CrashReport; +import net.minecraft.crash.ICrashReportDetail; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.stats.StatList; @@ -37,6 +44,7 @@ import net.minecraftforge.oredict.RecipeSorter; import net.minecraftforge.server.command.ForgeCommand; import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; import com.google.common.eventbus.EventBus; import com.google.common.eventbus.Subscribe; @@ -45,10 +53,13 @@ import net.minecraftforge.fml.client.FMLFolderResourcePack; import net.minecraftforge.fml.client.event.ConfigChangedEvent.OnConfigChangedEvent; import net.minecraftforge.fml.common.DummyModContainer; import net.minecraftforge.fml.common.FMLLog; +import net.minecraftforge.fml.common.ICrashCallable; import net.minecraftforge.fml.common.LoadController; import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.ModMetadata; import net.minecraftforge.fml.common.WorldAccessContainer; +import net.minecraftforge.fml.common.discovery.ASMDataTable; +import net.minecraftforge.fml.common.discovery.ASMDataTable.ASMData; import net.minecraftforge.fml.common.event.FMLConstructionEvent; import net.minecraftforge.fml.common.event.FMLLoadCompleteEvent; import net.minecraftforge.fml.common.event.FMLModIdMappingEvent; @@ -323,6 +334,36 @@ public class ForgeModContainer extends DummyModContainer implements WorldAccessC @Subscribe public void modConstruction(FMLConstructionEvent evt) { + List all = Lists.newArrayList(); + for (ASMData asm : evt.getASMHarvestedData().getAll(ICrashReportDetail.class.getName().replace('.', '/'))) + all.add(asm.getClassName()); + for (ASMData asm : evt.getASMHarvestedData().getAll(ICrashCallable.class.getName().replace('.', '/'))) + all.add(asm.getClassName()); + + Iterator itr = all.iterator(); + while (itr.hasNext()) + { + String cls = itr.next(); + if (!cls.startsWith("net/minecraft/") && + !cls.startsWith("net/minecraftforge/")) + itr.remove(); + } + + FMLLog.log("Forge", Level.DEBUG, "Preloading CrashReport Classes"); + Collections.sort(all); //Sort it because I like pretty output ;) + for (String name : all) + { + FMLLog.log("Forge", Level.DEBUG, "\t" + name); + try + { + Class.forName(name.replace('/', '.'), false, MinecraftForge.class.getClassLoader()); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + NetworkRegistry.INSTANCE.register(this, this.getClass(), "*", evt.getASMHarvestedData()); ForgeNetworkHandler.registerChannel(this, evt.getSide()); } @@ -351,12 +392,6 @@ public class ForgeModContainer extends DummyModContainer implements WorldAccessC } } - @Subscribe - public void mappingChange(FMLModIdMappingEvent evt) - { - StatList.reinit(); - } - @Subscribe public void postInit(FMLPostInitializationEvent evt) { @@ -400,6 +435,7 @@ public class ForgeModContainer extends DummyModContainer implements WorldAccessC public void mappingChanged(FMLModIdMappingEvent evt) { OreDictionary.rebakeMap(); + StatList.reinit(); } @@ -469,4 +505,5 @@ public class ForgeModContainer extends DummyModContainer implements WorldAccessC { return updateJSONUrl; } + } diff --git a/src/main/java/net/minecraftforge/common/MinecraftForge.java b/src/main/java/net/minecraftforge/common/MinecraftForge.java index a7cc2ccf9e..edaa4fb372 100644 --- a/src/main/java/net/minecraftforge/common/MinecraftForge.java +++ b/src/main/java/net/minecraftforge/common/MinecraftForge.java @@ -1,8 +1,22 @@ package net.minecraftforge.common; import net.minecraftforge.fml.common.FMLLog; +import net.minecraftforge.fml.common.ICrashCallable; import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.fml.common.discovery.ASMDataTable; +import net.minecraftforge.fml.common.discovery.ASMDataTable.ASMData; import net.minecraftforge.fml.common.eventhandler.EventBus; + +import java.util.Collections; +import java.util.List; +import java.util.Set; + +import org.apache.logging.log4j.Level; + +import com.google.common.collect.Lists; + +import net.minecraft.crash.CrashReport; +import net.minecraft.crash.ICrashReportDetail; import net.minecraft.item.ItemStack; import net.minecraftforge.common.ForgeHooks.SeedEntry; import net.minecraftforge.fluids.FluidRegistry; @@ -56,5 +70,41 @@ public class MinecraftForge // Load before all the mods, so MC owns the MC fluids FluidRegistry.validateFluidRegistry(); ForgeHooks.initTools(); + + //For all the normal CrashReport classes to be defined. We're in MC's classloader so this should all be fine + new CrashReport("ThisIsFake", new Exception("Not real")); + } + + + + + public static void preloadCrashClasses(ASMDataTable table, String modID, Set classes) + { + //Find all ICrashReportDetail's handlers and preload them. + List all = Lists.newArrayList(); + for (ASMData asm : table.getAll(ICrashReportDetail.class.getName().replace('.', '/'))) + all.add(asm.getClassName()); + for (ASMData asm : table.getAll(ICrashCallable.class.getName().replace('.', '/'))) + all.add(asm.getClassName()); + + all.retainAll(classes); + + if (all.size() == 0) + return; + + FMLLog.log(modID, Level.DEBUG, "Preloading CrashReport Classes"); + Collections.sort(all); //Sort it because I like pretty output ;) + for (String name : all) + { + FMLLog.log(modID, Level.DEBUG, "\t" + name); + try + { + Class.forName(name.replace('/', '.'), false, MinecraftForge.class.getClassLoader()); + } + catch (Exception e) + { + e.printStackTrace(); + } + } } } diff --git a/src/main/java/net/minecraftforge/fml/common/FMLModContainer.java b/src/main/java/net/minecraftforge/fml/common/FMLModContainer.java index 8cc40bfe9f..811b82d9de 100644 --- a/src/main/java/net/minecraftforge/fml/common/FMLModContainer.java +++ b/src/main/java/net/minecraftforge/fml/common/FMLModContainer.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Properties; import java.util.Set; +import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Mod.Instance; import net.minecraftforge.fml.common.Mod.Metadata; import net.minecraftforge.fml.common.asm.transformers.BlamingTransformer; @@ -466,6 +467,10 @@ public class FMLModContainer implements ModContainer ModClassLoader modClassLoader = event.getModClassLoader(); modClassLoader.addFile(source); modClassLoader.clearNegativeCacheFor(candidate.getClassList()); + + //Only place I could think to add this... + MinecraftForge.preloadCrashClasses(event.getASMHarvestedData(), getModId(), candidate.getClassList()); + Class clazz = Class.forName(className, true, modClassLoader); Certificate[] certificates = clazz.getProtectionDomain().getCodeSource().getCertificates(); diff --git a/src/main/java/net/minecraftforge/fml/common/Loader.java b/src/main/java/net/minecraftforge/fml/common/Loader.java index 50f348ebf1..a7be45d783 100644 --- a/src/main/java/net/minecraftforge/fml/common/Loader.java +++ b/src/main/java/net/minecraftforge/fml/common/Loader.java @@ -521,7 +521,6 @@ public class Loader } } } - preloadCrashClasses(); modController.transition(LoaderState.CONSTRUCTING, false); modController.distributeStateMessage(LoaderState.CONSTRUCTING, modClassLoader, discoverer.getASMTable(), reverseDependencies); @@ -1118,33 +1117,4 @@ public class Loader { return modController != null ? modController.getState() : LoaderState.NOINIT; } - - - private void preloadCrashClasses() - { - //For all the normal CrashReport classes to be defined. We're in MC's classloader so this should all be fine - new CrashReport("ThisIsFake", new Exception("Not real")); - - FMLLog.log(Level.DEBUG, "Preloading CrashReport Classes"); - //Find all ICrashReportDetail's handlers and preload them. - List classes = Lists.newArrayList(); - for (ASMData asm : discoverer.getASMTable().getAll(ICrashReportDetail.class.getName().replace('.', '/'))) - { - classes.add(asm.getClassName()); - } - for (ASMData asm : discoverer.getASMTable().getAll(ICrashCallable.class.getName().replace('.', '/'))) - { - classes.add(asm.getClassName()); - } - Collections.sort(classes); //Sort it because I like pretty output ;) - for (String name : classes) - { - FMLLog.log(Level.DEBUG, "\t" + name); - try - { - Class cls = Class.forName(name, false, getClass().getClassLoader()); - } - catch (Exception e){} - } - } } diff --git a/src/main/java/net/minecraftforge/fml/common/discovery/DirectoryDiscoverer.java b/src/main/java/net/minecraftforge/fml/common/discovery/DirectoryDiscoverer.java index 2ed403cbf8..ef3bbcb440 100644 --- a/src/main/java/net/minecraftforge/fml/common/discovery/DirectoryDiscoverer.java +++ b/src/main/java/net/minecraftforge/fml/common/discovery/DirectoryDiscoverer.java @@ -86,7 +86,7 @@ public class DirectoryDiscoverer implements ITypeDiscoverer if (file.isDirectory()) { FMLLog.finer("Recursing into package %s", path + file.getName()); - exploreFileSystem(path + file.getName() + ".", file, harvestedMods, candidate, mc); + exploreFileSystem(path + file.getName() + "/", file, harvestedMods, candidate, mc); continue; } Matcher match = classFile.matcher(file.getName()); diff --git a/src/main/java/net/minecraftforge/fml/common/discovery/asm/ASMModParser.java b/src/main/java/net/minecraftforge/fml/common/discovery/asm/ASMModParser.java index 00a74f90f0..f0bdd5e203 100644 --- a/src/main/java/net/minecraftforge/fml/common/discovery/asm/ASMModParser.java +++ b/src/main/java/net/minecraftforge/fml/common/discovery/asm/ASMModParser.java @@ -154,7 +154,7 @@ public class ASMModParser for (String intf : interfaces) { - table.addASMData(candidate, intf, this.asmType.getClassName(), null, null); + table.addASMData(candidate, intf, this.asmType.getInternalName(), null, null); } } From 4008983a5d1a03a8235276709d190e9c908c3d58 Mon Sep 17 00:00:00 2001 From: RainWarrior Date: Sun, 29 May 2016 23:35:41 +0300 Subject: [PATCH 44/45] Reordered transformations during LayerHeldItem rendering, fixes #2827. --- .../entity/layers/LayerHeldItem.java.patch | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 patches/minecraft/net/minecraft/client/renderer/entity/layers/LayerHeldItem.java.patch diff --git a/patches/minecraft/net/minecraft/client/renderer/entity/layers/LayerHeldItem.java.patch b/patches/minecraft/net/minecraft/client/renderer/entity/layers/LayerHeldItem.java.patch new file mode 100644 index 0000000000..d37e85324f --- /dev/null +++ b/patches/minecraft/net/minecraft/client/renderer/entity/layers/LayerHeldItem.java.patch @@ -0,0 +1,18 @@ +--- ../src-base/minecraft/net/minecraft/client/renderer/entity/layers/LayerHeldItem.java ++++ ../src-work/minecraft/net/minecraft/client/renderer/entity/layers/LayerHeldItem.java +@@ -50,13 +50,13 @@ + if (p_188358_2_ != null) + { + GlStateManager.func_179094_E(); +- ((ModelBiped)this.field_177206_a.func_177087_b()).func_187073_a(0.0625F, p_188358_4_); + + if (p_188358_1_.func_70093_af()) + { + GlStateManager.func_179109_b(0.0F, 0.2F, 0.0F); + } +- ++ // Forge: moved this call down, fixes incorrect offset while sneaking. ++ ((ModelBiped)this.field_177206_a.func_177087_b()).func_187073_a(0.0625F, p_188358_4_); + GlStateManager.func_179114_b(-90.0F, 1.0F, 0.0F, 0.0F); + GlStateManager.func_179114_b(180.0F, 0.0F, 1.0F, 0.0F); + boolean flag = p_188358_4_ == EnumHandSide.LEFT; From ce481da1d1f062a7fcace09a643c9adf69006081 Mon Sep 17 00:00:00 2001 From: RainWarrior Date: Mon, 30 May 2016 01:20:43 +0300 Subject: [PATCH 45/45] Initial support for model visibility system. Implemented it for OBJ, B3D and normal vanilla models; fixed NPE accessing parent state in B3DModel. Fixes #2801. --- .../client/model/ModelLoader.java | 5 + .../client/model/b3d/B3DLoader.java | 28 ++- .../client/model/obj/OBJModel.java | 168 ++++++++++-------- .../common/model/HiddenModelPart.java | 18 ++ .../minecraftforge/common/model/Models.java | 24 +++ .../debug/ModelLoaderRegistryDebug.java | 155 +++++++--------- 6 files changed, 228 insertions(+), 170 deletions(-) create mode 100644 src/main/java/net/minecraftforge/common/model/HiddenModelPart.java create mode 100644 src/main/java/net/minecraftforge/common/model/Models.java diff --git a/src/main/java/net/minecraftforge/client/model/ModelLoader.java b/src/main/java/net/minecraftforge/client/model/ModelLoader.java index 67044e5db3..45f4809e34 100644 --- a/src/main/java/net/minecraftforge/client/model/ModelLoader.java +++ b/src/main/java/net/minecraftforge/client/model/ModelLoader.java @@ -63,6 +63,7 @@ import net.minecraftforge.client.model.animation.ModelBlockAnimation; import net.minecraftforge.common.ForgeModContainer; import net.minecraftforge.common.model.IModelPart; import net.minecraftforge.common.model.IModelState; +import net.minecraftforge.common.model.Models; import net.minecraftforge.common.model.TRSRTransformation; import net.minecraftforge.common.model.animation.IClip; import net.minecraftforge.common.property.IExtendedBlockState; @@ -526,6 +527,10 @@ public final class ModelLoader extends ModelBakery SimpleBakedModel.Builder builder = (new SimpleBakedModel.Builder(model, model.createOverrides())).setTexture(particle); for(int i = 0; i < model.getElements().size(); i++) { + if(modelState.apply(Optional.of(Models.getHiddenModelPart(ImmutableList.of(Integer.toString(i))))).isPresent()) + { + continue; + } BlockPart part = model.getElements().get(i); TRSRTransformation transformation = baseState; if(newTransforms.get(i) != null) diff --git a/src/main/java/net/minecraftforge/client/model/b3d/B3DLoader.java b/src/main/java/net/minecraftforge/client/model/b3d/B3DLoader.java index 02f92be5de..d0bcfeb8e7 100644 --- a/src/main/java/net/minecraftforge/client/model/b3d/B3DLoader.java +++ b/src/main/java/net/minecraftforge/client/model/b3d/B3DLoader.java @@ -47,6 +47,7 @@ import net.minecraftforge.client.model.b3d.B3DModel.Vertex; import net.minecraftforge.client.model.pipeline.UnpackedBakedQuad; import net.minecraftforge.common.model.IModelPart; import net.minecraftforge.common.model.IModelState; +import net.minecraftforge.common.model.Models; import net.minecraftforge.common.model.TRSRTransformation; import net.minecraftforge.common.model.animation.IClip; import net.minecraftforge.common.model.animation.IJoint; @@ -209,7 +210,14 @@ public enum B3DLoader implements ICustomModelLoader public Optional apply(Optional part) { // TODO make more use of Optional - if(!part.isPresent()) return parent.apply(part); + if(!part.isPresent()) + { + if(parent != null) + { + return parent.apply(part); + } + return Optional.absent(); + } if(!(part.get() instanceof NodeJoint)) { return Optional.absent(); @@ -364,6 +372,10 @@ public enum B3DLoader implements ICustomModelLoader } } + /** + * @deprecated use AnimationProperty. + */ + @Deprecated public static enum B3DFrameProperty implements IUnlistedProperty { INSTANCE; @@ -679,26 +691,30 @@ public enum B3DLoader implements ICustomModelLoader if(quads == null) { ImmutableList.Builder builder = ImmutableList.builder(); - generateQuads(builder, node, this.state); + generateQuads(builder, node, this.state, ImmutableList.of()); quads = builder.build(); } // TODO: caching? if(this.state != modelState) { ImmutableList.Builder builder = ImmutableList.builder(); - generateQuads(builder, node, modelState); + generateQuads(builder, node, modelState, ImmutableList.of()); return builder.build(); } return quads; } - private void generateQuads(ImmutableList.Builder builder, Node node, final IModelState state) + private void generateQuads(ImmutableList.Builder builder, Node node, final IModelState state, ImmutableList path) { + ImmutableList.Builder pathBuilder = ImmutableList.builder(); + pathBuilder.addAll(path); + pathBuilder.add(node.getName()); + ImmutableList newPath = pathBuilder.build(); for(Node child : node.getNodes().values()) { - generateQuads(builder, child, state); + generateQuads(builder, child, state, newPath); } - if(node.getKind() instanceof Mesh && meshes.contains(node.getName())) + if(node.getKind() instanceof Mesh && meshes.contains(node.getName()) && !state.apply(Optional.of(Models.getHiddenModelPart(newPath))).isPresent()) { Mesh mesh = (Mesh)node.getKind(); Collection faces = mesh.bake(new Function, Matrix4f>() diff --git a/src/main/java/net/minecraftforge/client/model/obj/OBJModel.java b/src/main/java/net/minecraftforge/client/model/obj/OBJModel.java index 88844c6454..661fcc3cad 100644 --- a/src/main/java/net/minecraftforge/client/model/obj/OBJModel.java +++ b/src/main/java/net/minecraftforge/client/model/obj/OBJModel.java @@ -32,16 +32,15 @@ import net.minecraft.client.resources.IResource; import net.minecraft.client.resources.IResourceManager; import net.minecraft.util.EnumFacing; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.IModel; -import net.minecraftforge.client.model.IModelCustomData; -import net.minecraftforge.client.model.IPerspectiveAwareModel; -import net.minecraftforge.client.model.IRetexturableModel; -import net.minecraftforge.client.model.ModelLoader; +import net.minecraftforge.client.model.*; import net.minecraftforge.client.model.pipeline.UnpackedBakedQuad; import net.minecraftforge.common.model.IModelPart; import net.minecraftforge.common.model.IModelState; +import net.minecraftforge.common.model.Models; import net.minecraftforge.common.model.TRSRTransformation; +import net.minecraftforge.common.property.IExtendedBlockState; import net.minecraftforge.common.property.IUnlistedProperty; +import net.minecraftforge.common.property.Properties; import net.minecraftforge.fml.common.FMLLog; import org.apache.commons.lang3.tuple.Pair; @@ -1036,6 +1035,7 @@ public class OBJModel implements IRetexturableModel, IModelCustomData } } + @Deprecated public static class Group implements IModelPart { public static final String DEFAULT_NAME = "OBJModel.Default.Element.Name"; @@ -1092,6 +1092,7 @@ public class OBJModel implements IRetexturableModel, IModelCustomData } } + @Deprecated public static class OBJState implements IModelState { protected Map visibilityMap = Maps.newHashMap(); @@ -1230,6 +1231,7 @@ public class OBJModel implements IRetexturableModel, IModelCustomData } } + @Deprecated public enum OBJProperty implements IUnlistedProperty { INSTANCE; @@ -1262,7 +1264,7 @@ public class OBJModel implements IRetexturableModel, IModelCustomData private final OBJModel model; private IModelState state; private final VertexFormat format; - private Set quads; + private ImmutableList quads; private ImmutableMap textures; private TextureAtlasSprite sprite = ModelLoader.White.INSTANCE; @@ -1277,98 +1279,122 @@ public class OBJModel implements IRetexturableModel, IModelCustomData public void scheduleRebake() { - this.quads = null; } // FIXME: merge with getQuads @Override public List getQuads(IBlockState blockState, EnumFacing side, long rand) { - if(side != null) return ImmutableList.of(); + if (side != null) return ImmutableList.of(); if (quads == null) { - quads = Collections.synchronizedSet(new LinkedHashSet()); - Set faces = Collections.synchronizedSet(new LinkedHashSet()); - Optional transform = Optional.absent(); - for (Group g : this.model.getMatLib().getGroups().values()) + quads = buildQuads(this.state); + } + if (blockState instanceof IExtendedBlockState) + { + IExtendedBlockState exState = (IExtendedBlockState) blockState; + if (exState.getUnlistedNames().contains(Properties.AnimationProperty)) { -// g.minUVBounds = this.model.getMatLib().minUVBounds; -// g.maxUVBounds = this.model.getMatLib().maxUVBounds; -// FMLLog.info("Group: %s u: [%f, %f] v: [%f, %f]", g.name, g.minUVBounds[0], g.maxUVBounds[0], g.minUVBounds[1], g.maxUVBounds[1]); - if (this.state instanceof OBJState) + IModelState newState = exState.getValue(Properties.AnimationProperty); + if (newState != null) { - OBJState state = (OBJState) this.state; - if (state.parent != null) + newState = new ModelStateComposition(this.state, newState); + return buildQuads(newState); + } + } + } + return quads; + } + + private ImmutableList buildQuads(IModelState modelState) + { + List quads = Lists.newArrayList(); + Collections.synchronizedSet(new LinkedHashSet()); + Set faces = Collections.synchronizedSet(new LinkedHashSet()); + Optional transform = Optional.absent(); + for (Group g : this.model.getMatLib().getGroups().values()) + { +// g.minUVBounds = this.model.getMatLib().minUVBounds; +// g.maxUVBounds = this.model.getMatLib().maxUVBounds; +// FMLLog.info("Group: %s u: [%f, %f] v: [%f, %f]", g.name, g.minUVBounds[0], g.maxUVBounds[0], g.minUVBounds[1], g.maxUVBounds[1]); + + if(modelState.apply(Optional.of(Models.getHiddenModelPart(ImmutableList.of(g.getName())))).isPresent()) + { + continue; + } + if (modelState instanceof OBJState) + { + OBJState state = (OBJState) modelState; + if (state.parent != null) + { + transform = state.parent.apply(Optional.absent()); + } + //TODO: can this be replaced by updateStateVisibilityMap(OBJState)? + if (state.getGroupNamesFromMap().contains(Group.ALL)) + { + state.visibilityMap.clear(); + for (String s : this.model.getMatLib().getGroups().keySet()) { - transform = state.parent.apply(Optional.absent()); + state.visibilityMap.put(s, state.operation.performOperation(true)); } - //TODO: can this be replaced by updateStateVisibilityMap(OBJState)? - if (state.getGroupNamesFromMap().contains(Group.ALL)) + } + else if (state.getGroupNamesFromMap().contains(Group.ALL_EXCEPT)) + { + List exceptList = state.getGroupNamesFromMap().subList(1, state.getGroupNamesFromMap().size()); + state.visibilityMap.clear(); + for (String s : this.model.getMatLib().getGroups().keySet()) { - state.visibilityMap.clear(); - for (String s : this.model.getMatLib().getGroups().keySet()) + if (!exceptList.contains(s)) { state.visibilityMap.put(s, state.operation.performOperation(true)); } } - else if (state.getGroupNamesFromMap().contains(Group.ALL_EXCEPT)) - { - List exceptList = state.getGroupNamesFromMap().subList(1, state.getGroupNamesFromMap().size()); - state.visibilityMap.clear(); - for (String s : this.model.getMatLib().getGroups().keySet()) - { - if (!exceptList.contains(s)) - { - state.visibilityMap.put(s, state.operation.performOperation(true)); - } - } - } - else - { - for (String s : state.visibilityMap.keySet()) - { - state.visibilityMap.put(s, state.operation.performOperation(state.visibilityMap.get(s))); - } - } - if (state.getGroupsWithVisibility(true).contains(g.getName())) - { - faces.addAll(g.applyTransform(transform)); - } } else { - transform = state.apply(Optional.absent()); + for (String s : state.visibilityMap.keySet()) + { + state.visibilityMap.put(s, state.operation.performOperation(state.visibilityMap.get(s))); + } + } + if (state.getGroupsWithVisibility(true).contains(g.getName())) + { faces.addAll(g.applyTransform(transform)); } } - for (Face f : faces) + else { - if (this.model.getMatLib().materials.get(f.getMaterialName()).isWhite()) - { - for (Vertex v : f.getVertices()) - {//update material in each vertex - if (!v.getMaterial().equals(this.model.getMatLib().getMaterial(v.getMaterial().getName()))) - { - v.setMaterial(this.model.getMatLib().getMaterial(v.getMaterial().getName())); - } - } - sprite = ModelLoader.White.INSTANCE; - } else sprite = this.textures.get(f.getMaterialName()); - UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder(format); - builder.setContractUVs(true); - builder.setQuadOrientation(EnumFacing.getFacingFromVector(f.getNormal().x, f.getNormal().y, f.getNormal().z)); - builder.setTexture(sprite); - Normal faceNormal = f.getNormal(); - putVertexData(builder, f.verts[0], faceNormal, TextureCoordinate.getDefaultUVs()[0], sprite); - putVertexData(builder, f.verts[1], faceNormal, TextureCoordinate.getDefaultUVs()[1], sprite); - putVertexData(builder, f.verts[2], faceNormal, TextureCoordinate.getDefaultUVs()[2], sprite); - putVertexData(builder, f.verts[3], faceNormal, TextureCoordinate.getDefaultUVs()[3], sprite); - quads.add(builder.build()); + transform = modelState.apply(Optional.absent()); + faces.addAll(g.applyTransform(transform)); } } - List quadList = Collections.synchronizedList(Lists.newArrayList(quads)); - return quadList; + for (Face f : faces) + { + if (this.model.getMatLib().materials.get(f.getMaterialName()).isWhite()) + { + for (Vertex v : f.getVertices()) + {//update material in each vertex + if (!v.getMaterial().equals(this.model.getMatLib().getMaterial(v.getMaterial().getName()))) + { + v.setMaterial(this.model.getMatLib().getMaterial(v.getMaterial().getName())); + } + } + sprite = ModelLoader.White.INSTANCE; + } + else sprite = this.textures.get(f.getMaterialName()); + UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder(format); + builder.setContractUVs(true); + builder.setQuadOrientation(EnumFacing.getFacingFromVector(f.getNormal().x, f.getNormal().y, f.getNormal().z)); + builder.setTexture(sprite); + Normal faceNormal = f.getNormal(); + putVertexData(builder, f.verts[0], faceNormal, TextureCoordinate.getDefaultUVs()[0], sprite); + putVertexData(builder, f.verts[1], faceNormal, TextureCoordinate.getDefaultUVs()[1], sprite); + putVertexData(builder, f.verts[2], faceNormal, TextureCoordinate.getDefaultUVs()[2], sprite); + putVertexData(builder, f.verts[3], faceNormal, TextureCoordinate.getDefaultUVs()[3], sprite); + quads.add(builder.build()); + } + return ImmutableList.copyOf(quads); } private final void putVertexData(UnpackedBakedQuad.Builder builder, Vertex v, Normal faceNormal, TextureCoordinate defUV, TextureAtlasSprite sprite) diff --git a/src/main/java/net/minecraftforge/common/model/HiddenModelPart.java b/src/main/java/net/minecraftforge/common/model/HiddenModelPart.java new file mode 100644 index 0000000000..b51d552871 --- /dev/null +++ b/src/main/java/net/minecraftforge/common/model/HiddenModelPart.java @@ -0,0 +1,18 @@ +package net.minecraftforge.common.model; + +import com.google.common.collect.ImmutableList; + +final class HiddenModelPart implements IModelPart +{ + private final ImmutableList path; + + HiddenModelPart(ImmutableList path) + { + this.path = path; + } + + ImmutableList getPath() + { + return path; + } +} diff --git a/src/main/java/net/minecraftforge/common/model/Models.java b/src/main/java/net/minecraftforge/common/model/Models.java new file mode 100644 index 0000000000..9e5daa2c11 --- /dev/null +++ b/src/main/java/net/minecraftforge/common/model/Models.java @@ -0,0 +1,24 @@ +package net.minecraftforge.common.model; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterators; +import com.google.common.collect.UnmodifiableIterator; + +public enum Models +{ + ; + + public static IModelPart getHiddenModelPart(ImmutableList path) + { + return new HiddenModelPart(path); + } + + public static UnmodifiableIterator getParts(IModelPart part) + { + if(part instanceof HiddenModelPart) + { + return ((HiddenModelPart) part).getPath().iterator(); + } + return Iterators.emptyIterator(); + } +} diff --git a/src/test/java/net/minecraftforge/debug/ModelLoaderRegistryDebug.java b/src/test/java/net/minecraftforge/debug/ModelLoaderRegistryDebug.java index bf25428c4b..78c6533d18 100644 --- a/src/test/java/net/minecraftforge/debug/ModelLoaderRegistryDebug.java +++ b/src/test/java/net/minecraftforge/debug/ModelLoaderRegistryDebug.java @@ -1,7 +1,6 @@ package net.minecraftforge.debug; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import javax.vecmath.AxisAngle4d; @@ -10,6 +9,8 @@ import javax.vecmath.Quat4f; import javax.vecmath.Vector3d; import javax.vecmath.Vector4f; +import com.google.common.base.Optional; +import com.google.common.collect.UnmodifiableIterator; import net.minecraft.block.Block; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; @@ -36,16 +37,17 @@ import net.minecraft.util.math.MathHelper; import net.minecraft.util.text.TextComponentString; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.model.IModel; import net.minecraftforge.client.model.ModelLoader; -import net.minecraftforge.client.model.ModelLoaderRegistry; import net.minecraftforge.client.model.b3d.B3DLoader; import net.minecraftforge.client.model.obj.OBJLoader; -import net.minecraftforge.client.model.obj.OBJModel; +import net.minecraftforge.common.model.IModelPart; +import net.minecraftforge.common.model.IModelState; +import net.minecraftforge.common.model.Models; import net.minecraftforge.common.model.TRSRTransformation; import net.minecraftforge.common.property.ExtendedBlockState; import net.minecraftforge.common.property.IExtendedBlockState; import net.minecraftforge.common.property.IUnlistedProperty; +import net.minecraftforge.common.property.Properties; import net.minecraftforge.fml.common.FMLLog; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; @@ -120,7 +122,6 @@ public class ModelLoaderRegistryDebug public static final CustomModelBlock instance = new CustomModelBlock(); public static final String name = "CustomModelBlock"; private int counter = 1; - public ExtendedBlockState state = new ExtendedBlockState(this, new IProperty[]{FACING}, new IUnlistedProperty[]{B3DLoader.B3DFrameProperty.INSTANCE}); private CustomModelBlock() { @@ -163,7 +164,7 @@ public class ModelLoaderRegistryDebug { //Only return an IExtendedBlockState from this method and createState(), otherwise block placement might break! B3DLoader.B3DState newState = new B3DLoader.B3DState(null, counter); - return ((IExtendedBlockState) state).withProperty(B3DLoader.B3DFrameProperty.INSTANCE, newState); + return ((IExtendedBlockState) state).withProperty(Properties.AnimationProperty, newState); } @Override @@ -183,7 +184,7 @@ public class ModelLoaderRegistryDebug @Override public BlockStateContainer createBlockState() { - return new ExtendedBlockState(this, new IProperty[]{FACING}, new IUnlistedProperty[]{B3DLoader.B3DFrameProperty.INSTANCE}); + return new ExtendedBlockState(this, new IProperty[]{FACING}, new IUnlistedProperty[]{Properties.AnimationProperty}); } public static EnumFacing getFacingFromEntity(World worldIn, BlockPos clickedBlock, EntityLivingBase entityIn) @@ -221,7 +222,6 @@ public class ModelLoaderRegistryDebug { public static final OBJTesseractBlock instance = new OBJTesseractBlock(); public static final String name = "OBJTesseractBlock"; - private ExtendedBlockState state = new ExtendedBlockState(this, new IProperty[0], new IUnlistedProperty[]{OBJModel.OBJProperty.INSTANCE}); private OBJTesseractBlock() { @@ -246,20 +246,11 @@ public class ModelLoaderRegistryDebug @Override public boolean isVisuallyOpaque() { return false; } - @Override - public IBlockState getExtendedState(IBlockState state, IBlockAccess world, BlockPos pos) - { - OBJTesseractTileEntity tileEntity = (OBJTesseractTileEntity) world.getTileEntity(pos); - OBJModel.OBJState retState = new OBJModel.OBJState(tileEntity == null ? Lists.newArrayList(OBJModel.Group.ALL) : tileEntity.visible, true); - return ((IExtendedBlockState) this.state.getBaseState()).withProperty(OBJModel.OBJProperty.INSTANCE, retState); - } - @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { if (world.getTileEntity(pos) == null) world.setTileEntity(pos, new OBJTesseractTileEntity()); OBJTesseractTileEntity tileEntity = (OBJTesseractTileEntity) world.getTileEntity(pos); - IModel model = ModelLoaderRegistry.getModelOrMissing(new ResourceLocation(MODID.toLowerCase() + ":" + "block/tesseract.obj")); if (player.isSneaking()) { @@ -267,19 +258,9 @@ public class ModelLoaderRegistryDebug } else { - if (model != ModelLoaderRegistry.getMissingModel()) - { - tileEntity.setMax(((OBJModel) model).getMatLib().getGroups().keySet().size() - 1); - tileEntity.increment(); - } + tileEntity.increment(); } - if (world.isRemote) - { - // wtf - //OBJBakedModel objBaked = (OBJBakedModel) Minecraft.getMinecraft().getBlockRendererDispatcher().getModelFromBlockState(state, world, pos); - //objBaked.scheduleRebake(); //not necessarily needed for this specific case, but is available - } world.markBlockRangeForRenderUpdate(pos, pos); return false; } @@ -289,69 +270,85 @@ public class ModelLoaderRegistryDebug { return true; } + + @Override + public IBlockState getExtendedState(IBlockState state, IBlockAccess world, BlockPos pos) + { + if (world.getTileEntity(pos) != null && world.getTileEntity(pos) instanceof OBJTesseractTileEntity) + { + OBJTesseractTileEntity te = (OBJTesseractTileEntity) world.getTileEntity(pos); + return ((IExtendedBlockState) state).withProperty(Properties.AnimationProperty, te.state); + } + return state; + } + + @Override + public BlockStateContainer createBlockState() + { + return new ExtendedBlockState(this, new IProperty[0], new IUnlistedProperty[] {Properties.AnimationProperty}); + } } public static class OBJTesseractTileEntity extends TileEntity { private int counter = 1; - private int max = 2; - public List visible = new ArrayList(); - - public OBJTesseractTileEntity() + private int max = 32; + private final List hidden = new ArrayList(); + private final IModelState state = new IModelState() { - this.visible.add(OBJModel.Group.ALL); - } + private final Optional value = Optional.of(TRSRTransformation.identity()); + + @Override + public Optional apply(Optional part) + { + if(part.isPresent()) + { + // This whole thing is subject to change, but should do for now. + UnmodifiableIterator parts = Models.getParts(part.get()); + if(parts.hasNext()) + { + String name = parts.next(); + // only interested in the root level + if(!parts.hasNext() && hidden.contains(name)) + { + return value; + } + } + } + return Optional.absent(); + } + }; public void increment() { - if (this.visible.contains(OBJModel.Group.ALL)) this.visible.remove(OBJModel.Group.ALL); if (this.counter == max) { this.counter = 0; - this.visible.clear(); + this.hidden.clear(); } this.counter++; - this.visible.add(Integer.toString(this.counter)); + this.hidden.add(Integer.toString(this.counter)); TextComponentString text = new TextComponentString("" + this.counter); if (this.worldObj.isRemote) Minecraft.getMinecraft().ingameGUI.getChatGUI().printChatMessage(text); } public void decrement() { - if (this.visible.contains(OBJModel.Group.ALL)) this.visible.remove(OBJModel.Group.ALL); if (this.counter == 1) { this.counter = max + 1; - for (int i = 1; i < max; i++) this.visible.add(Integer.toString(i)); + for (int i = 1; i < max; i++) this.hidden.add(Integer.toString(i)); } - this.visible.remove(Integer.toString(this.counter)); + this.hidden.remove(Integer.toString(this.counter)); this.counter--; TextComponentString text = new TextComponentString("" + this.counter); if (this.worldObj.isRemote) Minecraft.getMinecraft().ingameGUI.getChatGUI().printChatMessage(text); } - public void reset() - { - this.counter = 1; - this.max = 2; - this.visible.clear(); - this.visible.add(Integer.toString(this.counter)); - } - - public int getMax() - { - return this.max; - } - public void setMax(int max) { this.max = max; } - - public void setToMax() - { - this.counter = this.max; - } } /** @@ -431,7 +428,7 @@ public class ModelLoaderRegistryDebug @Override public BlockStateContainer createBlockState() { - return new ExtendedBlockState(this, new IProperty[] {FACING}, new IUnlistedProperty[] {OBJModel.OBJProperty.INSTANCE}); + return new BlockStateContainer(this, FACING); } @Override @@ -443,15 +440,6 @@ public class ModelLoaderRegistryDebug @Override public boolean isVisuallyOpaque() { return false; } - @Override - public IBlockState getExtendedState(IBlockState state, IBlockAccess world, BlockPos pos) - { - EnumFacing facing = (EnumFacing) state.getValue(FACING); - TRSRTransformation transform = new TRSRTransformation(facing); - OBJModel.OBJState retState = new OBJModel.OBJState(Arrays.asList(new String[]{OBJModel.Group.ALL}), true, transform); - return ((IExtendedBlockState) state).withProperty(OBJModel.OBJProperty.INSTANCE, retState); - } - public static EnumFacing getFacingFromEntity(World worldIn, BlockPos clickedBlock, EntityLivingBase entityIn) { if (MathHelper.abs((float)entityIn.posX - (float)clickedBlock.getX()) < 2.0F && MathHelper.abs((float)entityIn.posZ - (float)clickedBlock.getZ()) < 2.0F) @@ -586,7 +574,6 @@ public class ModelLoaderRegistryDebug public static final PropertyDirection FACING = PropertyDirection.create("facing"); public static final OBJDirectionBlock instance = new OBJDirectionBlock(); public static final String name = "OBJDirectionBlock"; - public ExtendedBlockState state = new ExtendedBlockState(this, new IProperty[]{FACING}, new IUnlistedProperty[]{OBJModel.OBJProperty.INSTANCE}); private OBJDirectionBlock() { @@ -624,20 +611,10 @@ public class ModelLoaderRegistryDebug return ((EnumFacing) state.getValue(FACING)).getIndex(); } - @Override - public IBlockState getExtendedState(IBlockState state, IBlockAccess world, BlockPos pos) - { - //Only return an IExtendedBlockState from this method and createState(), otherwise block placement will break! - EnumFacing facing = (EnumFacing) state.getValue(FACING); - TRSRTransformation transform = new TRSRTransformation(facing); - OBJModel.OBJState newState = new OBJModel.OBJState(Lists.newArrayList(OBJModel.Group.ALL), true, transform); - return ((IExtendedBlockState) state).withProperty(OBJModel.OBJProperty.INSTANCE, newState); - } - @Override public BlockStateContainer createBlockState() { - return new ExtendedBlockState(this, new IProperty[]{FACING}, new IUnlistedProperty[]{OBJModel.OBJProperty.INSTANCE}); + return new BlockStateContainer(this, FACING); } public static EnumFacing getFacingFromEntity(World worldIn, BlockPos clickedBlock, EntityLivingBase entityIn) @@ -732,7 +709,6 @@ public class ModelLoaderRegistryDebug { public static final OBJDynamicEye instance = new OBJDynamicEye(); public static final String name = "OBJDynamicEye"; - public ExtendedBlockState state = new ExtendedBlockState(this, new IProperty[0], new IUnlistedProperty[] {OBJModel.OBJProperty.INSTANCE}); private OBJDynamicEye() { super(Material.IRON); @@ -771,9 +747,9 @@ public class ModelLoaderRegistryDebug if (world.getTileEntity(pos) != null && world.getTileEntity(pos) instanceof OBJDynamicEyeTileEntity) { OBJDynamicEyeTileEntity te = (OBJDynamicEyeTileEntity) world.getTileEntity(pos); - if (te.state != null) + if (te.transform != TRSRTransformation.identity()) { - return ((IExtendedBlockState) this.state.getBaseState()).withProperty(OBJModel.OBJProperty.INSTANCE, te.state); + return ((IExtendedBlockState) state).withProperty(Properties.AnimationProperty, te.transform); } } return state; @@ -782,18 +758,13 @@ public class ModelLoaderRegistryDebug @Override public BlockStateContainer createBlockState() { - return new ExtendedBlockState(this, new IProperty[0], new IUnlistedProperty[] {OBJModel.OBJProperty.INSTANCE}); + return new ExtendedBlockState(this, new IProperty[0], new IUnlistedProperty[] {Properties.AnimationProperty}); } } public static class OBJDynamicEyeTileEntity extends TileEntity implements ITickable { - public OBJModel.OBJState state; - - public OBJDynamicEyeTileEntity() - { - this.state = new OBJModel.OBJState(Lists.newArrayList(OBJModel.Group.ALL), true); - } + private TRSRTransformation transform = TRSRTransformation.identity(); @Override public void update() @@ -821,9 +792,7 @@ public class ModelLoaderRegistryDebug Matrix4f matrix = new Matrix4f(); matrix.setIdentity(); matrix.setRotation(rot); - TRSRTransformation transform = new TRSRTransformation(matrix); - transform = TRSRTransformation.blockCenterToCorner(transform); - this.state = new OBJModel.OBJState(Lists.newArrayList(OBJModel.Group.ALL), true, transform); + transform = TRSRTransformation.blockCenterToCorner(new TRSRTransformation(matrix)); this.worldObj.markBlockRangeForRenderUpdate(this.pos, this.pos); } }