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..b3344ee934 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,10 @@ apply plugin: "net.minecraftforge.gradle.patcher" apply plugin: "net.minecraftforge.gradle.launch4j" minecraft { - version = "1.9" - mappings = 'snapshot_nodoc_20160312' - //mappings = "snapshot_nodoc_20151122" + version = "1.9.4" + mappings = 'snapshot_nodoc_20160518' workspaceDir = "projects" - versionJson = "jsons/1.9-dev.json" + versionJson = "jsons/1.9.4-dev.json" buildUserdev = true buildInstaller = true installerVersion = "1.4" @@ -52,6 +51,7 @@ minecraft { genPatchesFrom "clean" genMcpPatches = false applyMcpPatches = false + s2sKeepImports = true with common } } @@ -66,7 +66,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, @@ -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,18 +367,24 @@ 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' } 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') 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') extractMcpMappings.finalizedBy('fixParams') +*/ 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..39d34f66d8 --- /dev/null +++ b/jsons/1.9.4-rel.json @@ -0,0 +1,139 @@ +{ +"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", + "jar": "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/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/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()); } } 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 bc06c231f8..b2890fbf46 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..c6aa939018 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); } } @@ -57,11 +57,11 @@ + //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) -@@ -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_); @@ -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_); + } @@ -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..19d54fabb2 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,16 @@ 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 @@ +@@ -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_) { PacketThreadUtil.func_180031_a(p_147251_1_, this, this.field_147299_f); @@ -28,7 +37,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 +49,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 +58,7 @@ } } } -@@ -1179,6 +1186,10 @@ +@@ -1162,6 +1169,10 @@ { tileentity.func_145839_a(p_147273_1_.func_148857_g()); } @@ -60,7 +69,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 +88,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..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 -@@ -59,29 +59,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)); @@ -40,7 +42,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 +56,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/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; 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/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); ++ } + } 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..49592a1861 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,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; -@@ -533,15 +579,13 @@ +@@ -534,15 +584,13 @@ private void func_175554_cu() { @@ -120,7 +124,7 @@ this.field_175562_bw = 1; } -@@ -552,13 +596,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); } -@@ -647,9 +689,14 @@ +@@ -648,9 +694,14 @@ } } @@ -145,16 +149,16 @@ + 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]); + 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 +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_); - this.func_70938_b(this.field_70170_p.field_73012_v.nextInt(5)); @@ -162,3 +166,10 @@ this.func_175552_ct(); return p_180482_2_; } +@@ -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); + } + } ++ //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/entity/player/EntityPlayer.java.patch b/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch index 8da477eb31..84d1061fa1 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,11 @@ if (this.func_70005_c_().equals("Notch")) { this.func_146097_a(new ItemStack(Items.field_151034_e, 1), true, false); -@@ -591,6 +602,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,8 +81,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 +695,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 +102,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 +779,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 +844,13 @@ f /= 5.0F; } @@ -145,7 +150,7 @@ } public void func_70037_a(NBTTagCompound p_70037_1_) -@@ -845,6 +880,16 @@ +@@ -849,6 +886,16 @@ this.field_82248_d = p_70037_1_.func_74767_n("SpawnForced"); } @@ -162,7 +167,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 +928,23 @@ p_70014_1_.func_74757_a("SpawnForced", this.field_82248_d); } @@ -186,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()); -@@ -884,6 +946,7 @@ +@@ -888,6 +952,7 @@ public boolean func_70097_a(DamageSource p_70097_1_, float p_70097_2_) { @@ -194,7 +199,7 @@ if (this.func_180431_b(p_70097_1_)) { return false; -@@ -966,6 +1029,7 @@ +@@ -970,6 +1035,7 @@ if (this.field_184627_bm.field_77994_a <= 0) { EnumHand enumhand = this.func_184600_cs(); @@ -202,7 +207,7 @@ if (enumhand == EnumHand.MAIN_HAND) { -@@ -1001,7 +1065,10 @@ +@@ -1005,7 +1071,10 @@ { if (!this.func_180431_b(p_70665_1_)) { @@ -214,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); -@@ -1067,6 +1134,7 @@ +@@ -1071,6 +1140,7 @@ } else { @@ -222,7 +227,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_)) -@@ -1123,6 +1191,7 @@ +@@ -1086,6 +1156,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 +1172,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 +1199,7 @@ public void func_71059_n(Entity p_71059_1_) { @@ -230,16 +251,24 @@ if (p_71059_1_.func_70075_an()) { if (!p_71059_1_.func_85031_j(this)) -@@ -1410,6 +1479,8 @@ +@@ -1326,6 +1399,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); + } + } - public EntityPlayer.EnumStatus func_180469_a(BlockPos p_180469_1_) +@@ -1414,6 +1488,8 @@ + + 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 +1529,10 @@ this.func_70105_a(0.2F, 0.2F); @@ -253,7 +282,7 @@ float f = 0.5F; float f1 = 0.5F; -@@ -1514,13 +1586,14 @@ +@@ -1518,13 +1595,14 @@ public void func_70999_a(boolean p_70999_1_, boolean p_70999_2_, boolean p_70999_3_) { @@ -271,7 +300,7 @@ if (blockpos == null) { -@@ -1529,6 +1602,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)); } @@ -282,14 +311,15 @@ this.field_71083_bS = false; -@@ -1547,14 +1624,15 @@ +@@ -1551,15 +1633,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 +331,7 @@ { if (!p_180467_2_) { -@@ -1569,16 +1647,17 @@ +@@ -1574,16 +1657,17 @@ } else { @@ -322,7 +352,7 @@ switch (enumfacing) { -@@ -1618,16 +1697,24 @@ +@@ -1623,16 +1707,24 @@ public BlockPos func_180470_cg() { @@ -349,7 +379,7 @@ if (p_180473_1_ != null) { this.field_71077_c = p_180473_1_; -@@ -1822,6 +1909,10 @@ +@@ -1827,6 +1919,10 @@ super.func_180430_e(p_180430_1_, p_180430_2_); } @@ -360,7 +390,7 @@ } protected void func_71061_d_() -@@ -2022,6 +2113,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)); @@ -379,7 +409,7 @@ } protected boolean func_70041_e_() -@@ -2120,7 +2223,10 @@ +@@ -2126,7 +2234,10 @@ public ITextComponent func_145748_c_() { @@ -391,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_()); -@@ -2129,7 +2235,7 @@ +@@ -2135,7 +2246,7 @@ public float func_70047_e() { @@ -400,7 +430,7 @@ if (this.func_70608_bn()) { -@@ -2340,6 +2446,161 @@ +@@ -2346,6 +2457,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..06224c3eb7 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(); @@ -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_; 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/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/ItemAxe.java.patch b/patches/minecraft/net/minecraft/item/ItemAxe.java.patch new file mode 100644 index 0000000000..310c9091ee --- /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, float damage, float 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(); 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..eef4d43a78 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); } @@ -21,11 +21,11 @@ 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) { -@@ -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..4db19cc924 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; @@ -9,22 +9,3 @@ { 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) - { 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..8d9ed7a16a 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,41 @@ if (this.field_77990_d != null) { -@@ -759,6 +765,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; } -@@ -869,7 +876,7 @@ +@@ -873,7 +896,7 @@ } else { @@ -181,8 +215,8 @@ } return multimap; -@@ -901,6 +908,18 @@ - +@@ -906,6 +929,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 +234,7 @@ this.field_151002_e = p_150996_1_; } -@@ -987,4 +1006,26 @@ +@@ -991,4 +1026,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/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() 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..7195588cad 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,58 +300,46 @@ } else { @@ -181,7 +181,13 @@ if (itemstack1 != null) { -@@ -310,12 +326,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; } } -@@ -333,6 +355,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_); -@@ -359,6 +382,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()) -@@ -403,13 +427,26 @@ +@@ -404,13 +429,26 @@ } else { @@ -246,7 +252,7 @@ } } -@@ -429,14 +466,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 @@ } } } -@@ -445,4 +489,13 @@ +@@ -446,4 +491,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..53807504d5 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; } @@ -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/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/patches/minecraft/net/minecraft/tileentity/TileEntity.java.patch b/patches/minecraft/net/minecraft/tileentity/TileEntity.java.patch index 8e771c7091..a9b425575b 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,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. @@ -248,7 +260,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..afc892754e 100644 --- a/patches/minecraft/net/minecraft/tileentity/TileEntityBeacon.java.patch +++ b/patches/minecraft/net/minecraft/tileentity/TileEntityBeacon.java.patch @@ -1,6 +1,15 @@ --- ../src-base/minecraft/net/minecraft/tileentity/TileEntityBeacon.java +++ ../src-work/minecraft/net/minecraft/tileentity/TileEntityBeacon.java -@@ -179,7 +179,7 @@ +@@ -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(); @@ -9,7 +18,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/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); 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..872c37ab6b 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,16 @@ throw new ReportedException(crashreport2); } } -@@ -1701,15 +1820,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()); + } } } @@ -469,7 +396,7 @@ this.field_72984_F.func_76318_c("pendingBlockEntities"); if (!this.field_147484_a.isEmpty()) -@@ -1748,7 +1872,8 @@ +@@ -1754,7 +1881,8 @@ public boolean func_175700_a(TileEntity p_175700_1_) { @@ -479,12 +406,12 @@ if (flag && p_175700_1_ instanceof ITickable) { -@@ -1782,9 +1907,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); - 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 +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; -@@ -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 +2121,10 @@ blockpos$pooledmutableblockpos.func_185344_t(); return true; } @@ -515,7 +433,7 @@ } } } -@@ -2022,6 +2155,16 @@ +@@ -2028,6 +2164,16 @@ IBlockState iblockstate = this.func_180495_p(blockpos$pooledmutableblockpos); Block block = iblockstate.func_177230_c(); @@ -532,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())); -@@ -2098,6 +2241,9 @@ +@@ -2104,6 +2250,9 @@ { IBlockState iblockstate = this.func_180495_p(blockpos$pooledmutableblockpos.func_185343_d(k1, l1, i2)); @@ -542,43 +460,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 +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_); + 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 +2408,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 +2434,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 +2450,8 @@ { tileentity.func_145843_s(); this.field_147484_a.remove(tileentity); @@ -587,7 +497,7 @@ } else { -@@ -2301,6 +2457,7 @@ +@@ -2309,6 +2464,7 @@ this.func_175726_f(p_175713_1_).func_177425_e(p_175713_1_); } @@ -595,7 +505,7 @@ } public void func_147457_a(TileEntity p_147457_1_) -@@ -2327,7 +2484,7 @@ +@@ -2335,7 +2491,7 @@ if (chunk != null && !chunk.func_76621_g()) { IBlockState iblockstate = this.func_180495_p(p_175677_1_); @@ -604,7 +514,7 @@ } else { -@@ -2350,6 +2507,7 @@ +@@ -2358,6 +2514,7 @@ { this.field_72985_G = p_72891_1_; this.field_72992_H = p_72891_2_; @@ -612,7 +522,7 @@ } public void func_72835_b() -@@ -2359,6 +2517,11 @@ +@@ -2367,6 +2524,11 @@ protected void func_72947_a() { @@ -624,7 +534,7 @@ if (this.field_72986_A.func_76059_o()) { this.field_73004_o = 1.0F; -@@ -2372,6 +2535,11 @@ +@@ -2380,6 +2542,11 @@ protected void func_72979_l() { @@ -636,83 +546,40 @@ if (!this.field_73011_w.func_177495_o()) { if (!this.field_72995_K) -@@ -2491,28 +2659,33 @@ +@@ -2499,6 +2666,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 +2712,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 +2734,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 +2766,11 @@ else { IBlockState iblockstate = this.func_180495_p(p_175638_1_); @@ -727,7 +594,7 @@ { j = 1; } -@@ -2683,7 +2862,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); @@ -736,8 +603,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 +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(); - int i = MathHelper.func_76128_c((p_175674_2_.field_72340_a - 2.0D) / 16.0D); @@ -751,9 +618,9 @@ for (int i1 = i; i1 <= j; ++i1) { -@@ -2845,10 +3024,10 @@ +@@ -2855,10 +3033,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 +633,7 @@ List list = Lists.newArrayList(); for (int i1 = i; i1 < j; ++i1) -@@ -2926,11 +3105,13 @@ +@@ -2938,11 +3116,13 @@ public void func_175650_b(Collection p_175650_1_) { @@ -783,7 +650,7 @@ } } -@@ -2943,7 +3124,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_); @@ -792,7 +659,7 @@ } public int func_181545_F() -@@ -3026,7 +3207,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_); @@ -801,7 +668,7 @@ } public boolean func_175640_z(BlockPos p_175640_1_) -@@ -3215,7 +3396,7 @@ +@@ -3235,7 +3415,7 @@ public long func_72905_C() { @@ -810,7 +677,7 @@ } public long func_82737_E() -@@ -3225,17 +3406,17 @@ +@@ -3245,17 +3425,17 @@ public long func_72820_D() { @@ -831,7 +698,7 @@ if (!this.func_175723_af().func_177746_a(blockpos)) { -@@ -3247,7 +3428,7 @@ +@@ -3267,7 +3447,7 @@ public void func_175652_B(BlockPos p_175652_1_) { @@ -840,7 +707,7 @@ } @SideOnly(Side.CLIENT) -@@ -3267,12 +3448,18 @@ +@@ -3287,12 +3467,18 @@ if (!this.field_72996_f.contains(p_72897_1_)) { @@ -854,22 +721,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 +3572,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 +3633,12 @@ public int func_72800_K() { @@ -884,7 +751,7 @@ } public Random func_72843_D(int p_72843_1_, int p_72843_2_, int p_72843_3_) -@@ -3481,7 +3667,7 @@ +@@ -3503,7 +3688,7 @@ @SideOnly(Side.CLIENT) public double func_72919_O() { @@ -893,7 +760,7 @@ } public void func_175715_c(int p_175715_1_, BlockPos p_175715_2_, int p_175715_3_) -@@ -3515,7 +3701,7 @@ +@@ -3537,7 +3722,7 @@ public void func_175666_e(BlockPos p_175666_1_, Block p_175666_2_) { @@ -902,7 +769,7 @@ { BlockPos blockpos = p_175666_1_.func_177972_a(enumfacing); -@@ -3523,18 +3709,14 @@ +@@ -3545,18 +3730,14 @@ { IBlockState iblockstate = this.func_180495_p(blockpos); @@ -910,7 +777,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 +787,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 +3803,87 @@ return i >= -k && i <= k && j >= -k && j <= k; } @@ -967,7 +834,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..525db0e684 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,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_) -@@ -534,6 +534,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; -@@ -550,14 +551,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_); } } -@@ -574,8 +580,7 @@ +@@ -578,8 +585,7 @@ } else { @@ -64,7 +65,7 @@ if (j1 > 0) { -@@ -595,28 +600,19 @@ +@@ -599,28 +605,19 @@ } } @@ -97,7 +98,7 @@ this.field_76637_e.func_175690_a(p_177436_1_, tileentity1); } -@@ -719,6 +715,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; -@@ -758,13 +755,19 @@ +@@ -763,7 +761,7 @@ { IBlockState iblockstate = this.func_177435_g(p_177422_1_); Block block = iblockstate.func_177230_c(); @@ -113,7 +114,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 +769,12 @@ { TileEntity tileentity = (TileEntity)this.field_150816_i.get(p_177424_1_); @@ -126,7 +128,7 @@ if (tileentity == null) { if (p_177424_2_ == Chunk.EnumCreateEntityType.IMMEDIATE) -@@ -774,14 +777,9 @@ +@@ -780,14 +784,9 @@ } else if (p_177424_2_ == Chunk.EnumCreateEntityType.QUEUED) { @@ -142,7 +144,7 @@ return tileentity; } -@@ -801,7 +799,7 @@ +@@ -807,7 +806,7 @@ p_177426_2_.func_145834_a(this.field_76637_e); p_177426_2_.func_174878_a(p_177426_1_); @@ -151,7 +153,7 @@ { if (this.field_150816_i.containsKey(p_177426_1_)) { -@@ -810,6 +808,7 @@ +@@ -816,6 +815,7 @@ p_177426_2_.func_145829_t(); this.field_150816_i.put(p_177426_1_, p_177426_2_); @@ -159,7 +161,7 @@ } } -@@ -838,8 +837,9 @@ +@@ -844,8 +844,9 @@ entity.func_110123_P(); } @@ -170,7 +172,7 @@ } public void func_76623_d() -@@ -855,6 +855,7 @@ +@@ -861,6 +862,7 @@ { this.field_76637_e.func_175681_c(this.field_76645_j[i]); } @@ -178,9 +180,9 @@ } public void func_76630_e() -@@ -864,8 +865,8 @@ +@@ -870,8 +872,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 +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); -@@ -904,8 +905,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_) { @@ -200,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); -@@ -994,6 +995,7 @@ +@@ -1000,6 +1002,7 @@ { this.func_150809_p(); p_186034_1_.func_185931_b(this.field_76635_g, this.field_76647_h); @@ -208,7 +210,7 @@ this.func_76630_e(); } } -@@ -1050,7 +1052,7 @@ +@@ -1056,7 +1059,7 @@ { BlockPos blockpos = (BlockPos)this.field_177447_w.poll(); @@ -217,7 +219,7 @@ { TileEntity tileentity = this.func_177422_i(blockpos); this.field_76637_e.func_175690_a(blockpos, tileentity); -@@ -1114,6 +1116,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_) { @@ -231,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) -@@ -1162,10 +1171,16 @@ +@@ -1168,10 +1178,16 @@ this.field_76646_k = true; this.func_76590_a(); @@ -247,8 +249,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 +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; @@ -264,7 +266,7 @@ { this.field_76637_e.func_175664_x(blockpos2); } -@@ -1370,7 +1385,7 @@ +@@ -1376,7 +1392,7 @@ { blockpos$mutableblockpos.func_181079_c(blockpos$mutableblockpos.func_177958_n(), l, blockpos$mutableblockpos.func_177952_p()); @@ -273,7 +275,7 @@ { this.field_76637_e.func_175664_x(blockpos$mutableblockpos); } -@@ -1481,4 +1496,20 @@ +@@ -1487,4 +1503,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/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_) 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..638c98ef77 100644 --- a/patches/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch @@ -23,27 +23,28 @@ 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 @@ +@@ -1460,6 +1466,8 @@ 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.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_) { 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/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/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/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/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/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..45f4809e34 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; @@ -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; @@ -131,7 +132,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) { @@ -182,7 +183,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 +267,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 +337,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 +348,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")); @@ -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/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/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/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 1f7241c2ef..d3b2ae5f0f 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 types the types 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.REGISTRY.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.REGISTRY.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.REGISTRY.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.REGISTRY.getKeys()) + { + Biome biome = Biome.REGISTRY.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) { @@ -373,32 +373,32 @@ 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); } } //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.REGISTRY.getNameForObject(biome)); } - - private static void checkRegistration(BiomeGenBase biome) + + private static void checkRegistration(Biome biome) { if(!isBiomeRegistered(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 8eb1315335..1d49f4848e 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,16 +18,16 @@ 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 { - 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(); @@ -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)) + 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(BiomeGenBase biome) + 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; } } - 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..15371b4c5d 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; } } @@ -222,20 +222,21 @@ public class ForgeHooks block.setHarvestLevel("axe", 0); } - Blocks.obsidian.setHarvestLevel("pickaxe", 3); + 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 + 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 +259,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 +423,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 +441,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 +637,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 +686,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 +700,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.getDescriptionPacket(); + Packet pkt = tileentity.getUpdatePacket(); if (pkt != null) { - entityPlayer.playerNetServerHandler.sendPacket(pkt); + entityPlayer.connection.sendPacket(pkt); } } } @@ -798,7 +799,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/ForgeModContainer.java b/src/main/java/net/minecraftforge/common/ForgeModContainer.java index b18562cdf4..1c3aa8fede 100644 --- a/src/main/java/net/minecraftforge/common/ForgeModContainer.java +++ b/src/main/java/net/minecraftforge/common/ForgeModContainer.java @@ -14,12 +14,20 @@ 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; import net.minecraft.world.storage.SaveHandler; import net.minecraft.world.storage.WorldInfo; import net.minecraftforge.classloading.FMLForgePlugin; @@ -36,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; @@ -44,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; @@ -322,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()); } @@ -393,6 +435,7 @@ public class ForgeModContainer extends DummyModContainer implements WorldAccessC public void mappingChanged(FMLModIdMappingEvent evt) { OreDictionary.rebakeMap(); + StatList.reinit(); } @@ -462,4 +505,5 @@ public class ForgeModContainer extends DummyModContainer implements WorldAccessC { return updateJSONUrl; } + } diff --git a/src/main/java/net/minecraftforge/common/ForgeVersion.java b/src/main/java/net/minecraftforge/common/ForgeVersion.java index 7232ba678f..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"; + 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") diff --git a/src/main/java/net/minecraftforge/common/MinecraftForge.java b/src/main/java/net/minecraftforge/common/MinecraftForge.java index c386dcd8e0..edaa4fb372 100644 --- a/src/main/java/net/minecraftforge/common/MinecraftForge.java +++ b/src/main/java/net/minecraftforge/common/MinecraftForge.java @@ -1,15 +1,22 @@ 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.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 net.minecraftforge.fml.relauncher.Side; + +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; @@ -59,121 +66,45 @@ 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(); + 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/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/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 clazz) { - - if (!caseSensitiveCustomCategories) - category = category.toLowerCase(Locale.ENGLISH); getCategory(category).setConfigEntryClass(clazz); return this; } @@ -1244,8 +1236,6 @@ public class Configuration */ public Configuration setCategoryRequiresWorldRestart(String category, boolean requiresWorldRestart) { - if (!caseSensitiveCustomCategories) - category = category.toLowerCase(Locale.ENGLISH); getCategory(category).setRequiresWorldRestart(requiresWorldRestart); return this; } @@ -1258,8 +1248,6 @@ public class Configuration */ public Configuration setCategoryRequiresMcRestart(String category, boolean requiresMcRestart) { - if (!caseSensitiveCustomCategories) - category = category.toLowerCase(Locale.ENGLISH); getCategory(category).setRequiresMcRestart(requiresMcRestart); return this; } @@ -1270,8 +1258,6 @@ public class Configuration */ public Configuration setCategoryPropertyOrder(String category, List propOrder) { - if (!caseSensitiveCustomCategories) - category = category.toLowerCase(Locale.ENGLISH); getCategory(category).setPropertyOrder(propOrder); return this; } 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/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 6df3e7d310..d0ed0ecf02 100644 --- a/src/main/java/net/minecraftforge/common/util/BlockSnapshot.java +++ b/src/main/java/net/minecraftforge/common/util/BlockSnapshot.java @@ -139,7 +139,7 @@ public class BlockSnapshot implements Serializable public TileEntity getTileEntity() { if (getNbt() != null) - return TileEntity.createTileEntity(getWorld().getMinecraftServer(), getNbt()); + return TileEntity.create(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..b939a993c1 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; @@ -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}, @@ -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} }; @@ -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) { @@ -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) { @@ -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 diff --git a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java index 8afe6d354d..e0c99129b2 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; @@ -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(); @@ -162,7 +164,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)) @@ -308,7 +310,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); } @@ -369,7 +371,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); @@ -456,12 +458,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/entity/living/LivingSpawnEvent.java b/src/main/java/net/minecraftforge/event/entity/living/LivingSpawnEvent.java index 3cd35d043b..940aa97383 100644 --- a/src/main/java/net/minecraftforge/event/entity/living/LivingSpawnEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/living/LivingSpawnEvent.java @@ -10,8 +10,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.
@@ -27,7 +27,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); @@ -43,7 +43,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 @@ -60,9 +60,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
- * {@link WorldEntitySpawner#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 ForgeEventFactory#doSpecialSpawn(EntityLiving, World, float, float, float)}.
*
@@ -81,17 +80,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 * */ @@ -102,6 +101,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 diff --git a/src/main/java/net/minecraftforge/event/entity/player/PlayerDestroyItemEvent.java b/src/main/java/net/minecraftforge/event/entity/player/PlayerDestroyItemEvent.java index ac1ed2432b..68689803c7 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/PlayerDestroyItemEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/PlayerDestroyItemEvent.java @@ -4,7 +4,7 @@ import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.client.multiplayer.PlayerControllerMP; import net.minecraft.client.multiplayer.WorldClient; import net.minecraft.network.NetHandlerPlayServer; -import net.minecraft.network.play.client.CPacketPlayerBlockPlacement; +import net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock; import net.minecraft.network.play.client.CPacketPlayerTryUseItem; import net.minecraft.server.management.PlayerInteractionManager; import net.minecraft.util.EnumFacing; @@ -27,8 +27,8 @@ import net.minecraft.util.EnumHand; * {@link EntityPlayer#damageShield(float)}, * {@link ForgeHooks#getContainerItem(ItemStack)}, * {@link PlayerInteractionManager#processRightClick(EntityPlayer, World, ItemStack, EnumHand)}, - * {@link NetHandlerPlayServer#processPlayerBlockPlacement(CPacketPlayerBlockPlacement)} - * and {@link NetHandlerPlayServer#processRightClickBlock(CPacketPlayerTryUseItem)}.
+ * {@link NetHandlerPlayServer#processPlayerBlockPlacement(CPacketPlayerTryUseItem)} + * and {@link NetHandlerPlayServer#processRightClickBlock(CPacketPlayerTryUseItemOnBlock)}.
*
* {@link #original} contains the original ItemStack before the item was destroyed.
* (@link #hand) contains the hand that the current item was held in.
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 8da4b0518a..c5c51bd397 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; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.eventhandler.Cancelable; @@ -22,7 +22,7 @@ import net.minecraftforge.fml.common.eventhandler.Cancelable; **/ public class PlayerSleepInBedEvent extends PlayerEvent { - private EnumStatus result = null; + private SleepResult result = null; private final BlockPos pos; public PlayerSleepInBedEvent(EntityPlayer player, BlockPos pos) @@ -31,12 +31,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 a4d3302702..1fab348796 100644 --- a/src/main/java/net/minecraftforge/event/terraingen/BiomeEvent.java +++ b/src/main/java/net/minecraftforge/event/terraingen/BiomeEvent.java @@ -5,25 +5,26 @@ import net.minecraftforge.fml.common.eventhandler.Cancelable; 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.
* 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 { - 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; } @@ -47,7 +48,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; @@ -75,14 +76,14 @@ 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 { private final int originalColor; private int newColor; - public BiomeColor(BiomeGenBase biome, int original) + public BiomeColor(Biome biome, int original) { super(biome); originalColor = original; @@ -117,7 +118,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; @@ -144,7 +145,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); } @@ -155,7 +156,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); } @@ -166,7 +167,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/DecorateBiomeEvent.java b/src/main/java/net/minecraftforge/event/terraingen/DecorateBiomeEvent.java index 4332fa3f0d..fa4764a3bd 100644 --- a/src/main/java/net/minecraftforge/event/terraingen/DecorateBiomeEvent.java +++ b/src/main/java/net/minecraftforge/event/terraingen/DecorateBiomeEvent.java @@ -2,7 +2,7 @@ package net.minecraftforge.event.terraingen; import java.util.Random; -import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.Biome; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.eventhandler.Cancelable; import net.minecraftforge.fml.common.eventhandler.Event; @@ -13,7 +13,7 @@ import net.minecraft.world.World; /**DecorateBiomeEvent is fired when a BiomeDecorator is created. *
* This event is fired whenever a BiomeDecorator is created in - * {@link DeferredBiomeDecorator#fireCreateEventAndReplace(BiomeGenBase)}.
+ * {@link DeferredBiomeDecorator#fireCreateEventAndReplace(Biome)}.
*
* {@link #world} contains the world that is being decorated.
* {@link #rand} contains an instance of Random to be used.
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/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/event/world/ChunkWatchEvent.java b/src/main/java/net/minecraftforge/event/world/ChunkWatchEvent.java index 73b78f113d..95aebefdab 100644 --- a/src/main/java/net/minecraftforge/event/world/ChunkWatchEvent.java +++ b/src/main/java/net/minecraftforge/event/world/ChunkWatchEvent.java @@ -1,15 +1,15 @@ package net.minecraftforge.event.world; -import net.minecraft.server.management.PlayerManager; +import net.minecraft.server.management.PlayerChunkMapEntry; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.eventhandler.Cancelable; 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.
@@ -19,16 +19,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; } @@ -51,13 +51,13 @@ 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 - * {@link PlayerManager.PlayerInstance#removePlayer(EntityPlayerMP)}.
+ * {@link PlayerChunkMapEntry#removePlayer(EntityPlayerMP)}.
*
* This event is not {@link Cancelable}.
*
@@ -67,6 +67,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 d87aa936ec..0d3acc2c8f 100644 --- a/src/main/java/net/minecraftforge/event/world/WorldEvent.java +++ b/src/main/java/net/minecraftforge/event/world/WorldEvent.java @@ -17,11 +17,7 @@ import net.minecraft.world.EnumDifficulty; import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraft.world.WorldSettings; -import net.minecraft.world.WorldType; -import net.minecraft.world.biome.BiomeGenBase.SpawnListEntry; -import net.minecraftforge.common.DimensionManager; -import net.minecraftforge.common.ForgeInternalHandler; -import net.minecraftforge.common.MinecraftForge; +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..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 onNeighborBlockChange(World world, BlockPos pos, IBlockState state, 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/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); diff --git a/src/main/java/net/minecraftforge/fluids/TileFluidHandler.java b/src/main/java/net/minecraftforge/fluids/TileFluidHandler.java index f90247f6aa..d93d6693d7 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 writeToNBT(NBTTagCompound tag) { - super.writeToNBT(tag); + tag = super.writeToNBT(tag); tank.writeToNBT(tag); + return tag; } /* IFluidHandler */ 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 87019d1575..1afaf1c807 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; @@ -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) @@ -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/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 d963e0b7a3..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.addCrashSectionCallable(call.getLabel(), call); + category.setDetail(call.getLabel(), call); } } 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/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/Loader.java b/src/main/java/net/minecraftforge/fml/common/Loader.java index 8ce745ad11..0e608367e5 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; 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) { 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); + } + } + } } 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(); } 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 a7bc19c89a..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 @@ -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.getInternalName(), 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 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 @@ -326,12 +228,13 @@ 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); + boolean found = false; for (SpawnListEntry entry : spawns) { //Adjusting an existing spawn entry @@ -340,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)); } } @@ -358,9 +263,9 @@ 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); + Class entityClazz = EntityList.NAME_TO_CLASS.get(entityName); if (EntityLiving.class.isAssignableFrom(entityClazz)) { @@ -374,9 +279,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,9 +303,9 @@ 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); + Class entityClazz = EntityList.NAME_TO_CLASS.get(entityName); if (EntityLiving.class.isAssignableFrom(entityClazz)) { @@ -408,23 +313,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/ForgeRegistries.java b/src/main/java/net/minecraftforge/fml/common/registry/ForgeRegistries.java index e562cc9114..e84e36c278 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..6cea3a011e 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; @@ -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"); @@ -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/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/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) 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/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/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 ddeb959c8b..f715ac5f39 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,17 +39,17 @@ 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_ +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 -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..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,16 +369,17 @@ public class DynBucketTest } @Override - public void writeToNBT(NBTTagCompound tags) + public NBTTagCompound writeToNBT(NBTTagCompound tags) { - super.writeToNBT(tags); + tags = super.writeToNBT(tags); tank.writeToNBT(tags); + return tags; } @Override - public Packet getDescriptionPacket() { + public SPacketUpdateTileEntity getUpdatePacket() { NBTTagCompound tag = new NBTTagCompound(); - writeToNBT(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..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,13 +122,12 @@ 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() { - 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)); } @@ -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,12 +222,11 @@ 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() { - super(Material.iron); - setCreativeTab(CreativeTabs.tabBlock); + super(Material.IRON); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(MODID + ":" + name); setRegistryName(new ResourceLocation(MODID, name)); } @@ -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; - } } /** @@ -371,8 +368,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 +400,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)); } @@ -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) @@ -487,8 +475,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)); } @@ -586,13 +574,12 @@ 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() { - 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)); } @@ -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) @@ -678,9 +655,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)); } @@ -732,11 +709,10 @@ 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); - setCreativeTab(CreativeTabs.tabBlock); + super(Material.IRON); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); setUnlocalizedName(MODID + ":" + name); setRegistryName(new ResourceLocation(MODID, name)); } @@ -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); } } 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/EnumHelperTest.java b/src/test/java/net/minecraftforge/test/EnumHelperTest.java index 174a46561d..84f0db49f3 100644 --- a/src/test/java/net/minecraftforge/test/EnumHelperTest.java +++ b/src/test/java/net/minecraftforge/test/EnumHelperTest.java @@ -1,7 +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; @@ -9,50 +18,127 @@ 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(","); - @Test - public void test() + private static void setBootstrap() { - 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, "clentTypes"); - for (Object[] o : types) - testType(o); - - if (failed) - throw new RuntimeException("Enum Helper test failed!"); - 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]; - 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"); + 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) { - System.out.println(" " + cls.getName() + ": Failed"); - for (Constructor c : cls.getDeclaredConstructors()) + 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. + 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") && Modifier.isPublic(method.getModifiers())) { - System.out.println(" " + c.toString()); + //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]); + + 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) + { + seenCtrs.add(declaredConstructor); + //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]); + + expectedParameters = Arrays.copyOfRange(expectedParameters, 2, expectedParameters.length); + + 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() + { + setBootstrap(); + Assert.assertEquals(BiomeDictionary.Type.BEACH, BiomeDictionary.Type.getType("BEACH")); + // 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")); + } +} \ No newline at end of file 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 fe1cf7f39c..56ad676c61 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; @@ -152,7 +152,7 @@ public class NoBedSleepingTest private ItemSleepingPill() { - setCreativeTab(CreativeTabs.tabMisc); + setCreativeTab(CreativeTabs.MISC); setUnlocalizedName(MODID + ":" + name); setRegistryName(new ResourceLocation(MODID, name)); } @@ -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) 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);