mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-14 01:04:24 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d5cb0935e9 | ||
|
|
d4f79882f9 | ||
|
|
8d3685439e | ||
|
|
68cf703435 | ||
|
|
bcdd04d549 | ||
|
|
ec7d9d4179 | ||
|
|
765da1aca8 | ||
|
|
7fa42ca064 | ||
|
|
c23ea1e733 | ||
|
|
0f48e851a3 | ||
|
|
549007a4a6 | ||
|
|
932e7c84b3 | ||
|
|
999b5df933 | ||
|
|
29396b6235 | ||
|
|
4ce32c3663 | ||
|
|
8084cc5499 | ||
|
|
988fc97af1 | ||
|
|
5f082045b0 | ||
|
|
abc98ba56b | ||
|
|
e35c5c9ae4 | ||
|
|
926fa5d5a6 | ||
|
|
99d8fa1a6b | ||
|
|
1a317a7306 | ||
|
|
fa01ba3221 | ||
|
|
766019e1fc | ||
|
|
a7e4cdcc49 | ||
|
|
6551ccc247 | ||
|
|
c3e4d303e9 | ||
|
|
9e763a8334 | ||
|
|
035c01e222 | ||
|
|
1fa88ebd56 | ||
|
|
4fce4eb10b | ||
|
|
2e694d3a6d | ||
|
|
e8966a05f5 | ||
|
|
a377727ac4 | ||
|
|
385fb64ab7 | ||
|
|
f2216f4e25 | ||
|
|
0fc1ea01d1 | ||
|
|
ea23cd4779 | ||
|
|
903a400132 | ||
|
|
940f3ed731 | ||
|
|
9d8817b5db | ||
|
|
10204f8d82 | ||
|
|
746d702058 | ||
|
|
3c5728f070 | ||
|
|
8c8ef2d9e1 | ||
|
|
6a25490d7f | ||
|
|
6a0b16817d | ||
|
|
677e2104a0 | ||
|
|
438c969fef | ||
|
|
4af0bfd661 | ||
|
|
03c2a3d3a8 | ||
|
|
9a6d1c390e | ||
|
|
0512a47eba | ||
|
|
699a5c3c18 | ||
|
|
5a552b9f8d | ||
|
|
aa5b9d12ea | ||
|
|
a3b1007633 | ||
|
|
bdd0af5280 | ||
|
|
5e554530ac | ||
|
|
713c24d916 | ||
|
|
c359a38d9f | ||
|
|
d84a88d78d | ||
|
|
cf9b1b2193 | ||
|
|
25605505d5 | ||
|
|
0d2a0deef3 | ||
|
|
b6dc5381ca | ||
|
|
559bacbd98 | ||
|
|
19444ffa18 | ||
|
|
db3d202c4e | ||
|
|
2f5172f907 | ||
|
|
f6cb5268a2 | ||
|
|
fcee09cab2 | ||
|
|
dd1d8737ad | ||
|
|
3e48066021 | ||
|
|
0d16042705 | ||
|
|
52b8070692 | ||
|
|
23541ab175 | ||
|
|
c7a17946a5 | ||
|
|
208ca23515 | ||
|
|
6329c0fcf2 | ||
|
|
202ae50820 | ||
|
|
58e5f33fad | ||
|
|
2ce4f5ece5 | ||
|
|
aca45340bf | ||
|
|
30d4520c6b | ||
|
|
daff482092 | ||
|
|
a740044e21 | ||
|
|
1a4955f9fd | ||
|
|
2c4042c17c | ||
|
|
e95ba8a3dc | ||
|
|
63cb030cba | ||
|
|
743fc70a7f | ||
|
|
c14ffa3264 | ||
|
|
3f292d5d42 | ||
|
|
886e89ccb2 | ||
|
|
977428e42c | ||
|
|
1c02312ae6 | ||
|
|
8fbd84515f | ||
|
|
f93289e01c | ||
|
|
982ed69776 | ||
|
|
1f46169e1e | ||
|
|
7bac75f370 | ||
|
|
06d9b6531c | ||
|
|
2991e767dd | ||
|
|
a901d80dd5 | ||
|
|
d86f58a0df | ||
|
|
0ad574257e | ||
|
|
4839d18c73 | ||
|
|
e539e7ecbb | ||
|
|
1b618fae90 | ||
|
|
f12a93fe1e | ||
|
|
617159c825 | ||
|
|
c72d6e9122 | ||
|
|
69ae178bf4 | ||
|
|
d391299340 | ||
|
|
40091678a8 | ||
|
|
2b43aa6301 | ||
|
|
44d9fff2b4 | ||
|
|
509a28efd3 | ||
|
|
c4e000dbe7 | ||
|
|
0bcc2e3fbd | ||
|
|
e6c440a4f7 | ||
|
|
575af22cee | ||
|
|
dea08be906 | ||
|
|
0f27975f77 | ||
|
|
2d30419a31 | ||
|
|
68ce113c5b | ||
|
|
ad7e4e95ae | ||
|
|
345387645e | ||
|
|
380366e25f | ||
|
|
1936eb1f36 | ||
|
|
088fc6b67f | ||
|
|
983a47a7d6 | ||
|
|
c1840abb0a | ||
|
|
2c054fca76 | ||
|
|
d5b94aa9c8 | ||
|
|
c4c760bfb3 | ||
|
|
dd0260c476 | ||
|
|
ca62702ff9 | ||
|
|
0d50b4c39f | ||
|
|
c37e44efb6 | ||
|
|
df04ae11ef | ||
|
|
6e8b976089 | ||
|
|
bc878ddf19 | ||
|
|
3096608d4a | ||
|
|
7c99b756f9 | ||
|
|
90035ab084 | ||
|
|
b6c12f5fff | ||
|
|
4b9920bcb3 | ||
|
|
1e053298be | ||
|
|
ca031ca33f | ||
|
|
ecb56054bc | ||
|
|
53747b0cb5 | ||
|
|
e1b0a8c153 | ||
|
|
fc189c9aaf | ||
|
|
e8ce61d4cd | ||
|
|
ac61018806 | ||
|
|
18e97a487d | ||
|
|
c3b1f47754 | ||
|
|
503d277033 | ||
|
|
40de19f16e | ||
|
|
83ebdcd8f2 | ||
|
|
47a1f7529a | ||
|
|
747cb0f151 | ||
|
|
30b530836a | ||
|
|
49596dcacc | ||
|
|
5df687dddc | ||
|
|
599a754b60 | ||
|
|
eaac0c17a4 | ||
|
|
faaebe7a07 | ||
|
|
6256ba336e |
No files matched your search
@@ -35,4 +35,5 @@ branches:
|
||||
- 1.13-pre
|
||||
- 1.13.x
|
||||
- 1.14.x
|
||||
- 1.15.x
|
||||
- /^noci-.*$/
|
||||
Vendored
+3
-10
@@ -6,8 +6,8 @@ pipeline {
|
||||
}
|
||||
agent {
|
||||
docker {
|
||||
image 'gradlewrapper:latest'
|
||||
args '-v gradlecache:/gradlecache'
|
||||
image 'gradle:jdk8'
|
||||
args '-v forgegc:/home/gradle/.gradle/'
|
||||
}
|
||||
}
|
||||
environment {
|
||||
@@ -18,11 +18,6 @@ pipeline {
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('fetch') {
|
||||
steps {
|
||||
checkout scm
|
||||
}
|
||||
}
|
||||
stage('notify_start') {
|
||||
when {
|
||||
not {
|
||||
@@ -91,9 +86,7 @@ pipeline {
|
||||
always {
|
||||
script {
|
||||
archiveArtifacts artifacts: 'projects/forge/build/libs/**/*.*', fingerprint: true, onlyIfSuccessful: true, allowEmptyArchive: true
|
||||
//junit 'build/test-results/*/*.xml'
|
||||
//jacoco sourcePattern: '**/src/*/java'
|
||||
|
||||
|
||||
if (env.CHANGE_ID == null) { // This is unset for non-PRs
|
||||
discordSend(
|
||||
title: "${DISCORD_PREFIX} Finished ${currentBuild.currentResult}",
|
||||
|
||||
+59
-26
@@ -3,7 +3,11 @@ buildscript {
|
||||
mavenLocal()
|
||||
maven { url = 'https://files.minecraftforge.net/maven' }
|
||||
jcenter()
|
||||
mavenCentral()
|
||||
//mavenCentral() //TODO: Update Gradle to use HTTPS by default
|
||||
maven {
|
||||
name 'maven_central'
|
||||
url 'https://repo.maven.apache.org/maven2/'
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
classpath 'net.minecraftforge.gradle:ForgeGradle:3.+'
|
||||
@@ -48,6 +52,8 @@ plugins {
|
||||
}
|
||||
apply plugin: 'eclipse'
|
||||
|
||||
println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version'))
|
||||
|
||||
ext {
|
||||
JAR_SIGNER = null
|
||||
if (project.hasProperty('keystore')) {
|
||||
@@ -58,9 +64,9 @@ ext {
|
||||
]
|
||||
}
|
||||
MAPPING_CHANNEL = 'snapshot'
|
||||
MAPPING_VERSION = '20190719-1.14.3'
|
||||
MC_VERSION = '1.15.1'
|
||||
MCP_VERSION = '20191217.105819'
|
||||
MAPPING_VERSION = '20200514-1.15.1'
|
||||
MC_VERSION = '1.15.2'
|
||||
MCP_VERSION = '20200515.085601'
|
||||
}
|
||||
|
||||
project(':mcp') {
|
||||
@@ -78,7 +84,11 @@ project(':clean') {
|
||||
compileJava.sourceCompatibility = compileJava.targetCompatibility = sourceCompatibility = targetCompatibility = '1.8' // Need this here so eclipse task generates correctly.
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
//mavenCentral() //TODO: Update Gradle to use HTTPS by default
|
||||
maven {
|
||||
name 'maven_central'
|
||||
url 'https://repo.maven.apache.org/maven2/'
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -175,24 +185,34 @@ project(':forge') {
|
||||
srcDirs = ["$rootDir/src/userdev/resources"]
|
||||
}
|
||||
}
|
||||
userdev_test {
|
||||
compileClasspath += sourceSets.userdev.runtimeClasspath
|
||||
runtimeClasspath += sourceSets.userdev.runtimeClasspath
|
||||
compileClasspath += sourceSets.test.runtimeClasspath
|
||||
runtimeClasspath += sourceSets.test.runtimeClasspath
|
||||
}
|
||||
}
|
||||
//Eclipse adds the sourcesets twice, once where we tell it to, once in the projects folder. No idea why. So delete them
|
||||
eclipse.classpath.file.whenMerged { cls -> cls.entries.removeIf { e -> e instanceof SourceFolder && e.path.startsWith('src/') && !e.path.startsWith('src/main/') } }
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
//mavenCentral() //TODO: Update Gradle to use HTTPS by default
|
||||
maven {
|
||||
name 'maven_central'
|
||||
url 'https://repo.maven.apache.org/maven2/'
|
||||
}
|
||||
}
|
||||
|
||||
ext {
|
||||
SPEC_VERSION = '29.0' // This is overwritten by git tag, but here so dev time doesnt explode
|
||||
SPEC_VERSION = '31.2' // This is overwritten by git tag, but here so dev time doesnt explode
|
||||
// The new versioning sceme is <MCVersion>-<ForgeMC>.<RB>.<CommitsSinceRB>
|
||||
// ForgeMC is a unique identifier for every MC version we have supported.
|
||||
// Essentially, the same as the old, except dropping the first number, and the builds are no longer unique.
|
||||
MCP_ARTIFACT = project(':mcp').mcp.config
|
||||
SPECIAL_SOURCE = 'net.md-5:SpecialSource:1.8.5'
|
||||
VERSION_JSON = project(':mcp').file('build/mcp/downloadJson/version.json')
|
||||
BINPATCH_TOOL = 'net.minecraftforge:binarypatcher:1.0.7:fatjar'
|
||||
BINPATCH_TOOL = 'net.minecraftforge:binarypatcher:1.0.12:fatjar'
|
||||
}
|
||||
|
||||
def getVersion = {
|
||||
@@ -212,6 +232,7 @@ project(':forge') {
|
||||
}
|
||||
|
||||
version = getVersion()
|
||||
println('Forge Version: ' + version)
|
||||
|
||||
patcher {
|
||||
exc = file("$rootDir/src/main/resources/forge.exc")
|
||||
@@ -254,6 +275,8 @@ project(':forge') {
|
||||
|
||||
environment 'MOD_CLASSES', 'dummy' // Needed to work around FG limitation, FG will replace this!
|
||||
|
||||
ideaModule "${rootProject.name}.${project.name}.userdev_test"
|
||||
|
||||
mods {
|
||||
TestMods { sources sourceSets.test }
|
||||
}
|
||||
@@ -286,6 +309,8 @@ project(':forge') {
|
||||
|
||||
environment 'MOD_CLASSES', 'dummy' // Needed to work around FG limitation, FG will replace this!
|
||||
|
||||
ideaModule "${rootProject.name}.${project.name}.userdev_test"
|
||||
|
||||
mods {
|
||||
TestMods { sources sourceSets.test }
|
||||
}
|
||||
@@ -321,6 +346,8 @@ project(':forge') {
|
||||
|
||||
environment 'MOD_CLASSES', 'dummy' // Needed to work around FG limitation, FG will replace this!
|
||||
|
||||
ideaModule "${rootProject.name}.${project.name}.userdev_test"
|
||||
|
||||
mods {
|
||||
tests { sources sourceSets.test }
|
||||
}
|
||||
@@ -405,18 +432,18 @@ project(':forge') {
|
||||
installer 'org.ow2.asm:asm:7.2'
|
||||
installer 'org.ow2.asm:asm-commons:7.2'
|
||||
installer 'org.ow2.asm:asm-tree:7.2'
|
||||
installer 'cpw.mods:modlauncher:5.0.+'
|
||||
installer 'cpw.mods:grossjava9hacks:1.1.+'
|
||||
installer 'net.minecraftforge:accesstransformers:2.0.+:shadowed'
|
||||
installer 'net.minecraftforge:eventbus:2.0.+:service'
|
||||
installer 'net.minecraftforge:forgespi:2.0.+'
|
||||
installer 'cpw.mods:modlauncher:5.1.+'
|
||||
installer 'cpw.mods:grossjava9hacks:1.3.+'
|
||||
installer 'net.minecraftforge:accesstransformers:2.1.+:shadowed'
|
||||
installer 'net.minecraftforge:eventbus:2.2.+:service'
|
||||
installer 'net.minecraftforge:forgespi:2.1.+'
|
||||
installer 'net.minecraftforge:coremods:2.0.+'
|
||||
installer 'net.minecraftforge:unsafe:0.2.+'
|
||||
installer 'com.electronwill.night-config:core:3.6.2'
|
||||
installer 'com.electronwill.night-config:toml:3.6.2'
|
||||
installer 'org.jline:jline:3.12.+'
|
||||
installer 'org.apache.maven:maven-artifact:3.6.0'
|
||||
installer 'net.jodah:typetools:0.6.1'
|
||||
installer 'net.jodah:typetools:0.8.+'
|
||||
installer 'org.apache.logging.log4j:log4j-api:2.11.2'
|
||||
installer 'org.apache.logging.log4j:log4j-core:2.11.2'
|
||||
installer 'net.minecrell:terminalconsoleappender:1.2.+'
|
||||
@@ -795,16 +822,16 @@ project(':forge') {
|
||||
server: '/data/server.lzma'
|
||||
],
|
||||
MC_SLIM: [
|
||||
client: "[net.minecraft:client:${MC_VERSION}:slim${MC_VERSION == '1.14.4' ? '-stable' : ''}]",
|
||||
server: "[net.minecraft:server:${MC_VERSION}:slim${MC_VERSION == '1.14.4' ? '-stable' : ''}]"
|
||||
client: "[net.minecraft:client:${MC_VERSION}:slim]",
|
||||
server: "[net.minecraft:server:${MC_VERSION}:slim]"
|
||||
],
|
||||
MC_SLIM_SHA: [
|
||||
client: "'${sha1(tasks.getByName('downloadClientSlim').output)}'",
|
||||
server: "'${sha1(tasks.getByName('downloadServerSlim').output)}'"
|
||||
],
|
||||
MC_EXTRA: [
|
||||
client: "[net.minecraft:client:${MC_VERSION}:extra${MC_VERSION == '1.14.4' ? '-stable' : ''}]",
|
||||
server: "[net.minecraft:server:${MC_VERSION}:extra${MC_VERSION == '1.14.4' ? '-stable' : ''}]"
|
||||
client: "[net.minecraft:client:${MC_VERSION}:extra]",
|
||||
server: "[net.minecraft:server:${MC_VERSION}:extra]"
|
||||
],
|
||||
MC_EXTRA_SHA: [
|
||||
client: "'${sha1(tasks.getByName('downloadClientExtra').output)}'",
|
||||
@@ -892,7 +919,7 @@ project(':forge') {
|
||||
['slim', 'extra'].each { type ->
|
||||
def name = "download${side.capitalize()}${type.capitalize()}"
|
||||
task "${name}"(type: DownloadMavenArtifact) {
|
||||
artifact = "net.minecraft:${side}:${MC_VERSION}${MC_VERSION == '1.14.4' ? '-stable' : ''}:${type}"
|
||||
artifact = "net.minecraft:${side}:${MC_VERSION}:${type}"
|
||||
}
|
||||
installerJson.dependsOn(name)
|
||||
installerJson.inputs.file(tasks.getByName(name).output)
|
||||
@@ -945,7 +972,7 @@ project(':forge') {
|
||||
artifacts.each { key, lib ->
|
||||
classpath += "libraries/${lib.downloads.artifact.path} "
|
||||
}
|
||||
classpath += "libraries/net/minecraft/server/${MC_VERSION}/server-${MC_VERSION}-extra${MC_VERSION == '1.14.4' ? '-stable' : ''}.jar"
|
||||
classpath += "libraries/net/minecraft/server/${MC_VERSION}/server-${MC_VERSION}-extra.jar"
|
||||
|
||||
MANIFESTS.each{ pkg, values ->
|
||||
if (pkg == '/') {
|
||||
@@ -978,7 +1005,7 @@ project(':forge') {
|
||||
extension = 'jar' //Needs to be Zip task to not override Manifest, so set extension
|
||||
destinationDir = file('build/libs')
|
||||
from(extraTxts)
|
||||
from(rootProject.file('/src/main/resources/forge_logo.png')) {
|
||||
from(rootProject.file('/installer_logo.png')) {
|
||||
rename{'big_logo.png'}
|
||||
}
|
||||
from(rootProject.file('/src/main/resources/url.png'))
|
||||
@@ -1292,12 +1319,18 @@ def getArtifacts(project, config, classifiers) {
|
||||
}
|
||||
|
||||
def checkExists(url) {
|
||||
def code = new URL(url).openConnection().with {
|
||||
requestMethod = 'HEAD'
|
||||
connect()
|
||||
responseCode
|
||||
try {
|
||||
def code = new URL(url).openConnection().with {
|
||||
requestMethod = 'HEAD'
|
||||
connect()
|
||||
responseCode
|
||||
}
|
||||
return code == 200
|
||||
} catch (Exception e) {
|
||||
if (e.toString().contains('unable to find valid certification path to requested target'))
|
||||
throw new RuntimeException('Failed to connect to ' + url + ': Missing certificate root authority, try updating java')
|
||||
throw e
|
||||
}
|
||||
return code == 200
|
||||
}
|
||||
|
||||
def getClasspath(project, libs, artifact) {
|
||||
|
||||
+4
-4
@@ -2,16 +2,16 @@
|
||||
|
||||
MinecraftForge
|
||||
=============
|
||||
[](https://files.minecraftforge.net)
|
||||
[](https://files.minecraftforge.net)
|
||||
[](https://files.minecraftforge.net) [](https://discord.gg/UvedJ9m) [](https://www.patreon.com/LexManos) [](https://forgedev.flocker.tv/)
|
||||
|
||||
Forge is a free, open-source modding API all of your favourite mods use!
|
||||
|
||||
| Version | Support |
|
||||
| ------------- | ------------- |
|
||||
| 1.14.x | Active |
|
||||
| 1.12.x | Legacy |
|
||||
| 1.15.x | Active |
|
||||
| 1.14.x | LTS |
|
||||
|
||||
* [Download]
|
||||
* [Forum]
|
||||
|
||||
+1
-1
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
+6
-9
@@ -127,18 +127,15 @@ jar {
|
||||
}
|
||||
|
||||
// Example configuration to allow publishing using the maven-publish task
|
||||
// we define a custom artifact that is sourced from the reobfJar output task
|
||||
// and then declare that to be published
|
||||
// Note you'll need to add a repository here
|
||||
def reobfFile = file("$buildDir/reobfJar/output.jar")
|
||||
def reobfArtifact = artifacts.add('default', reobfFile) {
|
||||
type 'jar'
|
||||
builtBy 'reobfJar'
|
||||
}
|
||||
// This is the preferred method to reobfuscate your jar file
|
||||
jar.finalizedBy('reobfJar')
|
||||
// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing
|
||||
//publish.dependsOn('reobfJar')
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
mavenJava(MavenPublication) {
|
||||
artifact reobfArtifact
|
||||
artifact jar
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
# The name of the mod loader type to load - for regular FML @Mod mods it should be javafml
|
||||
modLoader="javafml" #mandatory
|
||||
# A version range to match for said mod loader - for regular FML @Mod it will be the forge version
|
||||
loaderVersion="[30,)" #mandatory (28 is current forge version)
|
||||
loaderVersion="[31,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions.
|
||||
# A URL to refer people to when problems occur with this mod
|
||||
issueTrackerURL="http://my.issue.tracker/" #optional
|
||||
# A list of mods - how many allowed here is determined by the individual mod loader
|
||||
@@ -42,7 +42,7 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mollis lacinia magn
|
||||
# Does this dependency have to exist - if not, ordering below must be specified
|
||||
mandatory=true #mandatory
|
||||
# The version range of the dependency
|
||||
versionRange="[30,)" #mandatory
|
||||
versionRange="[31,)" #mandatory
|
||||
# An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory
|
||||
ordering="NONE"
|
||||
# Side this dependency is applied on - BOTH, CLIENT or SERVER
|
||||
@@ -51,6 +51,6 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mollis lacinia magn
|
||||
[[dependencies.examplemod]]
|
||||
modId="minecraft"
|
||||
mandatory=true
|
||||
versionRange="[1.15.1]"
|
||||
versionRange="[1.15.2]"
|
||||
ordering="NONE"
|
||||
side="BOTH"
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/com/mojang/blaze3d/platform/GlStateManager.java
|
||||
+++ b/com/mojang/blaze3d/platform/GlStateManager.java
|
||||
@@ -578,10 +578,17 @@
|
||||
@@ -579,10 +579,17 @@
|
||||
GL13.glClientActiveTexture(p_227747_0_);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/com/mojang/blaze3d/vertex/IVertexBuilder.java
|
||||
+++ b/com/mojang/blaze3d/vertex/IVertexBuilder.java
|
||||
@@ -17,7 +17,7 @@
|
||||
@@ -18,7 +18,7 @@
|
||||
import org.lwjgl.system.MemoryStack;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
@@ -9,3 +9,17 @@
|
||||
Logger field_227884_f_ = LogManager.getLogger();
|
||||
|
||||
IVertexBuilder func_225582_a_(double p_225582_1_, double p_225582_3_, double p_225582_5_);
|
||||
@@ -96,11 +96,12 @@
|
||||
f5 = p_227890_3_[k] * p_227890_6_;
|
||||
}
|
||||
|
||||
- int l = p_227890_7_[k];
|
||||
+ int l = applyBakedLighting(p_227890_7_[k], bytebuffer);
|
||||
float f9 = bytebuffer.getFloat(16);
|
||||
float f10 = bytebuffer.getFloat(20);
|
||||
Vector4f vector4f = new Vector4f(f, f1, f2, 1.0F);
|
||||
vector4f.func_229372_a_(matrix4f);
|
||||
+ applyBakedNormals(vector3f, bytebuffer, p_227890_1_.func_227872_b_());
|
||||
this.func_225588_a_(vector4f.func_195910_a(), vector4f.func_195913_b(), vector4f.func_195914_c(), f3, f4, f5, 1.0F, f9, f10, p_227890_8_, l, vector3f.func_195899_a(), vector3f.func_195900_b(), vector3f.func_195902_c());
|
||||
}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
--- a/com/mojang/realmsclient/gui/screens/RealmsGenericErrorScreen.java
|
||||
+++ b/com/mojang/realmsclient/gui/screens/RealmsGenericErrorScreen.java
|
||||
@@ -64,6 +64,15 @@
|
||||
super.tick();
|
||||
}
|
||||
|
||||
+ @Override
|
||||
+ public boolean keyPressed(int key, int scanCode, int modifiers) {
|
||||
+ if (key == org.lwjgl.glfw.GLFW.GLFW_KEY_ESCAPE) {
|
||||
+ Realms.setScreen(this.field_224228_a);
|
||||
+ return true;
|
||||
+ }
|
||||
+ return super.keyPressed(key, scanCode, modifiers);
|
||||
+ }
|
||||
+
|
||||
public void render(int p_render_1_, int p_render_2_, float p_render_3_) {
|
||||
this.renderBackground();
|
||||
this.drawCenteredString(this.field_224229_b, this.width() / 2, 80, 16777215);
|
||||
@@ -0,0 +1,10 @@
|
||||
--- a/net/minecraft/advancements/AdvancementList.java
|
||||
+++ b/net/minecraft/advancements/AdvancementList.java
|
||||
@@ -96,6 +96,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ net.minecraftforge.common.AdvancementLoadFix.buildSortedTrees(this.field_192093_c);
|
||||
field_192091_a.info("Loaded {} advancements", (int)this.field_192092_b.size());
|
||||
}
|
||||
|
||||
@@ -1,6 +1,14 @@
|
||||
--- a/net/minecraft/advancements/PlayerAdvancements.java
|
||||
+++ b/net/minecraft/advancements/PlayerAdvancements.java
|
||||
@@ -187,6 +187,8 @@
|
||||
@@ -154,6 +154,7 @@
|
||||
}
|
||||
|
||||
this.func_192748_e();
|
||||
+ if (net.minecraftforge.common.ForgeConfig.SERVER.fixAdvancementLoading.get()) net.minecraftforge.common.AdvancementLoadFix.loadVisibility(this, this.field_192759_g, this.field_192760_h, this.field_192758_f, this.field_192761_i, this::func_192738_c); else
|
||||
this.func_192752_d();
|
||||
this.func_192751_c();
|
||||
}
|
||||
@@ -187,6 +188,8 @@
|
||||
}
|
||||
|
||||
public boolean func_192750_a(Advancement p_192750_1_, String p_192750_2_) {
|
||||
@@ -9,7 +17,7 @@
|
||||
boolean flag = false;
|
||||
AdvancementProgress advancementprogress = this.func_192747_a(p_192750_1_);
|
||||
boolean flag1 = advancementprogress.func_192105_a();
|
||||
@@ -199,6 +201,7 @@
|
||||
@@ -199,6 +202,7 @@
|
||||
if (p_192750_1_.func_192068_c() != null && p_192750_1_.func_192068_c().func_193220_i() && this.field_192762_j.field_70170_p.func_82736_K().func_223586_b(GameRules.field_223620_w)) {
|
||||
this.field_192756_d.func_184103_al().func_148539_a(new TranslationTextComponent("chat.type.advancement." + p_192750_1_.func_192068_c().func_192291_d().func_192307_a(), this.field_192762_j.func_145748_c_(), p_192750_1_.func_193123_j()));
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
--- a/net/minecraft/block/BambooBlock.java
|
||||
+++ b/net/minecraft/block/BambooBlock.java
|
||||
@@ -91,10 +91,11 @@
|
||||
if (!p_225534_1_.func_196955_c(p_225534_2_, p_225534_3_)) {
|
||||
p_225534_2_.func_175655_b(p_225534_3_, true);
|
||||
} else if (p_225534_1_.func_177229_b(field_220266_f) == 0) {
|
||||
- if (p_225534_4_.nextInt(3) == 0 && p_225534_2_.func_175623_d(p_225534_3_.func_177984_a()) && p_225534_2_.func_226659_b_(p_225534_3_.func_177984_a(), 0) >= 9) {
|
||||
+ if (true) {
|
||||
int i = this.func_220260_b(p_225534_2_, p_225534_3_) + 1;
|
||||
- if (i < 16) {
|
||||
+ if (i < 16 && net.minecraftforge.common.ForgeHooks.onCropsGrowPre(p_225534_2_, p_225534_3_, p_225534_1_, p_225534_4_.nextInt(3) == 0 && p_225534_2_.func_175623_d(p_225534_3_.func_177984_a()) && p_225534_2_.func_226659_b_(p_225534_3_.func_177984_a(), 0) >= 9)) {
|
||||
this.func_220258_a(p_225534_1_, p_225534_2_, p_225534_3_, p_225534_4_, i);
|
||||
+ net.minecraftforge.common.ForgeHooks.onCropsGrowPost(p_225534_2_, p_225534_3_, p_225534_1_);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,15 @@
|
||||
private static final Direction[] field_212556_a = new Direction[]{Direction.WEST, Direction.EAST, Direction.NORTH, Direction.SOUTH, Direction.DOWN, Direction.UP};
|
||||
private static final LoadingCache<VoxelShape, Boolean> field_223006_b = CacheBuilder.newBuilder().maximumSize(512L).weakKeys().build(new CacheLoader<VoxelShape, Boolean>() {
|
||||
public Boolean load(VoxelShape p_load_1_) {
|
||||
@@ -151,7 +152,7 @@
|
||||
|
||||
@Deprecated
|
||||
public boolean func_220067_a(BlockState p_220067_1_, IBlockReader p_220067_2_, BlockPos p_220067_3_, EntityType<?> p_220067_4_) {
|
||||
- return p_220067_1_.func_224755_d(p_220067_2_, p_220067_3_, Direction.UP) && this.field_149784_t < 14;
|
||||
+ return p_220067_1_.func_224755_d(p_220067_2_, p_220067_3_, Direction.UP) && p_220067_1_.getLightValue(p_220067_2_, p_220067_3_) < 14;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@@ -246,6 +247,10 @@
|
||||
this.field_149781_w = p_i48440_1_.field_200958_f;
|
||||
this.field_149782_v = p_i48440_1_.field_200959_g;
|
||||
@@ -49,7 +58,7 @@
|
||||
@Deprecated
|
||||
public void func_196243_a(BlockState p_196243_1_, World p_196243_2_, BlockPos p_196243_3_, BlockState p_196243_4_, boolean p_196243_5_) {
|
||||
- if (this.func_149716_u() && p_196243_1_.func_177230_c() != p_196243_4_.func_177230_c()) {
|
||||
+ if (p_196243_1_.hasTileEntity() && p_196243_1_.func_177230_c() != p_196243_4_.func_177230_c()) {
|
||||
+ if (p_196243_1_.hasTileEntity() && (p_196243_1_.func_177230_c() != p_196243_4_.func_177230_c() || !p_196243_4_.hasTileEntity())) {
|
||||
p_196243_2_.func_175713_t(p_196243_3_);
|
||||
}
|
||||
-
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
for(Direction direction : Direction.values()) {
|
||||
BlockState blockstate = p_176538_1_.func_180495_p(p_176538_2_.func_177972_a(direction));
|
||||
- i = Math.max(this.func_220275_r(blockstate), i);
|
||||
+ i = Math.max(blockstate.getFlammability(p_176538_1_, p_176538_2_.func_177972_a(direction), direction.func_176734_d()), i);
|
||||
+ i = Math.max(blockstate.getFireSpreadSpeed(p_176538_1_, p_176538_2_.func_177972_a(direction), direction.func_176734_d()), i);
|
||||
}
|
||||
|
||||
return i;
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
+ *
|
||||
+ * @param emptyPot The empty pot for this pot, or null for self.
|
||||
+ * @param p_i48395_1_ The flower block.
|
||||
+ * @param p_i48395_2_
|
||||
+ * @param properties
|
||||
+ */
|
||||
+ public FlowerPotBlock(@javax.annotation.Nullable java.util.function.Supplier<FlowerPotBlock> emptyPot, java.util.function.Supplier<? extends Block> p_i48395_1_, Block.Properties p_i48395_2_) {
|
||||
super(p_i48395_2_);
|
||||
|
||||
@@ -9,3 +9,48 @@
|
||||
netherportalblock$size.func_150859_c();
|
||||
return true;
|
||||
} else {
|
||||
@@ -241,13 +241,13 @@
|
||||
int i;
|
||||
for(i = 0; i < 22; ++i) {
|
||||
BlockPos blockpos = p_180120_1_.func_177967_a(p_180120_2_, i);
|
||||
- if (!this.func_196900_a(this.field_150867_a.func_180495_p(blockpos)) || this.field_150867_a.func_180495_p(blockpos.func_177977_b()).func_177230_c() != Blocks.field_150343_Z) {
|
||||
+ if (!this.func_196900_a(this.field_150867_a.func_180495_p(blockpos)) || !this.field_150867_a.func_180495_p(blockpos.func_177977_b()).isPortalFrame(this.field_150867_a, blockpos.func_177977_b())) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
- Block block = this.field_150867_a.func_180495_p(p_180120_1_.func_177967_a(p_180120_2_, i)).func_177230_c();
|
||||
- return block == Blocks.field_150343_Z ? i : 0;
|
||||
+ BlockPos framePos = p_180120_1_.func_177967_a(p_180120_2_, i);
|
||||
+ return this.field_150867_a.func_180495_p(framePos).isPortalFrame(this.field_150867_a, framePos) ? i : 0;
|
||||
}
|
||||
|
||||
public int func_181100_a() {
|
||||
@@ -274,13 +274,13 @@
|
||||
}
|
||||
|
||||
if (i == 0) {
|
||||
- block = this.field_150867_a.func_180495_p(blockpos.func_177972_a(this.field_150863_d)).func_177230_c();
|
||||
- if (block != Blocks.field_150343_Z) {
|
||||
+ BlockPos framePos = blockpos.func_177972_a(this.field_150863_d);
|
||||
+ if (!this.field_150867_a.func_180495_p(framePos).isPortalFrame(this.field_150867_a, framePos)) {
|
||||
break label56;
|
||||
}
|
||||
} else if (i == this.field_150868_h - 1) {
|
||||
- block = this.field_150867_a.func_180495_p(blockpos.func_177972_a(this.field_150866_c)).func_177230_c();
|
||||
- if (block != Blocks.field_150343_Z) {
|
||||
+ BlockPos framePos = blockpos.func_177972_a(this.field_150866_c);
|
||||
+ if (!this.field_150867_a.func_180495_p(framePos).isPortalFrame(this.field_150867_a, framePos)) {
|
||||
break label56;
|
||||
}
|
||||
}
|
||||
@@ -288,7 +288,8 @@
|
||||
}
|
||||
|
||||
for(int j = 0; j < this.field_150868_h; ++j) {
|
||||
- if (this.field_150867_a.func_180495_p(this.field_150861_f.func_177967_a(this.field_150866_c, j).func_177981_b(this.field_150862_g)).func_177230_c() != Blocks.field_150343_Z) {
|
||||
+ BlockPos framePos = this.field_150861_f.func_177967_a(this.field_150866_c, j).func_177981_b(this.field_150862_g);
|
||||
+ if (!this.field_150867_a.func_180495_p(framePos).isPortalFrame(this.field_150867_a, framePos)) {
|
||||
this.field_150862_g = 0;
|
||||
break;
|
||||
}
|
||||
@@ -9,17 +9,18 @@
|
||||
p_196482_1_.func_175641_c(p_196482_2_, this, 0, 0);
|
||||
}
|
||||
|
||||
@@ -60,6 +60,9 @@
|
||||
@@ -60,7 +60,9 @@
|
||||
if (p_225533_2_.field_72995_K) {
|
||||
return ActionResultType.SUCCESS;
|
||||
} else {
|
||||
- p_225533_1_ = p_225533_1_.func_177231_a(field_196485_c);
|
||||
+ int _new = net.minecraftforge.common.ForgeHooks.onNoteChange(p_225533_2_, p_225533_3_, p_225533_1_, p_225533_1_.func_177229_b(field_196485_c), p_225533_1_.func_177231_a(field_196485_c).func_177229_b(field_196485_c));
|
||||
+ if (_new == -1) return ActionResultType.FAIL;
|
||||
+ p_225533_1_ = (BlockState)p_225533_1_.func_206870_a(field_196485_c, _new);
|
||||
p_225533_1_ = p_225533_1_.func_177231_a(field_196485_c);
|
||||
p_225533_2_.func_180501_a(p_225533_3_, p_225533_1_, 3);
|
||||
this.func_196482_a(p_225533_2_, p_225533_3_);
|
||||
@@ -76,6 +79,9 @@
|
||||
p_225533_4_.func_195066_a(Stats.field_188087_U);
|
||||
@@ -76,6 +78,9 @@
|
||||
}
|
||||
|
||||
public boolean func_189539_a(BlockState p_189539_1_, World p_189539_2_, BlockPos p_189539_3_, int p_189539_4_, int p_189539_5_) {
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
public class PoweredRailBlock extends AbstractRailBlock {
|
||||
public static final EnumProperty<RailShape> field_176568_b = BlockStateProperties.field_208166_S;
|
||||
public static final BooleanProperty field_176569_M = BlockStateProperties.field_208194_u;
|
||||
+ private final boolean isActivator;
|
||||
+ private final boolean isActivator; // TRUE for an Activator Rail, FALSE for Powered Rail
|
||||
|
||||
protected PoweredRailBlock(Block.Properties p_i48349_1_) {
|
||||
- super(true, p_i48349_1_);
|
||||
+ this(p_i48349_1_, false);
|
||||
+ }
|
||||
+
|
||||
+ protected PoweredRailBlock(Block.Properties builder, boolean isActivator) {
|
||||
+ protected PoweredRailBlock(Block.Properties builder, boolean isPoweredRail) {
|
||||
+ super(true, builder);
|
||||
this.func_180632_j(this.field_176227_L.func_177621_b().func_206870_a(field_176568_b, RailShape.NORTH_SOUTH).func_206870_a(field_176569_M, Boolean.valueOf(false)));
|
||||
+ this.isActivator = isActivator;
|
||||
+ this.isActivator = !isPoweredRail;
|
||||
}
|
||||
|
||||
protected boolean func_176566_a(World p_176566_1_, BlockPos p_176566_2_, BlockState p_176566_3_, boolean p_176566_4_, int p_176566_5_) {
|
||||
@@ -35,3 +35,12 @@
|
||||
return p_208071_1_.func_175640_z(p_208071_2_) ? true : this.func_176566_a(p_208071_1_, p_208071_2_, blockstate, p_208071_3_, p_208071_4_ + 1);
|
||||
} else {
|
||||
return false;
|
||||
@@ -255,4 +261,8 @@
|
||||
protected void func_206840_a(StateContainer.Builder<Block, BlockState> p_206840_1_) {
|
||||
p_206840_1_.func_206894_a(field_176568_b, field_176569_M);
|
||||
}
|
||||
+
|
||||
+ public boolean isActivatorRail() {
|
||||
+ return isActivator;
|
||||
+ }
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
@@ -12,7 +12,7 @@
|
||||
public class JungleTree extends BigTree {
|
||||
@Nullable
|
||||
protected ConfiguredFeature<TreeFeatureConfig, ?> func_225546_b_(Random p_225546_1_) {
|
||||
protected ConfiguredFeature<TreeFeatureConfig, ?> func_225546_b_(Random p_225546_1_, boolean p_225546_2_) {
|
||||
- return (new TreeFeature(TreeFeatureConfig::func_227338_a_)).func_225566_b_(DefaultBiomeFeatures.field_226808_c_);
|
||||
+ return (new TreeFeature(TreeFeatureConfig::deserializeJungle)).func_225566_b_(DefaultBiomeFeatures.field_226808_c_);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/client/GameSettings.java
|
||||
+++ b/net/minecraft/client/GameSettings.java
|
||||
@@ -170,6 +170,7 @@
|
||||
@@ -171,6 +171,7 @@
|
||||
public String field_74363_ab = "en_us";
|
||||
|
||||
public GameSettings(Minecraft p_i46326_1_, File p_i46326_2_) {
|
||||
@@ -8,20 +8,20 @@
|
||||
this.field_74317_L = p_i46326_1_;
|
||||
this.field_74354_ai = new File(p_i46326_2_, "options.txt");
|
||||
if (p_i46326_1_.func_147111_S() && Runtime.getRuntime().maxMemory() >= 1000000000L) {
|
||||
@@ -485,7 +486,11 @@
|
||||
@@ -490,7 +491,11 @@
|
||||
|
||||
for(KeyBinding keybinding : this.field_74324_K) {
|
||||
if (s.equals("key_" + keybinding.func_151464_g())) {
|
||||
- keybinding.func_197979_b(InputMappings.func_197955_a(s1));
|
||||
+ if (s.indexOf(':') != -1) {
|
||||
+ String[] pts = s.split(":");
|
||||
+ if (s1.indexOf(':') != -1) {
|
||||
+ String[] pts = s1.split(":");
|
||||
+ keybinding.setKeyModifierAndCode(net.minecraftforge.client.settings.KeyModifier.valueFromString(pts[1]), InputMappings.func_197955_a(pts[0]));
|
||||
+ } else
|
||||
+ keybinding.setKeyModifierAndCode(net.minecraftforge.client.settings.KeyModifier.NONE, InputMappings.func_197955_a(s));
|
||||
+ keybinding.setKeyModifierAndCode(net.minecraftforge.client.settings.KeyModifier.NONE, InputMappings.func_197955_a(s1));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -533,6 +538,7 @@
|
||||
@@ -538,6 +543,7 @@
|
||||
}
|
||||
|
||||
public void func_74303_b() {
|
||||
@@ -29,8 +29,8 @@
|
||||
try (PrintWriter printwriter = new PrintWriter(new OutputStreamWriter(new FileOutputStream(this.field_74354_ai), StandardCharsets.UTF_8))) {
|
||||
printwriter.println("version:" + SharedConstants.func_215069_a().getWorldVersion());
|
||||
printwriter.println("autoJump:" + AbstractOption.field_216719_z.func_216741_b(this));
|
||||
@@ -609,7 +615,7 @@
|
||||
printwriter.println("glDebugVerbosity:" + this.field_209231_W);
|
||||
@@ -615,7 +621,7 @@
|
||||
printwriter.println("skipMultiplayerWarning:" + this.field_230152_Z_);
|
||||
|
||||
for(KeyBinding keybinding : this.field_74324_K) {
|
||||
- printwriter.println("key_" + keybinding.func_151464_g() + ":" + keybinding.func_197982_m());
|
||||
@@ -38,11 +38,8 @@
|
||||
}
|
||||
|
||||
for(SoundCategory soundcategory : SoundCategory.values()) {
|
||||
@@ -706,6 +712,25 @@
|
||||
}
|
||||
}
|
||||
@@ -714,4 +720,22 @@
|
||||
|
||||
+ if (net.minecraftforge.fml.client.ClientModLoader.isLoading()) return; //Don't save settings before mods add keybindigns and the like to prevent them from being deleted.
|
||||
p_198017_1_.func_198985_a(set);
|
||||
}
|
||||
+
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/client/MainWindow.java
|
||||
+++ b/net/minecraft/client/MainWindow.java
|
||||
@@ -86,7 +86,7 @@
|
||||
GLFW.glfwWindowHint(139266, 2);
|
||||
GLFW.glfwWindowHint(139267, 0);
|
||||
GLFW.glfwWindowHint(139272, 0);
|
||||
- this.field_198119_f = GLFW.glfwCreateWindow(this.field_198129_p, this.field_198130_q, p_i51170_5_, this.field_198125_l && monitor != null ? monitor.func_197995_f() : 0L, 0L);
|
||||
+ this.field_198119_f = net.minecraftforge.fml.loading.progress.EarlyProgressVisualization.INSTANCE.handOffWindow(()->this.field_198129_p, ()->this.field_198130_q, ()->p_i51170_5_, ()->this.field_198125_l && monitor != null ? monitor.func_197995_f() : 0L);
|
||||
if (monitor != null) {
|
||||
VideoMode videomode = monitor.func_197992_a(this.field_198125_l ? this.field_198124_k : Optional.empty());
|
||||
this.field_198120_g = this.field_198127_n = monitor.func_197989_c() + videomode.func_198064_a() / 2 - this.field_198129_p / 2;
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/client/Minecraft.java
|
||||
+++ b/net/minecraft/client/Minecraft.java
|
||||
@@ -321,6 +321,7 @@
|
||||
@@ -322,6 +322,7 @@
|
||||
public Minecraft(GameConfiguration p_i45547_1_) {
|
||||
super("Client");
|
||||
field_71432_P = this;
|
||||
@@ -8,7 +8,7 @@
|
||||
this.field_71412_D = p_i45547_1_.field_178744_c.field_178760_a;
|
||||
File file1 = p_i45547_1_.field_178744_c.field_178759_c;
|
||||
this.field_130070_K = p_i45547_1_.field_178744_c.field_178758_b;
|
||||
@@ -335,7 +336,6 @@
|
||||
@@ -336,7 +337,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: {}", (Object)this.field_71449_j.func_111285_a());
|
||||
@@ -16,15 +16,16 @@
|
||||
this.field_71459_aj = p_i45547_1_.field_178741_d.field_178756_a;
|
||||
this.field_147129_ai = func_147122_X();
|
||||
this.field_71437_Z = null;
|
||||
@@ -367,6 +367,7 @@
|
||||
screensize = p_i45547_1_.field_178743_b;
|
||||
@@ -350,7 +350,7 @@
|
||||
i = 0;
|
||||
}
|
||||
|
||||
+ net.minecraftforge.fml.loading.progress.EarlyProgressVisualization.INSTANCE.join();
|
||||
Util.field_211180_a = RenderSystem.initBackendSystem();
|
||||
this.field_195557_T = new VirtualScreen(this);
|
||||
this.field_195558_d = this.field_195557_T.func_217626_a(screensize, this.field_71474_y.field_198019_u, "Minecraft " + SharedConstants.func_215069_a().getName());
|
||||
@@ -382,7 +383,6 @@
|
||||
- Bootstrap.func_151354_b();
|
||||
+ net.minecraftforge.fml.loading.BackgroundWaiter.runAndTick(()->Bootstrap.func_151354_b(), net.minecraftforge.fml.loading.FMLLoader.progressWindowTick);
|
||||
Bootstrap.func_218821_c();
|
||||
KeybindTextComponent.field_193637_b = KeyBinding::func_193626_b;
|
||||
this.field_184131_U = DataFixesManager.func_210901_a();
|
||||
@@ -383,13 +383,13 @@
|
||||
|
||||
this.field_195558_d.func_216526_a(this.field_71474_y.field_74350_i);
|
||||
this.field_71417_B = new MouseHelper(this);
|
||||
@@ -32,15 +33,14 @@
|
||||
this.field_195559_v = new KeyboardListener(this);
|
||||
this.field_195559_v.func_197968_a(this.field_195558_d.func_198092_i());
|
||||
RenderSystem.initRenderer(this.field_71474_y.field_209231_W, false);
|
||||
@@ -390,6 +390,7 @@
|
||||
this.field_147124_at = new Framebuffer(this.field_195558_d.func_198109_k(), this.field_195558_d.func_198091_l(), true, field_142025_a);
|
||||
this.field_147124_at.func_147604_a(0.0F, 0.0F, 0.0F, 0.0F);
|
||||
this.field_110451_am = new SimpleReloadableResourceManager(ResourcePackType.CLIENT_RESOURCES, this.field_152352_aC);
|
||||
this.field_71474_y.func_198017_a(this.field_110448_aq);
|
||||
+ net.minecraftforge.fml.client.ClientModLoader.begin(this, this.field_110448_aq, this.field_110451_am, this.field_195554_ax);
|
||||
this.field_71474_y.func_198017_a(this.field_110448_aq);
|
||||
this.field_110448_aq.func_198983_a();
|
||||
this.field_135017_as = new LanguageManager(this.field_71474_y.field_74363_ab);
|
||||
this.field_110451_am.func_219534_a(this.field_135017_as);
|
||||
@@ -433,12 +434,14 @@
|
||||
@@ -434,12 +434,14 @@
|
||||
this.func_193986_ar();
|
||||
this.field_110451_am.func_219534_a(this.field_193995_ae);
|
||||
this.field_71452_i = new ParticleManager(this.field_71441_e, this.field_71446_o);
|
||||
@@ -56,7 +56,7 @@
|
||||
this.field_184132_p = new DebugRenderer(this);
|
||||
RenderSystem.setErrorCallback(this::func_195545_a);
|
||||
if (this.field_71474_y.field_74353_u && !this.field_195558_d.func_198113_j()) {
|
||||
@@ -450,12 +453,11 @@
|
||||
@@ -451,12 +453,11 @@
|
||||
this.field_195558_d.func_224798_d(this.field_71474_y.field_225307_E);
|
||||
this.field_195558_d.func_227801_c_();
|
||||
this.func_213226_a();
|
||||
@@ -73,7 +73,7 @@
|
||||
ResourceLoadProgressGui.func_212970_a(this);
|
||||
List<IResourcePack> list = this.field_110448_aq.func_198980_d().stream().map(ResourcePackInfo::func_195796_e).collect(Collectors.toList());
|
||||
this.func_213268_a(new ResourceLoadProgressGui(this, this.field_110451_am.func_219537_a(Util.func_215072_e(), this, field_223714_G, list), (p_229990_2_) -> {
|
||||
@@ -465,6 +467,14 @@
|
||||
@@ -466,6 +467,14 @@
|
||||
this.func_213256_aB();
|
||||
}
|
||||
|
||||
@@ -88,7 +88,16 @@
|
||||
});
|
||||
}, false));
|
||||
}
|
||||
@@ -545,7 +555,7 @@
|
||||
@@ -505,7 +514,7 @@
|
||||
}
|
||||
|
||||
private void func_229988_a_(Throwable p_229988_1_) {
|
||||
- if (this.field_110448_aq.func_198980_d().size() > 1) {
|
||||
+ if (this.field_110448_aq.func_198980_d().stream().anyMatch(e -> !e.func_195797_g())) { //Forge: This caused infinite loop if any resource packs are forced. Such as mod resources. So check if we can disable any.
|
||||
ITextComponent itextcomponent;
|
||||
if (p_229988_1_ instanceof SimpleReloadableResourceManager.FailedPackException) {
|
||||
itextcomponent = new StringTextComponent(((SimpleReloadableResourceManager.FailedPackException)p_229988_1_).func_230028_a().func_195762_a());
|
||||
@@ -579,7 +588,7 @@
|
||||
return Stream.of(Registry.field_212630_s.func_177774_c(p_213251_0_.func_77973_b()));
|
||||
});
|
||||
SearchTreeReloadable<ItemStack> searchtreereloadable = new SearchTreeReloadable<>((p_213235_0_) -> {
|
||||
@@ -97,7 +106,7 @@
|
||||
});
|
||||
NonNullList<ItemStack> nonnulllist = NonNullList.func_191196_a();
|
||||
|
||||
@@ -633,13 +643,13 @@
|
||||
@@ -667,13 +676,13 @@
|
||||
Bootstrap.func_179870_a(p_71377_0_.func_71502_e());
|
||||
if (p_71377_0_.func_71497_f() != null) {
|
||||
Bootstrap.func_179870_a("#@!@# Game crashed! Crash report saved to: #@!@# " + p_71377_0_.func_71497_f());
|
||||
@@ -114,7 +123,7 @@
|
||||
}
|
||||
|
||||
}
|
||||
@@ -648,6 +658,7 @@
|
||||
@@ -682,6 +691,7 @@
|
||||
return this.field_71474_y.field_211842_aO;
|
||||
}
|
||||
|
||||
@@ -122,7 +131,7 @@
|
||||
public CompletableFuture<Void> func_213237_g() {
|
||||
if (this.field_213276_aV != null) {
|
||||
return this.field_213276_aV;
|
||||
@@ -726,10 +737,6 @@
|
||||
@@ -760,10 +770,6 @@
|
||||
}
|
||||
|
||||
public void func_147108_a(@Nullable Screen p_147108_1_) {
|
||||
@@ -133,7 +142,7 @@
|
||||
if (p_147108_1_ == null && this.field_71441_e == null) {
|
||||
p_147108_1_ = new MainMenuScreen();
|
||||
} else if (p_147108_1_ == null && this.field_71439_g.func_110143_aJ() <= 0.0F) {
|
||||
@@ -740,6 +747,14 @@
|
||||
@@ -774,6 +780,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +157,7 @@
|
||||
if (p_147108_1_ instanceof MainMenuScreen || p_147108_1_ instanceof MultiplayerScreen) {
|
||||
this.field_71474_y.field_74330_P = false;
|
||||
this.field_71456_v.func_146158_b().func_146231_a(true);
|
||||
@@ -862,11 +877,13 @@
|
||||
@@ -905,11 +919,13 @@
|
||||
RenderSystem.enableTexture();
|
||||
this.field_71424_I.func_76319_b();
|
||||
if (!this.field_71454_w) {
|
||||
@@ -162,20 +171,49 @@
|
||||
}
|
||||
|
||||
this.field_71424_I.func_219897_b();
|
||||
@@ -1121,10 +1138,10 @@
|
||||
@@ -976,7 +992,7 @@
|
||||
|
||||
Framebuffer framebuffer = this.func_147110_a();
|
||||
framebuffer.func_216491_a(this.field_195558_d.func_198109_k(), this.field_195558_d.func_198091_l(), field_142025_a);
|
||||
- this.field_71460_t.func_147704_a(this.field_195558_d.func_198109_k(), this.field_195558_d.func_198091_l());
|
||||
+ if (this.field_71460_t!=null) this.field_71460_t.func_147704_a(this.field_195558_d.func_198109_k(), this.field_195558_d.func_198091_l());
|
||||
this.field_71417_B.func_198021_g();
|
||||
}
|
||||
|
||||
@@ -1164,11 +1180,21 @@
|
||||
if (p_147115_1_ && this.field_71476_x != null && this.field_71476_x.func_216346_c() == RayTraceResult.Type.BLOCK) {
|
||||
BlockRayTraceResult blockraytraceresult = (BlockRayTraceResult)this.field_71476_x;
|
||||
BlockPos blockpos = blockraytraceresult.func_216350_a();
|
||||
- if (!this.field_71441_e.func_180495_p(blockpos).func_196958_f()) {
|
||||
+ if (!this.field_71441_e.func_175623_d(blockpos)) {
|
||||
+ net.minecraftforge.client.event.InputEvent.ClickInputEvent inputEvent = net.minecraftforge.client.ForgeHooksClient.onClickInput(0, this.field_71474_y.field_74312_F, Hand.MAIN_HAND);
|
||||
+ if (inputEvent.isCanceled()) {
|
||||
+ if (inputEvent.shouldSwingHand()) {
|
||||
+ this.field_71452_i.addBlockHitEffects(blockpos, blockraytraceresult);
|
||||
+ this.field_71439_g.func_184609_a(Hand.MAIN_HAND);
|
||||
+ }
|
||||
+ return;
|
||||
+ }
|
||||
Direction direction = blockraytraceresult.func_216354_b();
|
||||
if (this.field_71442_b.func_180512_c(blockpos, direction)) {
|
||||
- this.field_71452_i.func_180532_a(blockpos, direction);
|
||||
+ if (inputEvent.shouldSwingHand()) {
|
||||
+ this.field_71452_i.addBlockHitEffects(blockpos, blockraytraceresult);
|
||||
this.field_71439_g.func_184609_a(Hand.MAIN_HAND);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
@@ -1151,7 +1168,7 @@
|
||||
|
||||
@@ -1187,6 +1213,8 @@
|
||||
}
|
||||
|
||||
} else if (!this.field_71439_g.func_184838_M()) {
|
||||
+ net.minecraftforge.client.event.InputEvent.ClickInputEvent inputEvent = net.minecraftforge.client.ForgeHooksClient.onClickInput(0, this.field_71474_y.field_74312_F, Hand.MAIN_HAND);
|
||||
+ if (!inputEvent.isCanceled())
|
||||
switch(this.field_71476_x.func_216346_c()) {
|
||||
case ENTITY:
|
||||
this.field_71442_b.func_78764_a(this.field_71439_g, ((EntityRayTraceResult)this.field_71476_x).func_216348_a());
|
||||
@@ -1194,7 +1222,7 @@
|
||||
case BLOCK:
|
||||
BlockRayTraceResult blockraytraceresult = (BlockRayTraceResult)this.field_71476_x;
|
||||
BlockPos blockpos = blockraytraceresult.func_216350_a();
|
||||
@@ -184,15 +222,46 @@
|
||||
this.field_71442_b.func_180511_b(blockpos, blockraytraceresult.func_216354_b());
|
||||
break;
|
||||
}
|
||||
@@ -1161,6 +1178,7 @@
|
||||
@@ -1204,8 +1232,10 @@
|
||||
}
|
||||
|
||||
this.field_71439_g.func_184821_cY();
|
||||
+ net.minecraftforge.common.ForgeHooks.onEmptyLeftClick(this.field_71439_g);
|
||||
}
|
||||
|
||||
+ if (inputEvent.shouldSwingHand())
|
||||
this.field_71439_g.func_184609_a(Hand.MAIN_HAND);
|
||||
@@ -1217,6 +1235,9 @@
|
||||
}
|
||||
}
|
||||
@@ -1220,6 +1250,11 @@
|
||||
}
|
||||
|
||||
for(Hand hand : Hand.values()) {
|
||||
+ net.minecraftforge.client.event.InputEvent.ClickInputEvent inputEvent = net.minecraftforge.client.ForgeHooksClient.onClickInput(1, this.field_71474_y.field_74313_G, hand);
|
||||
+ if (inputEvent.isCanceled()) {
|
||||
+ if (inputEvent.shouldSwingHand()) this.field_71439_g.func_184609_a(hand);
|
||||
+ return;
|
||||
+ }
|
||||
ItemStack itemstack = this.field_71439_g.func_184586_b(hand);
|
||||
if (this.field_71476_x != null) {
|
||||
switch(this.field_71476_x.func_216346_c()) {
|
||||
@@ -1233,6 +1268,7 @@
|
||||
|
||||
if (actionresulttype.func_226246_a_()) {
|
||||
if (actionresulttype.func_226247_b_()) {
|
||||
+ if (inputEvent.shouldSwingHand())
|
||||
this.field_71439_g.func_184609_a(hand);
|
||||
}
|
||||
|
||||
@@ -1245,6 +1281,7 @@
|
||||
ActionResultType actionresulttype1 = this.field_71442_b.func_217292_a(this.field_71439_g, this.field_71441_e, hand, blockraytraceresult);
|
||||
if (actionresulttype1.func_226246_a_()) {
|
||||
if (actionresulttype1.func_226247_b_()) {
|
||||
+ if (inputEvent.shouldSwingHand())
|
||||
this.field_71439_g.func_184609_a(hand);
|
||||
if (!itemstack.func_190926_b() && (itemstack.func_190916_E() != i || this.field_71442_b.func_78758_h())) {
|
||||
this.field_71460_t.field_78516_c.func_187460_a(hand);
|
||||
@@ -1260,6 +1297,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -202,7 +271,7 @@
|
||||
if (!itemstack.func_190926_b()) {
|
||||
ActionResultType actionresulttype2 = this.field_71442_b.func_187101_a(this.field_71439_g, this.field_71441_e, hand);
|
||||
if (actionresulttype2.func_226246_a_()) {
|
||||
@@ -1243,6 +1264,8 @@
|
||||
@@ -1286,6 +1326,8 @@
|
||||
--this.field_71467_ac;
|
||||
}
|
||||
|
||||
@@ -211,7 +280,7 @@
|
||||
this.field_71424_I.func_76320_a("gui");
|
||||
if (!this.field_71445_n) {
|
||||
this.field_71456_v.func_73831_a();
|
||||
@@ -1360,6 +1383,8 @@
|
||||
@@ -1403,6 +1445,8 @@
|
||||
this.field_71424_I.func_219895_b("keyboard");
|
||||
this.field_195559_v.func_204870_b();
|
||||
this.field_71424_I.func_76319_b();
|
||||
@@ -220,7 +289,7 @@
|
||||
}
|
||||
|
||||
private void func_184117_aA() {
|
||||
@@ -1514,6 +1539,12 @@
|
||||
@@ -1557,6 +1601,12 @@
|
||||
this.func_147108_a(worldloadprogressscreen);
|
||||
|
||||
while(!this.field_71437_Z.func_71200_ad()) {
|
||||
@@ -233,7 +302,7 @@
|
||||
worldloadprogressscreen.tick();
|
||||
this.func_195542_b(false);
|
||||
|
||||
@@ -1534,11 +1565,17 @@
|
||||
@@ -1577,11 +1627,17 @@
|
||||
networkmanager.func_150719_a(new ClientLoginNetHandler(networkmanager, this, (Screen)null, (p_229998_0_) -> {
|
||||
}));
|
||||
networkmanager.func_179290_a(new CHandshakePacket(socketaddress.toString(), 0, ProtocolType.LOGIN));
|
||||
@@ -252,7 +321,7 @@
|
||||
WorkingScreen workingscreen = new WorkingScreen();
|
||||
workingscreen.func_200210_a(new TranslationTextComponent("connect.joining"));
|
||||
this.func_213241_c(workingscreen);
|
||||
@@ -1570,10 +1607,12 @@
|
||||
@@ -1613,10 +1669,12 @@
|
||||
IntegratedServer integratedserver = this.field_71437_Z;
|
||||
this.field_71437_Z = null;
|
||||
this.field_71460_t.func_190564_k();
|
||||
@@ -265,15 +334,23 @@
|
||||
if (integratedserver != null) {
|
||||
while(!integratedserver.func_213201_w()) {
|
||||
this.func_195542_b(false);
|
||||
@@ -1605,6 +1644,7 @@
|
||||
this.field_71438_f.func_72732_a(p_213257_1_);
|
||||
@@ -1627,6 +1685,7 @@
|
||||
this.field_71456_v.func_181029_i();
|
||||
this.field_71422_O = null;
|
||||
this.field_71455_al = false;
|
||||
+ net.minecraftforge.fml.client.ClientHooks.handleClientWorldClosing(field_71441_e);
|
||||
this.field_213274_aO.func_216815_b();
|
||||
}
|
||||
|
||||
@@ -1649,6 +1708,7 @@
|
||||
this.field_71452_i.func_78870_a(p_213257_1_);
|
||||
TileEntityRendererDispatcher.field_147556_a.func_147543_a(p_213257_1_);
|
||||
this.func_230150_b_();
|
||||
+ net.minecraftforge.client.MinecraftForgeClient.clearRenderCache();
|
||||
}
|
||||
|
||||
public final boolean func_71355_q() {
|
||||
@@ -1630,112 +1670,8 @@
|
||||
@@ -1674,112 +1734,9 @@
|
||||
|
||||
private void func_147112_ai() {
|
||||
if (this.field_71476_x != null && this.field_71476_x.func_216346_c() != RayTraceResult.Type.MISS) {
|
||||
@@ -383,12 +460,13 @@
|
||||
- }
|
||||
-
|
||||
- }
|
||||
+ if (!net.minecraftforge.client.ForgeHooksClient.onClickInput(2, this.field_71474_y.field_74322_I, Hand.MAIN_HAND).isCanceled())
|
||||
+ net.minecraftforge.common.ForgeHooks.onPickBlock(this.field_71476_x, this.field_71439_g, this.field_71441_e);
|
||||
+ // We delete this code wholly instead of commenting it out, to make sure we detect changes in it between MC versions
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1817,6 +1753,7 @@
|
||||
@@ -1861,6 +1818,7 @@
|
||||
return field_71432_P;
|
||||
}
|
||||
|
||||
@@ -396,7 +474,7 @@
|
||||
public CompletableFuture<Void> func_213245_w() {
|
||||
return this.func_213169_a(this::func_213237_g).thenCompose((p_229993_0_) -> {
|
||||
return p_229993_0_;
|
||||
@@ -1944,6 +1881,8 @@
|
||||
@@ -1988,6 +1946,8 @@
|
||||
}
|
||||
|
||||
public MusicTicker.MusicType func_147109_W() {
|
||||
@@ -405,7 +483,7 @@
|
||||
if (this.field_71462_r instanceof WinGameScreen) {
|
||||
return MusicTicker.MusicType.CREDITS;
|
||||
} else if (this.field_71439_g == null) {
|
||||
@@ -2120,7 +2059,7 @@
|
||||
@@ -2164,7 +2124,7 @@
|
||||
supplier = func_228022_c_(supplier);
|
||||
}
|
||||
|
||||
@@ -414,7 +492,7 @@
|
||||
}
|
||||
|
||||
private static Supplier<IResourcePack> func_228021_b_(Supplier<IResourcePack> p_228021_0_) {
|
||||
@@ -2138,4 +2077,12 @@
|
||||
@@ -2182,4 +2142,12 @@
|
||||
public void func_228020_b_(int p_228020_1_) {
|
||||
this.field_175617_aL.func_229355_a_(p_228020_1_);
|
||||
}
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
--- a/net/minecraft/client/MouseHelper.java
|
||||
+++ b/net/minecraft/client/MouseHelper.java
|
||||
@@ -72,16 +72,21 @@
|
||||
if (!this.field_198051_p && flag) {
|
||||
this.func_198034_i();
|
||||
}
|
||||
+ if (net.minecraftforge.client.ForgeHooksClient.onRawMouseClicked(p_198023_3_, p_198023_4_, p_198023_5_)) return;
|
||||
} else {
|
||||
double d0 = this.field_198040_e * (double)this.field_198036_a.func_228018_at_().func_198107_o() / (double)this.field_198036_a.func_228018_at_().func_198105_m();
|
||||
@@ -66,6 +66,7 @@
|
||||
this.field_198042_g = -1;
|
||||
}
|
||||
|
||||
+ if (net.minecraftforge.client.ForgeHooksClient.onRawMouseClicked(p_198023_3_, p_198023_4_, p_198023_5_)) return;
|
||||
boolean[] aboolean = new boolean[]{false};
|
||||
if (this.field_198036_a.field_213279_p == null) {
|
||||
if (this.field_198036_a.field_71462_r == null) {
|
||||
@@ -77,11 +78,15 @@
|
||||
double d1 = this.field_198041_f * (double)this.field_198036_a.func_228018_at_().func_198087_p() / (double)this.field_198036_a.func_228018_at_().func_198083_n();
|
||||
if (flag) {
|
||||
Screen.wrapScreenError(() -> {
|
||||
|
||||
@@ -40,3 +40,12 @@
|
||||
RenderSystem.disableBlend();
|
||||
RenderSystem.popMatrix();
|
||||
}
|
||||
@@ -1045,7 +1056,7 @@
|
||||
ItemStack itemstack = this.field_73839_d.field_71439_g.field_71071_by.func_70448_g();
|
||||
if (itemstack.func_190926_b()) {
|
||||
this.field_92017_k = 0;
|
||||
- } else if (!this.field_92016_l.func_190926_b() && itemstack.func_77973_b() == this.field_92016_l.func_77973_b() && itemstack.func_200301_q().equals(this.field_92016_l.func_200301_q())) {
|
||||
+ } else if (!this.field_92016_l.func_190926_b() && itemstack.func_77973_b() == this.field_92016_l.func_77973_b() && (itemstack.func_200301_q().equals(this.field_92016_l.func_200301_q()) && itemstack.getHighlightTip(itemstack.func_200301_q().func_150261_e()).equals(field_92016_l.getHighlightTip(field_92016_l.func_200301_q().func_150261_e())))) {
|
||||
if (this.field_92017_k > 0) {
|
||||
--this.field_92017_k;
|
||||
}
|
||||
@@ -18,7 +18,7 @@
|
||||
} else {
|
||||
this.func_73969_a(j, 24);
|
||||
+ modbutton = this.addButton(new Button(this.width / 2 - 100, j + 24 * 2, 98, 20, I18n.func_135052_a("fml.menu.mods"), button -> {
|
||||
+ this.minecraft.func_147108_a(new net.minecraftforge.fml.client.gui.GuiModList(this));
|
||||
+ this.minecraft.func_147108_a(new net.minecraftforge.fml.client.gui.screen.ModListScreen(this));
|
||||
+ }));
|
||||
}
|
||||
|
||||
@@ -31,16 +31,16 @@
|
||||
|
||||
}
|
||||
|
||||
@@ -126,7 +132,7 @@
|
||||
this.addButton(new Button(this.width / 2 - 100, p_73969_1_ + p_73969_2_ * 1, 200, 20, I18n.func_135052_a("menu.multiplayer"), (p_213086_1_) -> {
|
||||
this.minecraft.func_147108_a(new MultiplayerScreen(this));
|
||||
@@ -131,7 +137,7 @@
|
||||
}
|
||||
|
||||
}));
|
||||
- this.addButton(new Button(this.width / 2 - 100, p_73969_1_ + p_73969_2_ * 2, 200, 20, I18n.func_135052_a("menu.online"), (p_213095_1_) -> {
|
||||
+ this.addButton(new Button(this.width / 2 + 2, p_73969_1_ + p_73969_2_ * 2, 98, 20, I18n.func_135052_a("menu.online"), (p_213095_1_) -> {
|
||||
this.func_140005_i();
|
||||
}));
|
||||
}
|
||||
@@ -190,6 +196,7 @@
|
||||
@@ -195,6 +201,7 @@
|
||||
|
||||
this.minecraft.func_110434_K().func_110577_a(field_194400_H);
|
||||
blit(j + 88, 67, 0.0F, 0.0F, 98, 14, 128, 16);
|
||||
@@ -48,8 +48,8 @@
|
||||
if (this.field_73975_c != null) {
|
||||
RenderSystem.pushMatrix();
|
||||
RenderSystem.translatef((float)(this.width / 2 + 90), 70.0F, 0.0F);
|
||||
@@ -208,7 +215,13 @@
|
||||
s = s + ("release".equalsIgnoreCase(this.minecraft.func_184123_d()) ? "" : "/" + this.minecraft.func_184123_d());
|
||||
@@ -217,7 +224,13 @@
|
||||
s = s + I18n.func_135052_a("menu.modded");
|
||||
}
|
||||
|
||||
- this.drawString(this.font, s, 2, this.height - 10, 16777215 | l);
|
||||
@@ -63,7 +63,7 @@
|
||||
this.drawString(this.font, "Copyright Mojang AB. Do not distribute!", this.field_193979_N, this.height - 10, 16777215 | l);
|
||||
if (p_render_1_ > this.field_193979_N && p_render_1_ < this.field_193979_N + this.field_193978_M && p_render_2_ > this.height - 10 && p_render_2_ < this.height) {
|
||||
fill(this.field_193979_N, this.height - 1, this.field_193979_N + this.field_193978_M, this.height, 16777215 | l);
|
||||
@@ -222,6 +235,7 @@
|
||||
@@ -231,6 +244,7 @@
|
||||
if (this.func_183501_a() && f1 >= 1.0F) {
|
||||
this.field_183503_M.render(p_render_1_, p_render_2_, p_render_3_);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
--- a/net/minecraft/client/gui/screen/MultiplayerScreen.java
|
||||
+++ b/net/minecraft/client/gui/screen/MultiplayerScreen.java
|
||||
@@ -241,6 +241,11 @@
|
||||
|
||||
}
|
||||
|
||||
+ @Override
|
||||
+ public void onClose() {
|
||||
+ this.minecraft.func_147108_a(this.field_146798_g);
|
||||
+ }
|
||||
+
|
||||
public ServerPinger func_146789_i() {
|
||||
return this.field_146797_f;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
--- a/net/minecraft/client/gui/screen/OptionsScreen.java
|
||||
+++ b/net/minecraft/client/gui/screen/OptionsScreen.java
|
||||
@@ -118,4 +118,12 @@
|
||||
this.drawCenteredString(this.font, this.title.func_150254_d(), this.width / 2, 15, 16777215);
|
||||
super.render(p_render_1_, p_render_2_, p_render_3_);
|
||||
}
|
||||
+
|
||||
+ @Override
|
||||
+ public void onClose() {
|
||||
+ // We need to consider 2 potential parent screens here:
|
||||
+ // 1. From the main menu, in which case display the main menu
|
||||
+ // 2. From the pause menu, in which case exit back to game
|
||||
+ this.minecraft.func_147108_a(this.field_146441_g instanceof IngameMenuScreen ? null : this.field_146441_g);
|
||||
+ }
|
||||
}
|
||||
@@ -6,9 +6,9 @@
|
||||
protected void renderTooltip(ItemStack p_renderTooltip_1_, int p_renderTooltip_2_, int p_renderTooltip_3_) {
|
||||
- this.renderTooltip(this.getTooltipFromItem(p_renderTooltip_1_), p_renderTooltip_2_, p_renderTooltip_3_);
|
||||
+ FontRenderer font = p_renderTooltip_1_.func_77973_b().getFontRenderer(p_renderTooltip_1_);
|
||||
+ net.minecraftforge.fml.client.config.GuiUtils.preItemToolTip(p_renderTooltip_1_);
|
||||
+ net.minecraftforge.fml.client.gui.GuiUtils.preItemToolTip(p_renderTooltip_1_);
|
||||
+ this.renderTooltip(this.getTooltipFromItem(p_renderTooltip_1_), p_renderTooltip_2_, p_renderTooltip_3_, (font == null ? this.font : font));
|
||||
+ net.minecraftforge.fml.client.config.GuiUtils.postItemToolTip();
|
||||
+ net.minecraftforge.fml.client.gui.GuiUtils.postItemToolTip();
|
||||
}
|
||||
|
||||
public List<String> getTooltipFromItem(ItemStack p_getTooltipFromItem_1_) {
|
||||
@@ -20,7 +20,7 @@
|
||||
+ renderTooltip(p_renderTooltip_1_, p_renderTooltip_2_, p_renderTooltip_3_, font);
|
||||
+ }
|
||||
+ public void renderTooltip(List<String> p_renderTooltip_1_, int p_renderTooltip_2_, int p_renderTooltip_3_, FontRenderer font) {
|
||||
+ net.minecraftforge.fml.client.config.GuiUtils.drawHoveringText(p_renderTooltip_1_, p_renderTooltip_2_, p_renderTooltip_3_, width, height, -1, font);
|
||||
+ net.minecraftforge.fml.client.gui.GuiUtils.drawHoveringText(p_renderTooltip_1_, p_renderTooltip_2_, p_renderTooltip_3_, width, height, -1, font);
|
||||
+ if (false && !p_renderTooltip_1_.isEmpty()) {
|
||||
RenderSystem.disableRescaleNormal();
|
||||
RenderSystem.disableDepthTest();
|
||||
|
||||
+2
-2
@@ -180,9 +180,9 @@
|
||||
|
||||
- this.renderTooltip(list1, p_renderTooltip_2_, p_renderTooltip_3_);
|
||||
+ net.minecraft.client.gui.FontRenderer font = p_renderTooltip_1_.func_77973_b().getFontRenderer(p_renderTooltip_1_);
|
||||
+ net.minecraftforge.fml.client.config.GuiUtils.preItemToolTip(p_renderTooltip_1_);
|
||||
+ net.minecraftforge.fml.client.gui.GuiUtils.preItemToolTip(p_renderTooltip_1_);
|
||||
+ this.renderTooltip(list1, p_renderTooltip_2_, p_renderTooltip_3_, (font == null ? this.font : font));
|
||||
+ net.minecraftforge.fml.client.config.GuiUtils.postItemToolTip();
|
||||
+ net.minecraftforge.fml.client.gui.GuiUtils.postItemToolTip();
|
||||
} else {
|
||||
super.renderTooltip(p_renderTooltip_1_, p_renderTooltip_2_, p_renderTooltip_3_);
|
||||
}
|
||||
|
||||
@@ -24,17 +24,21 @@
|
||||
public void setAlpha(float p_setAlpha_1_) {
|
||||
this.alpha = p_setAlpha_1_;
|
||||
}
|
||||
@@ -233,4 +241,13 @@
|
||||
@@ -233,4 +241,17 @@
|
||||
protected void setFocused(boolean p_setFocused_1_) {
|
||||
this.focused = p_setFocused_1_;
|
||||
}
|
||||
+
|
||||
+ protected int packedFGColor = 0;
|
||||
+ public static final int UNSET_FG_COLOR = -1;
|
||||
+ protected int packedFGColor = UNSET_FG_COLOR;
|
||||
+ public int getFGColor() {
|
||||
+ if (packedFGColor != 0) return packedFGColor;
|
||||
+ return this.active ? 16777215 : 10526880;
|
||||
+ if (packedFGColor != UNSET_FG_COLOR) return packedFGColor;
|
||||
+ return this.active ? 16777215 : 10526880; // White : Light Grey
|
||||
+ }
|
||||
+ public void setFGColor(int color) {
|
||||
+ this.packedFGColor = color;
|
||||
+ }
|
||||
+ public void clearFGColor() {
|
||||
+ this.packedFGColor = UNSET_FG_COLOR;
|
||||
+ }
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
if (this.field_78776_a.field_71439_g.func_223729_a(this.field_78776_a.field_71441_e, p_187103_1_, this.field_78779_k)) {
|
||||
return false;
|
||||
} else {
|
||||
@@ -103,7 +104,7 @@
|
||||
@@ -103,12 +104,11 @@
|
||||
Block block = blockstate.func_177230_c();
|
||||
if ((block instanceof CommandBlockBlock || block instanceof StructureBlock || block instanceof JigsawBlock) && !this.field_78776_a.field_71439_g.func_195070_dx()) {
|
||||
return false;
|
||||
@@ -16,8 +16,14 @@
|
||||
+ } else if (blockstate.isAir(world, p_187103_1_)) {
|
||||
return false;
|
||||
} else {
|
||||
block.func_176208_a(world, p_187103_1_, blockstate, this.field_78776_a.field_71439_g);
|
||||
@@ -129,21 +130,25 @@
|
||||
- block.func_176208_a(world, p_187103_1_, blockstate, this.field_78776_a.field_71439_g);
|
||||
IFluidState ifluidstate = world.func_204610_c(p_187103_1_);
|
||||
- boolean flag = world.func_180501_a(p_187103_1_, ifluidstate.func_206883_i(), 11);
|
||||
+ boolean flag = blockstate.removedByPlayer(world, p_187103_1_, field_78776_a.field_71439_g, false, ifluidstate);
|
||||
if (flag) {
|
||||
block.func_176206_d(world, p_187103_1_, blockstate);
|
||||
}
|
||||
@@ -129,21 +129,25 @@
|
||||
BlockState blockstate = this.field_78776_a.field_71441_e.func_180495_p(p_180511_1_);
|
||||
this.field_78776_a.func_193032_ao().func_193294_a(this.field_78776_a.field_71441_e, p_180511_1_, blockstate, 1.0F);
|
||||
this.func_225324_a(CPlayerDiggingPacket.Action.START_DESTROY_BLOCK, p_180511_1_, p_180511_2_);
|
||||
@@ -44,7 +50,7 @@
|
||||
if (flag && blockstate1.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_);
|
||||
} else {
|
||||
@@ -183,22 +188,24 @@
|
||||
@@ -183,22 +187,24 @@
|
||||
BlockState blockstate1 = this.field_78776_a.field_71441_e.func_180495_p(p_180512_1_);
|
||||
this.field_78776_a.func_193032_ao().func_193294_a(this.field_78776_a.field_71441_e, p_180512_1_, blockstate1, 1.0F);
|
||||
this.func_225324_a(CPlayerDiggingPacket.Action.START_DESTROY_BLOCK, p_180512_1_, p_180512_2_);
|
||||
@@ -71,7 +77,7 @@
|
||||
if (this.field_78770_f >= 1.0F) {
|
||||
this.field_78778_j = false;
|
||||
this.func_225324_a(CPlayerDiggingPacket.Action.STOP_DESTROY_BLOCK, p_180512_1_, p_180512_2_);
|
||||
@@ -217,7 +224,8 @@
|
||||
@@ -217,7 +223,8 @@
|
||||
}
|
||||
|
||||
public float func_78757_d() {
|
||||
@@ -81,7 +87,7 @@
|
||||
}
|
||||
|
||||
public void func_78765_e() {
|
||||
@@ -234,7 +242,7 @@
|
||||
@@ -234,7 +241,7 @@
|
||||
ItemStack itemstack = this.field_78776_a.field_71439_g.func_184614_ca();
|
||||
boolean flag = this.field_85183_f.func_190926_b() && itemstack.func_190926_b();
|
||||
if (!this.field_85183_f.func_190926_b() && !itemstack.func_190926_b()) {
|
||||
@@ -90,7 +96,7 @@
|
||||
}
|
||||
|
||||
return p_178893_1_.equals(this.field_178895_c) && flag;
|
||||
@@ -256,13 +264,19 @@
|
||||
@@ -256,13 +263,27 @@
|
||||
return ActionResultType.FAIL;
|
||||
} else {
|
||||
ItemStack itemstack = p_217292_1_.func_184586_b(p_217292_3_);
|
||||
@@ -105,6 +111,14 @@
|
||||
return ActionResultType.SUCCESS;
|
||||
} else {
|
||||
- boolean flag = !p_217292_1_.func_184614_ca().func_190926_b() || !p_217292_1_.func_184592_cb().func_190926_b();
|
||||
+ ItemUseContext itemusecontext = new ItemUseContext(p_217292_1_, p_217292_3_, p_217292_4_);
|
||||
+ if (event.getUseItem() != net.minecraftforge.eventbus.api.Event.Result.DENY) {
|
||||
+ ActionResultType result = itemstack.onItemUseFirst(itemusecontext);
|
||||
+ if (result != ActionResultType.PASS) {
|
||||
+ this.field_78774_b.func_147297_a(new CPlayerTryUseItemOnBlockPacket(p_217292_3_, p_217292_4_));
|
||||
+ return result;
|
||||
+ }
|
||||
+ }
|
||||
+ boolean flag = !p_217292_1_.func_184614_ca().doesSneakBypassUse(p_217292_2_,blockpos,p_217292_1_) || !p_217292_1_.func_184592_cb().doesSneakBypassUse(p_217292_2_,blockpos,p_217292_1_);
|
||||
boolean flag1 = p_217292_1_.func_226563_dT_() && flag;
|
||||
- if (!flag1) {
|
||||
@@ -112,15 +126,17 @@
|
||||
ActionResultType actionresulttype = p_217292_2_.func_180495_p(blockpos).func_227031_a_(p_217292_2_, p_217292_1_, p_217292_3_, p_217292_4_);
|
||||
if (actionresulttype.func_226246_a_()) {
|
||||
this.field_78774_b.func_147297_a(new CPlayerTryUseItemOnBlockPacket(p_217292_3_, p_217292_4_));
|
||||
@@ -271,6 +285,7 @@
|
||||
@@ -271,8 +292,8 @@
|
||||
}
|
||||
|
||||
this.field_78774_b.func_147297_a(new CPlayerTryUseItemOnBlockPacket(p_217292_3_, p_217292_4_));
|
||||
+ if (event.getUseItem() == net.minecraftforge.eventbus.api.Event.Result.DENY) return ActionResultType.PASS;
|
||||
if (!itemstack.func_190926_b() && !p_217292_1_.func_184811_cZ().func_185141_a(itemstack.func_77973_b())) {
|
||||
ItemUseContext itemusecontext = new ItemUseContext(p_217292_1_, p_217292_3_, p_217292_4_);
|
||||
- ItemUseContext itemusecontext = new ItemUseContext(p_217292_1_, p_217292_3_, p_217292_4_);
|
||||
ActionResultType actionresulttype1;
|
||||
@@ -300,11 +315,14 @@
|
||||
if (this.field_78779_k.func_77145_d()) {
|
||||
int i = itemstack.func_190916_E();
|
||||
@@ -300,11 +321,14 @@
|
||||
if (p_187101_1_.func_184811_cZ().func_185141_a(itemstack.func_77973_b())) {
|
||||
return ActionResultType.PASS;
|
||||
} else {
|
||||
@@ -135,7 +151,7 @@
|
||||
}
|
||||
|
||||
return actionresult.func_188397_a();
|
||||
@@ -329,6 +347,9 @@
|
||||
@@ -329,6 +353,9 @@
|
||||
public ActionResultType func_187097_a(PlayerEntity p_187097_1_, Entity p_187097_2_, Hand p_187097_3_) {
|
||||
this.func_78750_j();
|
||||
this.field_78774_b.func_147297_a(new CUseEntityPacket(p_187097_2_, p_187097_3_));
|
||||
@@ -145,7 +161,7 @@
|
||||
return this.field_78779_k == GameType.SPECTATOR ? ActionResultType.PASS : p_187097_1_.func_190775_a(p_187097_2_, p_187097_3_);
|
||||
}
|
||||
|
||||
@@ -336,6 +357,9 @@
|
||||
@@ -336,6 +363,9 @@
|
||||
this.func_78750_j();
|
||||
Vec3d vec3d = p_187102_3_.func_216347_e().func_178786_a(p_187102_2_.func_226277_ct_(), p_187102_2_.func_226278_cu_(), p_187102_2_.func_226281_cx_());
|
||||
this.field_78774_b.func_147297_a(new CUseEntityPacket(p_187102_2_, p_187102_4_, vec3d));
|
||||
|
||||
@@ -39,17 +39,27 @@
|
||||
this.field_187241_h.add(p_78873_1_);
|
||||
}
|
||||
|
||||
@@ -312,7 +313,8 @@
|
||||
@@ -305,14 +306,18 @@
|
||||
|
||||
public void func_228345_a_(MatrixStack p_228345_1_, IRenderTypeBuffer.Impl p_228345_2_, LightTexture p_228345_3_, ActiveRenderInfo p_228345_4_, float p_228345_5_) {
|
||||
p_228345_3_.func_205109_c();
|
||||
+ Runnable enable = () -> {
|
||||
RenderSystem.enableAlphaTest();
|
||||
RenderSystem.defaultAlphaFunc();
|
||||
RenderSystem.enableDepthTest();
|
||||
RenderSystem.enableFog();
|
||||
+ };
|
||||
RenderSystem.pushMatrix();
|
||||
RenderSystem.multMatrix(p_228345_1_.func_227866_c_().func_227870_a_());
|
||||
|
||||
- for(IParticleRenderType iparticlerendertype : field_215241_b) {
|
||||
+ for(IParticleRenderType iparticlerendertype : this.field_78876_b.keySet()) { // Forge: allow custom IParticleRenderType's
|
||||
+ if (iparticlerendertype == IParticleRenderType.field_217606_f) continue;
|
||||
+ enable.run(); //Forge: MC-168672 Make sure all render types have the correct GL state.
|
||||
Iterable<Particle> iterable = this.field_78876_b.get(iparticlerendertype);
|
||||
if (iterable != null) {
|
||||
RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
@@ -351,7 +353,7 @@
|
||||
@@ -351,7 +356,7 @@
|
||||
}
|
||||
|
||||
public void func_180533_a(BlockPos p_180533_1_, BlockState p_180533_2_) {
|
||||
@@ -58,7 +68,7 @@
|
||||
VoxelShape voxelshape = p_180533_2_.func_196954_c(this.field_78878_a, p_180533_1_);
|
||||
double d0 = 0.25D;
|
||||
voxelshape.func_197755_b((p_228348_3_, p_228348_5_, p_228348_7_, p_228348_9_, p_228348_11_, p_228348_13_) -> {
|
||||
@@ -423,6 +425,12 @@
|
||||
@@ -423,6 +428,12 @@
|
||||
return String.valueOf(this.field_78876_b.values().stream().mapToInt(Collection::size).sum());
|
||||
}
|
||||
|
||||
|
||||
@@ -6,10 +6,11 @@
|
||||
|
||||
+ @Deprecated //Forge: Model data argument
|
||||
public boolean func_228802_a_(ILightReader p_228802_1_, IBakedModel p_228802_2_, BlockState p_228802_3_, BlockPos p_228802_4_, MatrixStack p_228802_5_, IVertexBuilder p_228802_6_, boolean p_228802_7_, Random p_228802_8_, long p_228802_9_, int p_228802_11_) {
|
||||
- boolean flag = Minecraft.func_71379_u() && p_228802_3_.func_185906_d() == 0 && p_228802_2_.func_177555_b();
|
||||
+ return renderModel(p_228802_1_, p_228802_2_, p_228802_3_, p_228802_4_, p_228802_5_, p_228802_6_, p_228802_7_, p_228802_8_, p_228802_9_, p_228802_11_, net.minecraftforge.client.model.data.EmptyModelData.INSTANCE);
|
||||
+ }
|
||||
+ public boolean renderModel(ILightReader p_228802_1_, IBakedModel p_228802_2_, BlockState p_228802_3_, BlockPos p_228802_4_, MatrixStack p_228802_5_, IVertexBuilder p_228802_6_, boolean p_228802_7_, Random p_228802_8_, long p_228802_9_, int p_228802_11_, net.minecraftforge.client.model.data.IModelData modelData) {
|
||||
boolean flag = Minecraft.func_71379_u() && p_228802_3_.func_185906_d() == 0 && p_228802_2_.func_177555_b();
|
||||
+ boolean flag = Minecraft.func_71379_u() && p_228802_3_.getLightValue(p_228802_1_, p_228802_4_) == 0 && p_228802_2_.func_177555_b();
|
||||
Vec3d vec3d = p_228802_3_.func_191059_e(p_228802_1_, p_228802_4_);
|
||||
p_228802_5_.func_227861_a_(vec3d.field_72450_a, vec3d.field_72448_b, vec3d.field_72449_c);
|
||||
+ modelData = p_228802_2_.getModelData(p_228802_1_, p_228802_4_, p_228802_3_, modelData);
|
||||
@@ -79,7 +80,22 @@
|
||||
if (!list1.isEmpty()) {
|
||||
this.func_228798_a_(p_228806_1_, p_228806_3_, p_228806_4_, -1, p_228806_11_, true, p_228806_5_, p_228806_6_, list1, bitset);
|
||||
flag = true;
|
||||
@@ -208,7 +222,11 @@
|
||||
@@ -125,6 +139,14 @@
|
||||
f1 = 1.0F;
|
||||
f2 = 1.0F;
|
||||
}
|
||||
+ // FORGE: Apply diffuse lighting at render-time instead of baking it in
|
||||
+ if (p_228800_6_.shouldApplyDiffuseLighting()) {
|
||||
+ // TODO this should be handled by the forge lighting pipeline
|
||||
+ float l = net.minecraftforge.client.model.pipeline.LightUtil.diffuseLight(p_228800_6_.func_178210_d());
|
||||
+ f *= l;
|
||||
+ f1 *= l;
|
||||
+ f2 *= l;
|
||||
+ }
|
||||
|
||||
p_228800_4_.func_227890_a_(p_228800_5_, p_228800_6_, new float[]{p_228800_7_, p_228800_8_, p_228800_9_, p_228800_10_}, f, f1, f2, new int[]{p_228800_11_, p_228800_12_, p_228800_13_, p_228800_14_}, p_228800_15_, true);
|
||||
}
|
||||
@@ -208,17 +230,21 @@
|
||||
|
||||
}
|
||||
|
||||
@@ -91,3 +107,15 @@
|
||||
Random random = new Random();
|
||||
long i = 42L;
|
||||
|
||||
for(Direction direction : Direction.values()) {
|
||||
random.setSeed(42L);
|
||||
- func_228803_a_(p_228804_1_, p_228804_2_, p_228804_5_, p_228804_6_, p_228804_7_, p_228804_4_.func_200117_a(p_228804_3_, direction, random), p_228804_8_, p_228804_9_);
|
||||
+ func_228803_a_(p_228804_1_, p_228804_2_, p_228804_5_, p_228804_6_, p_228804_7_, p_228804_4_.getQuads(p_228804_3_, direction, random, modelData), p_228804_8_, p_228804_9_);
|
||||
}
|
||||
|
||||
random.setSeed(42L);
|
||||
- func_228803_a_(p_228804_1_, p_228804_2_, p_228804_5_, p_228804_6_, p_228804_7_, p_228804_4_.func_200117_a(p_228804_3_, (Direction)null, random), p_228804_8_, p_228804_9_);
|
||||
+ func_228803_a_(p_228804_1_, p_228804_2_, p_228804_5_, p_228804_6_, p_228804_7_, p_228804_4_.getQuads(p_228804_3_, (Direction)null, random, modelData), p_228804_8_, p_228804_9_);
|
||||
}
|
||||
|
||||
private static void func_228803_a_(MatrixStack.Entry p_228803_0_, IVertexBuilder p_228803_1_, float p_228803_2_, float p_228803_3_, float p_228803_4_, List<BakedQuad> p_228803_5_, int p_228803_6_, int p_228803_7_) {
|
||||
@@ -1,5 +1,14 @@
|
||||
--- a/net/minecraft/client/renderer/BlockRendererDispatcher.java
|
||||
+++ b/net/minecraft/client/renderer/BlockRendererDispatcher.java
|
||||
@@ -32,7 +32,7 @@
|
||||
public BlockRendererDispatcher(BlockModelShapes p_i46577_1_, BlockColors p_i46577_2_) {
|
||||
this.field_175028_a = p_i46577_1_;
|
||||
this.field_228790_e_ = p_i46577_2_;
|
||||
- this.field_175027_c = new BlockModelRenderer(this.field_228790_e_);
|
||||
+ this.field_175027_c = new net.minecraftforge.client.model.pipeline.ForgeBlockModelRenderer(this.field_228790_e_);
|
||||
this.field_175025_e = new FluidBlockRenderer();
|
||||
}
|
||||
|
||||
@@ -40,18 +40,26 @@
|
||||
return this.field_175028_a;
|
||||
}
|
||||
@@ -41,7 +50,7 @@
|
||||
BlockRenderType blockrendertype = p_228791_1_.func_185901_i();
|
||||
if (blockrendertype != BlockRenderType.INVISIBLE) {
|
||||
switch(blockrendertype) {
|
||||
@@ -89,7 +101,7 @@
|
||||
@@ -89,10 +101,11 @@
|
||||
float f = (float)(i >> 16 & 255) / 255.0F;
|
||||
float f1 = (float)(i >> 8 & 255) / 255.0F;
|
||||
float f2 = (float)(i & 255) / 255.0F;
|
||||
@@ -49,8 +58,13 @@
|
||||
+ this.field_175027_c.renderModel(p_228791_2_.func_227866_c_(), p_228791_3_.getBuffer(RenderTypeLookup.func_228394_b_(p_228791_1_)), p_228791_1_, ibakedmodel, f, f1, f2, p_228791_4_, p_228791_5_, modelData);
|
||||
break;
|
||||
case ENTITYBLOCK_ANIMATED:
|
||||
ItemStackTileEntityRenderer.field_147719_a.func_228364_a_(new ItemStack(p_228791_1_.func_177230_c()), p_228791_2_, p_228791_3_, p_228791_4_, p_228791_5_);
|
||||
@@ -101,4 +113,9 @@
|
||||
- ItemStackTileEntityRenderer.field_147719_a.func_228364_a_(new ItemStack(p_228791_1_.func_177230_c()), p_228791_2_, p_228791_3_, p_228791_4_, p_228791_5_);
|
||||
+ ItemStack stack = new ItemStack(p_228791_1_.func_177230_c());
|
||||
+ stack.func_77973_b().getItemStackTileEntityRenderer().func_228364_a_(stack, p_228791_2_, p_228791_3_, p_228791_4_, p_228791_5_);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -101,4 +114,9 @@
|
||||
public void func_195410_a(IResourceManager p_195410_1_) {
|
||||
this.field_175025_e.func_178268_a();
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/client/renderer/BufferBuilder.java
|
||||
+++ b/net/minecraft/client/renderer/BufferBuilder.java
|
||||
@@ -121,7 +121,6 @@
|
||||
@@ -122,7 +122,6 @@
|
||||
|
||||
bitset.set(l);
|
||||
}
|
||||
@@ -8,16 +8,25 @@
|
||||
}
|
||||
|
||||
private void func_227829_a_(FloatBuffer p_227829_1_, int p_227829_2_) {
|
||||
@@ -364,4 +363,14 @@
|
||||
@@ -298,6 +297,7 @@
|
||||
}
|
||||
|
||||
ByteBuffer bytebuffer = this.field_179001_a.slice();
|
||||
+ bytebuffer.order(this.field_179001_a.order()); // FORGE: Fix incorrect byte order
|
||||
((Buffer)this.field_179001_a).clear();
|
||||
return Pair.of(bufferbuilder$drawstate, bytebuffer);
|
||||
}
|
||||
@@ -365,4 +365,15 @@
|
||||
this.field_179018_e = p_i225907_2_;
|
||||
}
|
||||
}
|
||||
+
|
||||
+ public void putBulkData(ByteBuffer buffer) {
|
||||
+ func_181670_b(buffer.limit() + this.field_179011_q.func_177338_f());
|
||||
+ this.field_179001_a.position(this.field_178997_d * this.field_179011_q.func_177338_f());
|
||||
+ ((Buffer)this.field_179001_a).position(this.field_178997_d * this.field_179011_q.func_177338_f());
|
||||
+ this.field_179001_a.put(buffer);
|
||||
+ this.field_178997_d += buffer.limit() / this.field_179011_q.func_177338_f();
|
||||
+ this.field_227824_l_ += buffer.limit();
|
||||
+ }
|
||||
+
|
||||
+ // Forge start
|
||||
|
||||
@@ -35,14 +35,14 @@
|
||||
if (flag) {
|
||||
float f5 = hand == Hand.MAIN_HAND ? f : 0.0F;
|
||||
float f2 = 1.0F - MathHelper.func_219799_g(p_228396_1_, this.field_187470_g, this.field_187469_f);
|
||||
+ if(!net.minecraftforge.client.ForgeHooksClient.renderSpecificFirstPersonHand(Hand.MAIN_HAND, p_228396_2_, p_228396_1_, f1, f3, f5, this.field_187467_d))
|
||||
+ if(!net.minecraftforge.client.ForgeHooksClient.renderSpecificFirstPersonHand(Hand.MAIN_HAND, p_228396_2_, p_228396_3_, p_228396_5_, p_228396_1_, f1, f5, f2, this.field_187467_d))
|
||||
this.func_228405_a_(p_228396_4_, p_228396_1_, f1, Hand.MAIN_HAND, f5, this.field_187467_d, f2, p_228396_2_, p_228396_3_, p_228396_5_);
|
||||
}
|
||||
|
||||
if (flag1) {
|
||||
float f6 = hand == Hand.OFF_HAND ? f : 0.0F;
|
||||
float f7 = 1.0F - MathHelper.func_219799_g(p_228396_1_, this.field_187472_i, this.field_187471_h);
|
||||
+ if(!net.minecraftforge.client.ForgeHooksClient.renderSpecificFirstPersonHand(Hand.OFF_HAND, p_228396_2_, p_228396_1_, f1, f4, f6, this.field_187468_e))
|
||||
+ if(!net.minecraftforge.client.ForgeHooksClient.renderSpecificFirstPersonHand(Hand.OFF_HAND, p_228396_2_, p_228396_3_, p_228396_5_, p_228396_1_, f1, f6, f7, this.field_187468_e))
|
||||
this.func_228405_a_(p_228396_4_, p_228396_1_, f1, Hand.OFF_HAND, f6, this.field_187468_e, f7, p_228396_2_, p_228396_3_, p_228396_5_);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,19 +20,19 @@
|
||||
- this.func_228797_a_(p_228796_3_, d0 + 0.0D, d1 + (double)f8, d2 + 1.0D, f25, f26, f27, f14, f18, j);
|
||||
- this.func_228797_a_(p_228796_3_, d0 + 1.0D, d1 + (double)f9, d2 + 1.0D, f25, f26, f27, f15, f19, j);
|
||||
- this.func_228797_a_(p_228796_3_, d0 + 1.0D, d1 + (double)f10, d2 + 0.0D, f25, f26, f27, f16, f20, j);
|
||||
+ this.func_228797_a_(p_228796_3_, d0 + 0.0D, d1 + (double)f7, d2 + 0.0D, f25, f26, f27, alpha, f13, f17, j);
|
||||
+ this.func_228797_a_(p_228796_3_, d0 + 0.0D, d1 + (double)f8, d2 + 1.0D, f25, f26, f27, alpha, f14, f18, j);
|
||||
+ this.func_228797_a_(p_228796_3_, d0 + 1.0D, d1 + (double)f9, d2 + 1.0D, f25, f26, f27, alpha, f15, f19, j);
|
||||
+ this.func_228797_a_(p_228796_3_, d0 + 1.0D, d1 + (double)f10, d2 + 0.0D, f25, f26, f27, alpha, f16, f20, j);
|
||||
+ this.vertex(p_228796_3_, d0 + 0.0D, d1 + (double)f7, d2 + 0.0D, f25, f26, f27, alpha, f13, f17, j);
|
||||
+ this.vertex(p_228796_3_, d0 + 0.0D, d1 + (double)f8, d2 + 1.0D, f25, f26, f27, alpha, f14, f18, j);
|
||||
+ this.vertex(p_228796_3_, d0 + 1.0D, d1 + (double)f9, d2 + 1.0D, f25, f26, f27, alpha, f15, f19, j);
|
||||
+ this.vertex(p_228796_3_, d0 + 1.0D, d1 + (double)f10, d2 + 0.0D, f25, f26, f27, alpha, f16, f20, j);
|
||||
if (p_228796_4_.func_205586_a(p_228796_1_, p_228796_2_.func_177984_a())) {
|
||||
- this.func_228797_a_(p_228796_3_, d0 + 0.0D, d1 + (double)f7, d2 + 0.0D, f25, f26, f27, f13, f17, j);
|
||||
- this.func_228797_a_(p_228796_3_, d0 + 1.0D, d1 + (double)f10, d2 + 0.0D, f25, f26, f27, f16, f20, j);
|
||||
- this.func_228797_a_(p_228796_3_, d0 + 1.0D, d1 + (double)f9, d2 + 1.0D, f25, f26, f27, f15, f19, j);
|
||||
- this.func_228797_a_(p_228796_3_, d0 + 0.0D, d1 + (double)f8, d2 + 1.0D, f25, f26, f27, f14, f18, j);
|
||||
+ this.func_228797_a_(p_228796_3_, d0 + 0.0D, d1 + (double)f7, d2 + 0.0D, f25, f26, f27, alpha, f13, f17, j);
|
||||
+ this.func_228797_a_(p_228796_3_, d0 + 1.0D, d1 + (double)f10, d2 + 0.0D, f25, f26, f27, alpha, f16, f20, j);
|
||||
+ this.func_228797_a_(p_228796_3_, d0 + 1.0D, d1 + (double)f9, d2 + 1.0D, f25, f26, f27, alpha, f15, f19, j);
|
||||
+ this.func_228797_a_(p_228796_3_, d0 + 0.0D, d1 + (double)f8, d2 + 1.0D, f25, f26, f27, alpha, f14, f18, j);
|
||||
+ this.vertex(p_228796_3_, d0 + 0.0D, d1 + (double)f7, d2 + 0.0D, f25, f26, f27, alpha, f13, f17, j);
|
||||
+ this.vertex(p_228796_3_, d0 + 1.0D, d1 + (double)f10, d2 + 0.0D, f25, f26, f27, alpha, f16, f20, j);
|
||||
+ this.vertex(p_228796_3_, d0 + 1.0D, d1 + (double)f9, d2 + 1.0D, f25, f26, f27, alpha, f15, f19, j);
|
||||
+ this.vertex(p_228796_3_, d0 + 0.0D, d1 + (double)f8, d2 + 1.0D, f25, f26, f27, alpha, f14, f18, j);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,14 +44,28 @@
|
||||
- this.func_228797_a_(p_228796_3_, d0, d1 + (double)f12, d2, f40, f41, f42, f34, f37, i1);
|
||||
- this.func_228797_a_(p_228796_3_, d0 + 1.0D, d1 + (double)f12, d2, f40, f41, f42, f35, f37, i1);
|
||||
- this.func_228797_a_(p_228796_3_, d0 + 1.0D, d1 + (double)f12, d2 + 1.0D, f40, f41, f42, f35, f39, i1);
|
||||
+ this.func_228797_a_(p_228796_3_, d0, d1 + (double)f12, d2 + 1.0D, f40, f41, f42, alpha, f34, f39, i1);
|
||||
+ this.func_228797_a_(p_228796_3_, d0, d1 + (double)f12, d2, f40, f41, f42, alpha, f34, f37, i1);
|
||||
+ this.func_228797_a_(p_228796_3_, d0 + 1.0D, d1 + (double)f12, d2, f40, f41, f42, alpha, f35, f37, i1);
|
||||
+ this.func_228797_a_(p_228796_3_, d0 + 1.0D, d1 + (double)f12, d2 + 1.0D, f40, f41, f42, alpha, f35, f39, i1);
|
||||
+ this.vertex(p_228796_3_, d0, d1 + (double)f12, d2 + 1.0D, f40, f41, f42, alpha, f34, f39, i1);
|
||||
+ this.vertex(p_228796_3_, d0, d1 + (double)f12, d2, f40, f41, f42, alpha, f34, f37, i1);
|
||||
+ this.vertex(p_228796_3_, d0 + 1.0D, d1 + (double)f12, d2, f40, f41, f42, alpha, f35, f37, i1);
|
||||
+ this.vertex(p_228796_3_, d0 + 1.0D, d1 + (double)f12, d2 + 1.0D, f40, f41, f42, alpha, f35, f39, i1);
|
||||
flag7 = true;
|
||||
}
|
||||
|
||||
@@ -239,15 +240,15 @@
|
||||
@@ -222,10 +223,9 @@
|
||||
flag7 = true;
|
||||
BlockPos blockpos = p_228796_2_.func_177972_a(direction);
|
||||
TextureAtlasSprite textureatlassprite2 = atextureatlassprite[1];
|
||||
- if (!flag) {
|
||||
- Block block = p_228796_1_.func_180495_p(blockpos).func_177230_c();
|
||||
- if (block == Blocks.field_150359_w || block instanceof StainedGlassBlock) {
|
||||
- textureatlassprite2 = this.field_187501_d;
|
||||
+ if (atextureatlassprite[2] != null) {
|
||||
+ if (p_228796_1_.func_180495_p(blockpos).shouldDisplayFluidOverlay(p_228796_1_, blockpos, p_228796_4_)) {
|
||||
+ textureatlassprite2 = atextureatlassprite[2];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -239,15 +239,15 @@
|
||||
float f31 = 1.0F * f30 * f;
|
||||
float f32 = 1.0F * f30 * f1;
|
||||
float f33 = 1.0F * f30 * f2;
|
||||
@@ -59,33 +73,34 @@
|
||||
- this.func_228797_a_(p_228796_3_, d5, d1 + (double)f38, d6, f31, f32, f33, f49, f28, k);
|
||||
- this.func_228797_a_(p_228796_3_, d5, d1 + (double)f12, d6, f31, f32, f33, f49, f29, k);
|
||||
- this.func_228797_a_(p_228796_3_, d3, d1 + (double)f12, d4, f31, f32, f33, f48, f29, k);
|
||||
+ this.func_228797_a_(p_228796_3_, d3, d1 + (double)f36, d4, f31, f32, f33, alpha, f48, f50, k);
|
||||
+ this.func_228797_a_(p_228796_3_, d5, d1 + (double)f38, d6, f31, f32, f33, alpha, f49, f28, k);
|
||||
+ this.func_228797_a_(p_228796_3_, d5, d1 + (double)f12, d6, f31, f32, f33, alpha, f49, f29, k);
|
||||
+ this.func_228797_a_(p_228796_3_, d3, d1 + (double)f12, d4, f31, f32, f33, alpha, f48, f29, k);
|
||||
if (textureatlassprite2 != this.field_187501_d) {
|
||||
- if (textureatlassprite2 != this.field_187501_d) {
|
||||
- this.func_228797_a_(p_228796_3_, d3, d1 + (double)f12, d4, f31, f32, f33, f48, f29, k);
|
||||
- this.func_228797_a_(p_228796_3_, d5, d1 + (double)f12, d6, f31, f32, f33, f49, f29, k);
|
||||
- this.func_228797_a_(p_228796_3_, d5, d1 + (double)f38, d6, f31, f32, f33, f49, f28, k);
|
||||
- this.func_228797_a_(p_228796_3_, d3, d1 + (double)f36, d4, f31, f32, f33, f48, f50, k);
|
||||
+ this.func_228797_a_(p_228796_3_, d3, d1 + (double)f12, d4, f31, f32, f33, alpha, f48, f29, k);
|
||||
+ this.func_228797_a_(p_228796_3_, d5, d1 + (double)f12, d6, f31, f32, f33, alpha, f49, f29, k);
|
||||
+ this.func_228797_a_(p_228796_3_, d5, d1 + (double)f38, d6, f31, f32, f33, alpha, f49, f28, k);
|
||||
+ this.func_228797_a_(p_228796_3_, d3, d1 + (double)f36, d4, f31, f32, f33, alpha, f48, f50, k);
|
||||
+ this.vertex(p_228796_3_, d3, d1 + (double)f36, d4, f31, f32, f33, alpha, f48, f50, k);
|
||||
+ this.vertex(p_228796_3_, d5, d1 + (double)f38, d6, f31, f32, f33, alpha, f49, f28, k);
|
||||
+ this.vertex(p_228796_3_, d5, d1 + (double)f12, d6, f31, f32, f33, alpha, f49, f29, k);
|
||||
+ this.vertex(p_228796_3_, d3, d1 + (double)f12, d4, f31, f32, f33, alpha, f48, f29, k);
|
||||
+ if (textureatlassprite2 != atextureatlassprite[2]) {
|
||||
+ this.vertex(p_228796_3_, d3, d1 + (double)f12, d4, f31, f32, f33, alpha, f48, f29, k);
|
||||
+ this.vertex(p_228796_3_, d5, d1 + (double)f12, d6, f31, f32, f33, alpha, f49, f29, k);
|
||||
+ this.vertex(p_228796_3_, d5, d1 + (double)f38, d6, f31, f32, f33, alpha, f49, f28, k);
|
||||
+ this.vertex(p_228796_3_, d3, d1 + (double)f36, d4, f31, f32, f33, alpha, f48, f50, k);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -256,10 +257,15 @@
|
||||
@@ -256,10 +256,15 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ @Deprecated
|
||||
private void func_228797_a_(IVertexBuilder p_228797_1_, double p_228797_2_, double p_228797_4_, double p_228797_6_, float p_228797_8_, float p_228797_9_, float p_228797_10_, float p_228797_11_, float p_228797_12_, int p_228797_13_) {
|
||||
- p_228797_1_.func_225582_a_(p_228797_2_, p_228797_4_, p_228797_6_).func_227885_a_(p_228797_8_, p_228797_9_, p_228797_10_, 1.0F).func_225583_a_(p_228797_11_, p_228797_12_).func_227886_a_(p_228797_13_).func_225584_a_(0.0F, 1.0F, 0.0F).func_181675_d();
|
||||
+ func_228797_a_(p_228797_1_, p_228797_2_, p_228797_4_, p_228797_6_, p_228797_8_, p_228797_9_, p_228797_10_, 1.0F, p_228797_11_, p_228797_12_, p_228797_13_);
|
||||
+ vertex(p_228797_1_, p_228797_2_, p_228797_4_, p_228797_6_, p_228797_8_, p_228797_9_, p_228797_10_, 1.0F, p_228797_11_, p_228797_12_, p_228797_13_);
|
||||
}
|
||||
|
||||
+ private void func_228797_a_(IVertexBuilder p_228797_1_, double p_228797_2_, double p_228797_4_, double p_228797_6_, float p_228797_8_, float p_228797_9_, float p_228797_10_, float alpha, float p_228797_11_, float p_228797_12_, int p_228797_13_) {
|
||||
+ private void vertex(IVertexBuilder p_228797_1_, double p_228797_2_, double p_228797_4_, double p_228797_6_, float p_228797_8_, float p_228797_9_, float p_228797_10_, float alpha, float p_228797_11_, float p_228797_12_, int p_228797_13_) {
|
||||
+ p_228797_1_.func_225582_a_(p_228797_2_, p_228797_4_, p_228797_6_).func_227885_a_(p_228797_8_, p_228797_9_, p_228797_10_, alpha).func_225583_a_(p_228797_11_, p_228797_12_).func_227886_a_(p_228797_13_).func_225584_a_(0.0F, 1.0F, 0.0F).func_181675_d();
|
||||
+ }
|
||||
+
|
||||
|
||||
@@ -18,15 +18,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -358,6 +360,7 @@
|
||||
}
|
||||
|
||||
boolean flag = this.field_78531_r.func_175606_aa() instanceof LivingEntity && ((LivingEntity)this.field_78531_r.func_175606_aa()).func_70608_bn();
|
||||
+ if (!net.minecraftforge.client.ForgeHooksClient.renderFirstPersonHand(field_78531_r.field_71438_f, p_228381_1_, p_228381_3_))
|
||||
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_178889_l() != GameType.SPECTATOR) {
|
||||
this.field_78513_d.func_205109_c();
|
||||
this.field_78516_c.func_228396_a_(p_228381_3_, p_228381_1_, this.field_228374_i_.func_228487_b_(), this.field_78531_r.field_71439_g, this.field_78531_r.func_175598_ae().func_229085_a_(this.field_78531_r.field_71439_g, p_228381_3_));
|
||||
@@ -475,7 +478,7 @@
|
||||
@@ -475,7 +477,7 @@
|
||||
}
|
||||
} else if (this.field_78531_r.field_71462_r != null) {
|
||||
try {
|
||||
@@ -35,7 +27,7 @@
|
||||
} catch (Throwable throwable) {
|
||||
CrashReport crashreport1 = CrashReport.func_85055_a(throwable, "Rendering screen");
|
||||
CrashReportCategory crashreportcategory1 = crashreport1.func_85058_a("Screen render details");
|
||||
@@ -588,9 +591,16 @@
|
||||
@@ -588,9 +590,16 @@
|
||||
Matrix4f matrix4f = matrixstack.func_227866_c_().func_227870_a_();
|
||||
this.func_228379_a_(matrix4f);
|
||||
activerenderinfo.func_216772_a(this.field_78531_r.field_71441_e, (Entity)(this.field_78531_r.func_175606_aa() == null ? this.field_78531_r.field_71439_g : this.field_78531_r.func_175606_aa()), this.field_78531_r.field_71474_y.field_74320_O > 0, this.field_78531_r.field_71474_y.field_74320_O == 2, p_228378_1_);
|
||||
@@ -48,11 +40,11 @@
|
||||
p_228378_4_.func_227863_a_(Vector3f.field_229181_d_.func_229187_a_(activerenderinfo.func_216778_f() + 180.0F));
|
||||
this.field_78531_r.field_71438_f.func_228426_a_(p_228378_4_, p_228378_1_, p_228378_2_, flag, activerenderinfo, this, this.field_78513_d, matrix4f);
|
||||
+ this.field_78531_r.func_213239_aq().func_219895_b("forge_render_last");
|
||||
+ net.minecraftforge.client.ForgeHooksClient.dispatchRenderLast(this.field_78531_r.field_71438_f, p_228378_4_, p_228378_2_);
|
||||
+ net.minecraftforge.client.ForgeHooksClient.dispatchRenderLast(this.field_78531_r.field_71438_f, p_228378_4_, p_228378_1_, matrix4f, p_228378_2_);
|
||||
this.field_78531_r.func_213239_aq().func_219895_b("hand");
|
||||
if (this.field_175074_C) {
|
||||
RenderSystem.clear(256, Minecraft.field_142025_a);
|
||||
@@ -670,4 +680,9 @@
|
||||
@@ -670,4 +679,9 @@
|
||||
public OverlayTexture func_228385_m_() {
|
||||
return this.field_228375_t_;
|
||||
}
|
||||
|
||||
@@ -9,36 +9,34 @@
|
||||
|
||||
for(Item item : Registry.field_212630_s) {
|
||||
if (!field_195411_c.contains(item)) {
|
||||
@@ -70,6 +70,10 @@
|
||||
}
|
||||
|
||||
private void func_229114_a_(IBakedModel p_229114_1_, ItemStack p_229114_2_, int p_229114_3_, int p_229114_4_, MatrixStack p_229114_5_, IVertexBuilder p_229114_6_) {
|
||||
+ if (false && net.minecraftforge.common.ForgeConfig.CLIENT.allowEmissiveItems.get()) { //TODO: Find way to re-introduce emissive items.
|
||||
+ net.minecraftforge.client.ForgeHooksClient.renderLitItem(this, p_229114_5_, p_229114_6_, p_229114_1_, p_229114_2_);
|
||||
+ return;
|
||||
+ }
|
||||
Random random = new Random();
|
||||
long i = 42L;
|
||||
|
||||
@@ -91,7 +95,7 @@
|
||||
@@ -91,7 +91,7 @@
|
||||
p_229111_8_ = this.field_175059_m.func_178083_a().func_174953_a(new ModelResourceLocation("minecraft:trident#inventory"));
|
||||
}
|
||||
|
||||
- p_229111_8_.func_177552_f().func_181688_b(p_229111_2_).func_228830_a_(p_229111_3_, p_229111_4_);
|
||||
+ net.minecraftforge.client.ForgeHooksClient.handleCameraTransforms(p_229111_4_, p_229111_8_, p_229111_2_, p_229111_3_);
|
||||
+ p_229111_8_ = net.minecraftforge.client.ForgeHooksClient.handleCameraTransforms(p_229111_4_, p_229111_8_, p_229111_2_, p_229111_3_);
|
||||
p_229111_4_.func_227861_a_(-0.5D, -0.5D, -0.5D);
|
||||
if (!p_229111_8_.func_188618_c() && (p_229111_1_.func_77973_b() != Items.field_203184_eO || flag1)) {
|
||||
RenderType rendertype = RenderTypeLookup.func_228389_a_(p_229111_1_);
|
||||
@@ -105,7 +109,7 @@
|
||||
@@ -105,7 +105,7 @@
|
||||
IVertexBuilder ivertexbuilder = func_229113_a_(p_229111_5_, rendertype1, true, p_229111_1_.func_77962_s());
|
||||
this.func_229114_a_(p_229111_8_, p_229111_1_, p_229111_6_, p_229111_7_, p_229111_4_, ivertexbuilder);
|
||||
} else {
|
||||
- ItemStackTileEntityRenderer.field_147719_a.func_228364_a_(p_229111_1_, p_229111_4_, p_229111_5_, p_229111_6_, p_229111_7_);
|
||||
+ p_229111_1_.func_77973_b().getTileEntityItemStackRenderer().func_228364_a_(p_229111_1_, p_229111_4_, p_229111_5_, p_229111_6_, p_229111_7_);
|
||||
+ p_229111_1_.func_77973_b().getItemStackTileEntityRenderer().func_228364_a_(p_229111_1_, p_229111_4_, p_229111_5_, p_229111_6_, p_229111_7_);
|
||||
}
|
||||
|
||||
p_229111_4_.func_227865_b_();
|
||||
@@ -216,6 +220,7 @@
|
||||
@@ -129,7 +129,7 @@
|
||||
float f = (float)(i >> 16 & 255) / 255.0F;
|
||||
float f1 = (float)(i >> 8 & 255) / 255.0F;
|
||||
float f2 = (float)(i & 255) / 255.0F;
|
||||
- p_229112_2_.func_227889_a_(matrixstack$entry, bakedquad, f, f1, f2, p_229112_5_, p_229112_6_);
|
||||
+ p_229112_2_.addVertexData(matrixstack$entry, bakedquad, f, f1, f2, p_229112_5_, p_229112_6_, true);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -215,6 +215,7 @@
|
||||
crashreportcategory.func_189529_a("Item Type", () -> {
|
||||
return String.valueOf((Object)p_184391_2_.func_77973_b());
|
||||
});
|
||||
@@ -46,7 +44,7 @@
|
||||
crashreportcategory.func_189529_a("Item Damage", () -> {
|
||||
return String.valueOf(p_184391_2_.func_77952_i());
|
||||
});
|
||||
@@ -247,18 +252,16 @@
|
||||
@@ -246,18 +247,16 @@
|
||||
irendertypebuffer$impl.func_228461_a_();
|
||||
}
|
||||
|
||||
@@ -69,7 +67,7 @@
|
||||
this.func_181565_a(bufferbuilder, p_180453_3_ + 2, p_180453_4_ + 13, 13, 2, 0, 0, 0, 255);
|
||||
this.func_181565_a(bufferbuilder, p_180453_3_ + 2, p_180453_4_ + 13, i, 1, j >> 16 & 255, j >> 8 & 255, j & 255, 255);
|
||||
RenderSystem.enableBlend();
|
||||
@@ -296,4 +299,9 @@
|
||||
@@ -295,4 +294,9 @@
|
||||
public void func_195410_a(IResourceManager p_195410_1_) {
|
||||
this.field_175059_m.func_178085_b();
|
||||
}
|
||||
|
||||
@@ -9,3 +9,12 @@
|
||||
vector3f1.func_195901_a(0.0F, 1.0F);
|
||||
if (f2 > 0.0F) {
|
||||
float f10 = Math.max(vector3f1.func_195899_a(), Math.max(vector3f1.func_195900_b(), vector3f1.func_195902_c()));
|
||||
@@ -169,7 +171,7 @@
|
||||
}
|
||||
|
||||
public static int func_228450_a_(int p_228450_0_) {
|
||||
- return p_228450_0_ >> 4 & '\uffff';
|
||||
+ return (p_228450_0_ & 0xFFFF) >> 4; // Forge: Fix fullbright quads showing dark artifacts. Reported as MC-169806
|
||||
}
|
||||
|
||||
public static int func_228454_b_(int p_228454_0_) {
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/client/renderer/RenderState.java
|
||||
+++ b/net/minecraft/client/renderer/RenderState.java
|
||||
@@ -360,7 +360,7 @@
|
||||
private final OptionalDouble field_228587_Q_;
|
||||
|
||||
public LineState(OptionalDouble p_i225982_1_) {
|
||||
- super("alpha", () -> {
|
||||
+ super("line_width", () -> { // FORGE: fix MC-167447
|
||||
if (!Objects.equals(p_i225982_1_, OptionalDouble.of(1.0D))) {
|
||||
if (p_i225982_1_.isPresent()) {
|
||||
RenderSystem.lineWidth((float)p_i225982_1_.getAsDouble());
|
||||
@@ -46,8 +46,8 @@
|
||||
|
||||
+ // FORGE START
|
||||
+
|
||||
+ private static final Map<Block, java.util.function.Predicate<RenderType>> blockRenderChecks = Maps.newHashMap();
|
||||
+ private static final Map<Fluid, java.util.function.Predicate<RenderType>> fluidRenderChecks = Maps.newHashMap();
|
||||
+ private static final Map<net.minecraftforge.registries.IRegistryDelegate<Block>, java.util.function.Predicate<RenderType>> blockRenderChecks = Maps.newHashMap();
|
||||
+ private static final Map<net.minecraftforge.registries.IRegistryDelegate<Fluid>, java.util.function.Predicate<RenderType>> fluidRenderChecks = Maps.newHashMap();
|
||||
+ static {
|
||||
+ field_228386_a_.forEach(RenderTypeLookup::setRenderLayer);
|
||||
+ field_228387_b_.forEach(RenderTypeLookup::setRenderLayer);
|
||||
@@ -60,7 +60,7 @@
|
||||
+ } else {
|
||||
+ java.util.function.Predicate<RenderType> rendertype;
|
||||
+ synchronized (RenderTypeLookup.class) {
|
||||
+ rendertype = blockRenderChecks.get(block);
|
||||
+ rendertype = blockRenderChecks.get(block.delegate);
|
||||
+ }
|
||||
+ return rendertype != null ? rendertype.test(type) : type == RenderType.func_228639_c_();
|
||||
+ }
|
||||
@@ -69,7 +69,7 @@
|
||||
+ public static boolean canRenderInLayer(IFluidState fluid, RenderType type) {
|
||||
+ java.util.function.Predicate<RenderType> rendertype;
|
||||
+ synchronized (RenderTypeLookup.class) {
|
||||
+ rendertype = fluidRenderChecks.get(fluid.func_206886_c());
|
||||
+ rendertype = fluidRenderChecks.get(fluid.func_206886_c().delegate);
|
||||
+ }
|
||||
+ return rendertype != null ? rendertype.test(type) : type == RenderType.func_228639_c_();
|
||||
+ }
|
||||
@@ -80,7 +80,7 @@
|
||||
+ }
|
||||
+
|
||||
+ public static synchronized void setRenderLayer(Block block, java.util.function.Predicate<RenderType> predicate) {
|
||||
+ blockRenderChecks.put(block, predicate);
|
||||
+ blockRenderChecks.put(block.delegate, predicate);
|
||||
+ }
|
||||
+
|
||||
+ public static void setRenderLayer(Fluid fluid, RenderType type) {
|
||||
@@ -89,7 +89,7 @@
|
||||
+ }
|
||||
+
|
||||
+ public static synchronized void setRenderLayer(Fluid fluid, java.util.function.Predicate<RenderType> predicate) {
|
||||
+ fluidRenderChecks.put(fluid, predicate);
|
||||
+ fluidRenderChecks.put(fluid.delegate, predicate);
|
||||
+ }
|
||||
+
|
||||
public static void func_228393_a_(boolean p_228393_0_) {
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
this.func_174967_a(p_228426_3_ + l1);
|
||||
iprofiler.func_219895_b("terrain");
|
||||
this.func_228441_a_(RenderType.func_228639_c_(), p_228426_1_, d0, d1, d2);
|
||||
+ this.field_72777_q.func_209506_al().func_229356_a_(AtlasTexture.field_110575_b).func_174937_a(false, this.field_72777_q.field_71474_y.field_151442_I > 0); // FORGE: fix flickering leaves when mods mess up the blurMipmap settings
|
||||
+ this.field_72777_q.func_209506_al().func_229356_a_(AtlasTexture.field_110575_b).setBlurMipmap(false, this.field_72777_q.field_71474_y.field_151442_I > 0); // FORGE: fix flickering leaves when mods mess up the blurMipmap settings
|
||||
this.func_228441_a_(RenderType.func_228641_d_(), p_228426_1_, d0, d1, d2);
|
||||
+ this.field_72777_q.func_209506_al().func_229356_a_(AtlasTexture.field_110575_b).restoreLastBlurMipmap();
|
||||
this.func_228441_a_(RenderType.func_228643_e_(), p_228426_1_, d0, d1, d2);
|
||||
@@ -68,7 +68,7 @@
|
||||
BlockPos blockpos = ((BlockRayTraceResult)raytraceresult).func_216350_a();
|
||||
BlockState blockstate = this.field_72769_h.func_180495_p(blockpos);
|
||||
- if (!blockstate.func_196958_f() && this.field_72769_h.func_175723_af().func_177746_a(blockpos)) {
|
||||
+ if (!net.minecraftforge.client.ForgeHooksClient.onDrawBlockHighlight(this, p_228426_6_, field_72777_q.field_71476_x, 0, p_228426_2_))
|
||||
+ if (!net.minecraftforge.client.ForgeHooksClient.onDrawBlockHighlight(this, p_228426_6_, field_72777_q.field_71476_x, p_228426_2_, p_228426_1_, irendertypebuffer$impl))
|
||||
+ if (!blockstate.isAir(this.field_72769_h, blockpos) && this.field_72769_h.func_175723_af().func_177746_a(blockpos)) {
|
||||
IVertexBuilder ivertexbuilder2 = irendertypebuffer$impl.getBuffer(RenderType.func_228659_m_());
|
||||
this.func_228429_a_(p_228426_1_, ivertexbuilder2, p_228426_6_.func_216773_g(), d0, d1, d2, blockpos, blockstate);
|
||||
@@ -85,7 +85,38 @@
|
||||
if (this.field_72777_q.field_71441_e.field_73011_w.func_186058_p() == DimensionType.field_223229_c_) {
|
||||
this.func_228444_b_(p_228424_1_);
|
||||
} else if (this.field_72777_q.field_71441_e.field_73011_w.func_76569_d()) {
|
||||
@@ -2283,8 +2298,8 @@
|
||||
@@ -1977,7 +1992,12 @@
|
||||
this.field_175008_n.func_217628_a(p_215319_1_, p_215319_2_, p_215319_3_, p_215319_4_);
|
||||
}
|
||||
|
||||
+ @Deprecated // Forge: use item aware function below
|
||||
public void func_184377_a(@Nullable SoundEvent p_184377_1_, BlockPos p_184377_2_) {
|
||||
+ this.playRecord(p_184377_1_, p_184377_2_, p_184377_1_ == null? null : MusicDiscItem.func_185074_a(p_184377_1_));
|
||||
+ }
|
||||
+
|
||||
+ public void playRecord(@Nullable SoundEvent p_184377_1_, BlockPos p_184377_2_, @Nullable MusicDiscItem musicDiscItem) {
|
||||
ISound isound = this.field_147593_P.get(p_184377_2_);
|
||||
if (isound != null) {
|
||||
this.field_72777_q.func_147118_V().func_147683_b(isound);
|
||||
@@ -1985,7 +2005,7 @@
|
||||
}
|
||||
|
||||
if (p_184377_1_ != null) {
|
||||
- MusicDiscItem musicdiscitem = MusicDiscItem.func_185074_a(p_184377_1_);
|
||||
+ MusicDiscItem musicdiscitem = musicDiscItem;
|
||||
if (musicdiscitem != null) {
|
||||
this.field_72777_q.field_71456_v.func_73833_a(musicdiscitem.func_200299_h().func_150254_d());
|
||||
}
|
||||
@@ -2133,7 +2153,7 @@
|
||||
break;
|
||||
case 1010:
|
||||
if (Item.func_150899_d(p_180439_4_) instanceof MusicDiscItem) {
|
||||
- this.func_184377_a(((MusicDiscItem)Item.func_150899_d(p_180439_4_)).func_185075_h(), p_180439_3_);
|
||||
+ this.playRecord(((MusicDiscItem)Item.func_150899_d(p_180439_4_)).func_185075_h(), p_180439_3_, (MusicDiscItem) Item.func_150899_d(p_180439_4_));
|
||||
} else {
|
||||
this.func_184377_a((SoundEvent)null, p_180439_3_);
|
||||
}
|
||||
@@ -2283,8 +2303,8 @@
|
||||
break;
|
||||
case 2001:
|
||||
BlockState blockstate = Block.func_196257_b(p_180439_4_);
|
||||
@@ -96,7 +127,16 @@
|
||||
this.field_72769_h.func_184156_a(p_180439_3_, soundtype.func_185845_c(), SoundCategory.BLOCKS, (soundtype.func_185843_a() + 1.0F) / 2.0F, soundtype.func_185847_b() * 0.8F, false);
|
||||
}
|
||||
|
||||
@@ -2445,6 +2460,11 @@
|
||||
@@ -2432,7 +2452,7 @@
|
||||
} else {
|
||||
int i = p_228420_0_.func_226658_a_(LightType.SKY, p_228420_2_);
|
||||
int j = p_228420_0_.func_226658_a_(LightType.BLOCK, p_228420_2_);
|
||||
- int k = p_228420_1_.func_185906_d();
|
||||
+ int k = p_228420_1_.getLightValue(p_228420_0_, p_228420_2_);
|
||||
if (j < k) {
|
||||
j = k;
|
||||
}
|
||||
@@ -2445,6 +2465,11 @@
|
||||
return this.field_175015_z;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
--- a/net/minecraft/client/renderer/entity/EntityRenderer.java
|
||||
+++ b/net/minecraft/client/renderer/entity/EntityRenderer.java
|
||||
@@ -54,8 +54,10 @@
|
||||
}
|
||||
|
||||
public void func_225623_a_(T p_225623_1_, float p_225623_2_, float p_225623_3_, MatrixStack p_225623_4_, IRenderTypeBuffer p_225623_5_, int p_225623_6_) {
|
||||
- if (this.func_177070_b(p_225623_1_)) {
|
||||
- this.func_225629_a_(p_225623_1_, p_225623_1_.func_145748_c_().func_150254_d(), p_225623_4_, p_225623_5_, p_225623_6_);
|
||||
+ net.minecraftforge.client.event.RenderNameplateEvent renderNameplateEvent = new net.minecraftforge.client.event.RenderNameplateEvent(p_225623_1_, p_225623_1_.func_145748_c_().func_150254_d(), this, p_225623_4_, p_225623_5_, p_225623_6_);
|
||||
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(renderNameplateEvent);
|
||||
+ if (renderNameplateEvent.getResult() != net.minecraftforge.eventbus.api.Event.Result.DENY && (renderNameplateEvent.getResult() == net.minecraftforge.eventbus.api.Event.Result.ALLOW || this.func_177070_b(p_225623_1_))) {
|
||||
+ this.func_225629_a_(p_225623_1_, renderNameplateEvent.getContent(), p_225623_4_, p_225623_5_, p_225623_6_);
|
||||
}
|
||||
}
|
||||
|
||||
+18
-1
@@ -1,6 +1,23 @@
|
||||
--- a/net/minecraft/client/renderer/entity/EntityRendererManager.java
|
||||
+++ b/net/minecraft/client/renderer/entity/EntityRendererManager.java
|
||||
@@ -445,4 +445,8 @@
|
||||
@@ -183,13 +183,15 @@
|
||||
this.field_178637_m = new PlayerRenderer(this);
|
||||
this.field_178636_l.put("default", this.field_178637_m);
|
||||
this.field_178636_l.put("slim", new PlayerRenderer(this, true));
|
||||
+ }
|
||||
|
||||
+ //FORGE: Validate the existence of a renderer for each entity type after modded entity renderers have been added
|
||||
+ public void validateRendererExistence() {
|
||||
for(EntityType<?> entitytype : Registry.field_212629_r) {
|
||||
if (entitytype != EntityType.field_200729_aH && !this.field_78729_o.containsKey(entitytype)) {
|
||||
throw new IllegalStateException("No renderer registered for " + Registry.field_212629_r.func_177774_c(entitytype));
|
||||
}
|
||||
}
|
||||
-
|
||||
}
|
||||
|
||||
public <T extends Entity> EntityRenderer<? super T> func_78713_a(T p_78713_1_) {
|
||||
@@ -445,4 +447,8 @@
|
||||
public FontRenderer func_78716_a() {
|
||||
return this.field_78736_p;
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
+ int i = mapdata != null ? p_225623_1_.func_82333_j() % 4 * 2 : p_225623_1_.func_82333_j();
|
||||
p_225623_4_.func_227863_a_(Vector3f.field_229183_f_.func_229187_a_((float)i * 360.0F / 8.0F));
|
||||
- if (flag) {
|
||||
+ if (!net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.RenderItemInFrameEvent(p_225623_1_, this))) {
|
||||
+ if (!net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.RenderItemInFrameEvent(p_225623_1_, this, p_225623_4_, p_225623_5_, p_225623_6_))) {
|
||||
+ if (mapdata != null) {
|
||||
p_225623_4_.func_227863_a_(Vector3f.field_229183_f_.func_229187_a_(180.0F));
|
||||
float f = 0.0078125F;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
p_225623_4_.func_227861_a_((double)f7, (double)f8, (double)f9);
|
||||
}
|
||||
|
||||
@@ -75,18 +72,19 @@
|
||||
@@ -75,18 +72,18 @@
|
||||
float f11 = (this.field_177079_e.nextFloat() * 2.0F - 1.0F) * 0.15F;
|
||||
float f13 = (this.field_177079_e.nextFloat() * 2.0F - 1.0F) * 0.15F;
|
||||
float f10 = (this.field_177079_e.nextFloat() * 2.0F - 1.0F) * 0.15F;
|
||||
@@ -37,9 +37,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
- this.field_177080_a.func_229111_a_(itemstack, ItemCameraTransforms.TransformType.GROUND, false, p_225623_4_, p_225623_5_, p_225623_6_, OverlayTexture.field_229196_a_, ibakedmodel);
|
||||
+ IBakedModel transformedModel = net.minecraftforge.client.ForgeHooksClient.handleCameraTransforms(p_225623_4_, ibakedmodel, ItemCameraTransforms.TransformType.GROUND, false);
|
||||
+ this.field_177080_a.func_229111_a_(itemstack, ItemCameraTransforms.TransformType.GROUND, false, p_225623_4_, p_225623_5_, p_225623_6_, OverlayTexture.field_229196_a_, transformedModel);
|
||||
this.field_177080_a.func_229111_a_(itemstack, ItemCameraTransforms.TransformType.GROUND, false, p_225623_4_, p_225623_5_, p_225623_6_, OverlayTexture.field_229196_a_, ibakedmodel);
|
||||
p_225623_4_.func_227865_b_();
|
||||
if (!flag) {
|
||||
- p_225623_4_.func_227861_a_((double)(0.0F * f4), (double)(0.0F * f5), (double)(0.09375F * f6));
|
||||
@@ -47,7 +45,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,4 +95,21 @@
|
||||
@@ -97,4 +94,21 @@
|
||||
public ResourceLocation func_110775_a(ItemEntity p_110775_1_) {
|
||||
return AtlasTexture.field_110575_b;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
--- a/net/minecraft/client/renderer/entity/LivingRenderer.java
|
||||
+++ b/net/minecraft/client/renderer/entity/LivingRenderer.java
|
||||
@@ -47,14 +47,17 @@
|
||||
@@ -48,14 +48,17 @@
|
||||
}
|
||||
|
||||
public void func_225623_a_(T p_225623_1_, float p_225623_2_, float p_225623_3_, MatrixStack p_225623_4_, IRenderTypeBuffer p_225623_5_, int p_225623_6_) {
|
||||
+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.RenderLivingEvent.Pre<T, M>(p_225623_1_, this, p_225623_3_, p_225623_4_))) return;
|
||||
+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.RenderLivingEvent.Pre<T, M>(p_225623_1_, this, p_225623_3_, p_225623_4_, p_225623_5_, p_225623_6_))) return;
|
||||
p_225623_4_.func_227860_a_();
|
||||
this.field_77045_g.field_217112_c = this.func_77040_d(p_225623_1_, p_225623_3_);
|
||||
- this.field_77045_g.field_217113_d = p_225623_1_.func_184218_aH();
|
||||
@@ -20,7 +20,7 @@
|
||||
LivingEntity livingentity = (LivingEntity)p_225623_1_.func_184187_bx();
|
||||
f = MathHelper.func_219805_h(p_225623_3_, livingentity.field_70760_ar, livingentity.field_70761_aq);
|
||||
f2 = f1 - f;
|
||||
@@ -91,7 +94,7 @@
|
||||
@@ -92,7 +95,7 @@
|
||||
p_225623_4_.func_227861_a_(0.0D, (double)-1.501F, 0.0D);
|
||||
float f8 = 0.0F;
|
||||
float f5 = 0.0F;
|
||||
@@ -29,11 +29,11 @@
|
||||
f8 = MathHelper.func_219799_g(p_225623_3_, p_225623_1_.field_184618_aE, p_225623_1_.field_70721_aZ);
|
||||
f5 = p_225623_1_.field_184619_aG - p_225623_1_.field_70721_aZ * (1.0F - p_225623_3_);
|
||||
if (p_225623_1_.func_70631_g_()) {
|
||||
@@ -132,6 +135,7 @@
|
||||
@@ -123,6 +126,7 @@
|
||||
|
||||
p_225623_4_.func_227865_b_();
|
||||
super.func_225623_a_(p_225623_1_, p_225623_2_, p_225623_3_, p_225623_4_, p_225623_5_, p_225623_6_);
|
||||
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.RenderLivingEvent.Post<T, M>(p_225623_1_, this, p_225623_3_, p_225623_4_));
|
||||
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.RenderLivingEvent.Post<T, M>(p_225623_1_, this, p_225623_3_, p_225623_4_, p_225623_5_, p_225623_6_));
|
||||
}
|
||||
|
||||
public static int func_229117_c_(LivingEntity p_229117_0_, float p_229117_1_) {
|
||||
@Nullable
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
public void func_225623_a_(AbstractClientPlayerEntity p_225623_1_, float p_225623_2_, float p_225623_3_, MatrixStack p_225623_4_, IRenderTypeBuffer p_225623_5_, int p_225623_6_) {
|
||||
this.func_177137_d(p_225623_1_);
|
||||
+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.RenderPlayerEvent.Pre(p_225623_1_, this, p_225623_3_, p_225623_4_))) return;
|
||||
+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.RenderPlayerEvent.Pre(p_225623_1_, this, p_225623_3_, p_225623_4_, p_225623_5_, p_225623_6_))) return;
|
||||
super.func_225623_a_(p_225623_1_, p_225623_2_, p_225623_3_, p_225623_4_, p_225623_5_, p_225623_6_);
|
||||
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.RenderPlayerEvent.Post(p_225623_1_, this, p_225623_3_, p_225623_4_));
|
||||
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.RenderPlayerEvent.Post(p_225623_1_, this, p_225623_3_, p_225623_4_, p_225623_5_, p_225623_6_));
|
||||
}
|
||||
|
||||
public Vec3d func_225627_b_(AbstractClientPlayerEntity p_225627_1_, float p_225627_2_) {
|
||||
@@ -1,6 +1,13 @@
|
||||
--- a/net/minecraft/client/renderer/model/BakedQuad.java
|
||||
+++ b/net/minecraft/client/renderer/model/BakedQuad.java
|
||||
@@ -12,7 +12,17 @@
|
||||
@@ -6,13 +6,22 @@
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
-public class BakedQuad {
|
||||
+public class BakedQuad implements net.minecraftforge.client.model.pipeline.IVertexProducer {
|
||||
protected final int[] field_178215_a;
|
||||
protected final int field_178213_b;
|
||||
protected final Direction field_178214_c;
|
||||
protected final TextureAtlasSprite field_187509_d;
|
||||
|
||||
@@ -9,25 +16,25 @@
|
||||
+ */
|
||||
+ @Deprecated
|
||||
public BakedQuad(int[] p_i46574_1_, int p_i46574_2_, Direction p_i46574_3_, TextureAtlasSprite p_i46574_4_) {
|
||||
+ this(p_i46574_1_, p_i46574_2_, p_i46574_3_, p_i46574_4_, true, net.minecraft.client.renderer.vertex.DefaultVertexFormats.field_176600_a);
|
||||
+ this(p_i46574_1_, p_i46574_2_, p_i46574_3_, p_i46574_4_, true);
|
||||
+ }
|
||||
+
|
||||
+ public BakedQuad(int[] p_i46574_1_, int p_i46574_2_, Direction p_i46574_3_, TextureAtlasSprite p_i46574_4_, boolean applyDiffuseLighting, net.minecraft.client.renderer.vertex.VertexFormat format) {
|
||||
+ this.format = format;
|
||||
+ public BakedQuad(int[] p_i46574_1_, int p_i46574_2_, Direction p_i46574_3_, TextureAtlasSprite p_i46574_4_, boolean applyDiffuseLighting) {
|
||||
+ this.applyDiffuseLighting = applyDiffuseLighting;
|
||||
this.field_178215_a = p_i46574_1_;
|
||||
this.field_178213_b = p_i46574_2_;
|
||||
this.field_178214_c = p_i46574_3_;
|
||||
@@ -34,4 +44,19 @@
|
||||
@@ -34,4 +43,20 @@
|
||||
public Direction func_178210_d() {
|
||||
return this.field_178214_c;
|
||||
}
|
||||
+
|
||||
+ protected final net.minecraft.client.renderer.vertex.VertexFormat format;
|
||||
+ // Forge start
|
||||
+ protected final boolean applyDiffuseLighting;
|
||||
+
|
||||
+ public net.minecraft.client.renderer.vertex.VertexFormat getFormat() {
|
||||
+ return format;
|
||||
+ @Override
|
||||
+ public void pipe(net.minecraftforge.client.model.pipeline.IVertexConsumer consumer) {
|
||||
+ net.minecraftforge.client.model.pipeline.LightUtil.putBakedQuad(consumer, this);
|
||||
+ }
|
||||
+
|
||||
+ public TextureAtlasSprite func_187508_a() {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/client/renderer/model/BlockModel.java
|
||||
+++ b/net/minecraft/client/renderer/model/BlockModel.java
|
||||
@@ -56,9 +56,10 @@
|
||||
@@ -57,9 +57,10 @@
|
||||
public BlockModel field_178315_d;
|
||||
@Nullable
|
||||
protected ResourceLocation field_178316_e;
|
||||
@@ -12,8 +12,8 @@
|
||||
}
|
||||
|
||||
public static BlockModel func_178294_a(String p_178294_0_) {
|
||||
@@ -75,10 +76,15 @@
|
||||
this.field_187968_k = p_i46573_7_;
|
||||
@@ -76,10 +77,15 @@
|
||||
this.field_187968_k = p_i230056_7_;
|
||||
}
|
||||
|
||||
+ @Deprecated
|
||||
@@ -28,7 +28,7 @@
|
||||
public boolean func_178309_b() {
|
||||
return this.field_178315_d != null ? this.field_178315_d.func_178309_b() : this.field_178322_i;
|
||||
}
|
||||
@@ -95,6 +101,10 @@
|
||||
@@ -100,6 +106,10 @@
|
||||
return this.field_187968_k.isEmpty() ? ItemOverrideList.field_188022_a : new ItemOverrideList(p_217646_1_, p_217646_2_, p_217646_1_::func_209597_a, this.field_187968_k);
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
public Collection<ResourceLocation> func_187965_e() {
|
||||
Set<ResourceLocation> set = Sets.newHashSet();
|
||||
|
||||
@@ -138,6 +148,9 @@
|
||||
@@ -143,6 +153,9 @@
|
||||
|
||||
Set<Material> set1 = Sets.newHashSet(this.func_228816_c_("particle"));
|
||||
|
||||
@@ -49,20 +49,25 @@
|
||||
for(BlockPart blockpart : this.func_178298_a()) {
|
||||
for(BlockPartFace blockpartface : blockpart.field_178240_c.values()) {
|
||||
Material material = this.func_228816_c_(blockpartface.field_178242_d);
|
||||
@@ -168,7 +181,11 @@
|
||||
return this.func_228813_a_(p_225613_1_, this, p_225613_2_, p_225613_3_, p_225613_4_);
|
||||
@@ -169,11 +182,17 @@
|
||||
return set1;
|
||||
}
|
||||
|
||||
- public IBakedModel func_228813_a_(ModelBakery p_228813_1_, BlockModel p_228813_2_, Function<Material, TextureAtlasSprite> p_228813_3_, IModelTransform p_228813_4_, ResourceLocation p_228813_5_) {
|
||||
+ public IBakedModel func_228813_a_(ModelBakery p_228813_1_, BlockModel p_228813_2_, Function<Material, TextureAtlasSprite> p_228813_3_, IModelTransform p_228813_4_, ResourceLocation p_228813_5_)
|
||||
+ {
|
||||
+ return net.minecraftforge.client.model.ModelLoaderRegistry.bakeHelper(this, p_228813_1_, p_228813_2_, p_228813_3_, p_228813_4_, p_228813_5_);
|
||||
+ @Deprecated //Forge: Use Boolean variant
|
||||
public IBakedModel func_225613_a_(ModelBakery p_225613_1_, Function<Material, TextureAtlasSprite> p_225613_2_, IModelTransform p_225613_3_, ResourceLocation p_225613_4_) {
|
||||
return this.func_228813_a_(p_225613_1_, this, p_225613_2_, p_225613_3_, p_225613_4_, true);
|
||||
}
|
||||
|
||||
public IBakedModel func_228813_a_(ModelBakery p_228813_1_, BlockModel p_228813_2_, Function<Material, TextureAtlasSprite> p_228813_3_, IModelTransform p_228813_4_, ResourceLocation p_228813_5_, boolean p_228813_6_) {
|
||||
+ return net.minecraftforge.client.model.ModelLoaderRegistry.bakeHelper(this, p_228813_1_, p_228813_2_, p_228813_3_, p_228813_4_, p_228813_5_, p_228813_6_);
|
||||
+ }
|
||||
+ public IBakedModel bakeVanilla(ModelBakery p_228813_1_, BlockModel p_228813_2_, Function<Material, TextureAtlasSprite> p_228813_3_, IModelTransform p_228813_4_, ResourceLocation p_228813_5_) {
|
||||
+
|
||||
+ @Deprecated //Forge: exposed for our callbacks only. Use the above function.
|
||||
+ public IBakedModel bakeVanilla(ModelBakery p_228813_1_, BlockModel p_228813_2_, Function<Material, TextureAtlasSprite> p_228813_3_, IModelTransform p_228813_4_, ResourceLocation p_228813_5_, boolean p_228813_6_) {
|
||||
TextureAtlasSprite textureatlassprite = p_228813_3_.apply(this.func_228816_c_("particle"));
|
||||
if (this.func_178310_f() == ModelBakery.field_177616_r) {
|
||||
return new BuiltInModel(this.func_181682_g(), this.func_217646_a(p_228813_1_, p_228813_2_), textureatlassprite);
|
||||
@@ -195,6 +212,10 @@
|
||||
return new BuiltInModel(this.func_181682_g(), this.func_217646_a(p_228813_1_, p_228813_2_), textureatlassprite, this.func_230176_c_().func_230178_a_());
|
||||
@@ -200,6 +219,10 @@
|
||||
return field_217647_g.func_228824_a_(p_228812_0_.field_178241_a, p_228812_0_.field_178239_b, p_228812_1_, p_228812_2_, p_228812_3_, p_228812_4_, p_228812_0_.field_178237_d, p_228812_0_.field_178238_e, p_228812_5_);
|
||||
}
|
||||
|
||||
@@ -73,3 +78,11 @@
|
||||
public boolean func_178300_b(String p_178300_1_) {
|
||||
return !MissingTextureSprite.func_195675_b().equals(this.func_228816_c_(p_178300_1_).func_229313_b_());
|
||||
}
|
||||
@@ -373,5 +396,7 @@
|
||||
public boolean func_230178_a_() {
|
||||
return this == SIDE;
|
||||
}
|
||||
+
|
||||
+ public String getSerializedName() { return field_230177_c_; }
|
||||
}
|
||||
}
|
||||
@@ -1,28 +1,30 @@
|
||||
--- a/net/minecraft/client/renderer/model/FaceBakery.java
|
||||
+++ b/net/minecraft/client/renderer/model/FaceBakery.java
|
||||
@@ -24,7 +24,7 @@
|
||||
public BakedQuad func_228824_a_(Vector3f p_228824_1_, Vector3f p_228824_2_, BlockPartFace p_228824_3_, TextureAtlasSprite p_228824_4_, Direction p_228824_5_, IModelTransform p_228824_6_, @Nullable BlockPartRotation p_228824_7_, boolean p_228824_8_, ResourceLocation p_228824_9_) {
|
||||
BlockFaceUV blockfaceuv = p_228824_3_.field_178243_e;
|
||||
if (p_228824_6_.func_188049_c()) {
|
||||
- blockfaceuv = func_228821_a_(p_228824_3_.field_178243_e, p_228824_5_, p_228824_6_.func_225615_b_(), p_228824_9_);
|
||||
+ blockfaceuv = net.minecraftforge.client.ForgeHooksClient.applyUVLock(p_228824_3_.field_178243_e, p_228824_5_, p_228824_6_.func_225615_b_(), p_228824_9_);
|
||||
}
|
||||
|
||||
float[] afloat = new float[blockfaceuv.field_178351_a.length];
|
||||
@@ -43,7 +43,8 @@
|
||||
@@ -36,14 +36,16 @@
|
||||
blockfaceuv.field_178351_a[2] = MathHelper.func_219799_g(f, blockfaceuv.field_178351_a[2], f1);
|
||||
blockfaceuv.field_178351_a[1] = MathHelper.func_219799_g(f, blockfaceuv.field_178351_a[1], f2);
|
||||
blockfaceuv.field_178351_a[3] = MathHelper.func_219799_g(f, blockfaceuv.field_178351_a[3], f2);
|
||||
- int[] aint = this.func_228820_a_(blockfaceuv, p_228824_4_, p_228824_5_, this.func_199337_a(p_228824_1_, p_228824_2_), p_228824_6_.func_225615_b_(), p_228824_7_, p_228824_8_);
|
||||
+ // FORGE: Apply diffuse lighting at render-time instead of baking it in
|
||||
+ int[] aint = this.func_228820_a_(blockfaceuv, p_228824_4_, p_228824_5_, this.func_199337_a(p_228824_1_, p_228824_2_), p_228824_6_.func_225615_b_(), p_228824_7_, false);
|
||||
Direction direction = func_178410_a(aint);
|
||||
System.arraycopy(afloat, 0, blockfaceuv.field_178351_a, 0, afloat.length);
|
||||
if (p_228824_7_ == null) {
|
||||
this.func_178408_a(aint, direction);
|
||||
}
|
||||
|
||||
- return new BakedQuad(aint, p_228824_3_.field_178245_c, direction, p_228824_4_);
|
||||
+ net.minecraftforge.client.ForgeHooksClient.fillNormal(aint, direction);
|
||||
+ return new BakedQuad(aint, p_228824_3_.field_178245_c, direction, p_228824_4_, p_228824_8_, net.minecraft.client.renderer.vertex.DefaultVertexFormats.field_176600_a);
|
||||
+ return new BakedQuad(aint, p_228824_3_.field_178245_c, direction, p_228824_4_, p_228824_8_);
|
||||
}
|
||||
|
||||
public static BlockFaceUV func_228821_a_(BlockFaceUV p_228821_0_, Direction p_228821_1_, TransformationMatrix p_228821_2_, ResourceLocation p_228821_3_) {
|
||||
@@ -152,6 +153,8 @@
|
||||
@@ -150,8 +152,8 @@
|
||||
p_228826_1_[i + 1] = Float.floatToRawIntBits(p_228826_3_.func_195900_b());
|
||||
p_228826_1_[i + 2] = Float.floatToRawIntBits(p_228826_3_.func_195902_c());
|
||||
p_228826_1_[i + 3] = p_228826_4_;
|
||||
p_228826_1_[i + 4] = Float.floatToRawIntBits(p_228826_5_.func_94214_a((double)p_228826_6_.func_178348_a(p_228826_2_)));
|
||||
p_228826_1_[i + 4 + 1] = Float.floatToRawIntBits(p_228826_5_.func_94207_b((double)p_228826_6_.func_178346_b(p_228826_2_)));
|
||||
- p_228826_1_[i + 4] = Float.floatToRawIntBits(p_228826_5_.func_94214_a((double)p_228826_6_.func_178348_a(p_228826_2_)));
|
||||
- p_228826_1_[i + 4 + 1] = Float.floatToRawIntBits(p_228826_5_.func_94207_b((double)p_228826_6_.func_178346_b(p_228826_2_)));
|
||||
+ p_228826_1_[i + 4] = Float.floatToRawIntBits(p_228826_5_.func_94214_a((double)p_228826_6_.func_178348_a(p_228826_2_) * .999 + p_228826_6_.func_178348_a((p_228826_2_ + 2) % 4) * .001));
|
||||
+ p_228826_1_[i + 4 + 1] = Float.floatToRawIntBits(p_228826_5_.func_94207_b((double)p_228826_6_.func_178346_b(p_228826_2_) * .999 + p_228826_6_.func_178346_b((p_228826_2_ + 2) % 4) * .001));
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
List<BakedQuad> func_200117_a(@Nullable BlockState p_200117_1_, @Nullable Direction p_200117_2_, Random p_200117_3_);
|
||||
|
||||
boolean func_177555_b();
|
||||
@@ -19,9 +21,12 @@
|
||||
@@ -21,9 +23,12 @@
|
||||
|
||||
boolean func_188618_c();
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
--- a/net/minecraft/client/renderer/model/ItemModelGenerator.java
|
||||
+++ b/net/minecraft/client/renderer/model/ItemModelGenerator.java
|
||||
@@ -36,6 +36,7 @@
|
||||
map.put("particle", p_209579_2_.func_178300_b("particle") ? Either.left(p_209579_2_.func_228816_c_("particle")) : map.get("layer0"));
|
||||
BlockModel blockmodel = new BlockModel((ResourceLocation)null, list, map, false, p_209579_2_.func_230176_c_(), p_209579_2_.func_181682_g(), p_209579_2_.func_187966_f());
|
||||
blockmodel.field_178317_b = p_209579_2_.field_178317_b;
|
||||
+ blockmodel.customData.copyFrom(p_209579_2_.customData);
|
||||
return blockmodel;
|
||||
}
|
||||
|
||||
@@ -46,11 +46,11 @@
|
||||
field_177603_c.warn("Unable to bake model: '{}': {}", p_229350_1_, exception);
|
||||
}
|
||||
|
||||
@@ -447,6 +462,13 @@
|
||||
@@ -443,6 +458,13 @@
|
||||
this.field_217848_D.addAll(p_209593_2_.func_187965_e());
|
||||
}
|
||||
|
||||
+ // Same as func_217843_a but without restricting to MRL's
|
||||
+ // Same as loadTopModel but without restricting to MRL's
|
||||
+ private void addModelToCache(ResourceLocation p_217843_1_) {
|
||||
+ IUnbakedModel iunbakedmodel = this.func_209597_a(p_217843_1_);
|
||||
+ this.field_217849_F.put(p_217843_1_, iunbakedmodel);
|
||||
@@ -60,7 +60,7 @@
|
||||
private void func_217843_a(ModelResourceLocation p_217843_1_) {
|
||||
IUnbakedModel iunbakedmodel = this.func_209597_a(p_217843_1_);
|
||||
this.field_217849_F.put(p_217843_1_, iunbakedmodel);
|
||||
@@ -461,7 +483,13 @@
|
||||
@@ -457,7 +479,13 @@
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -74,12 +74,12 @@
|
||||
Triple<ResourceLocation, TransformationMatrix, Boolean> triple = Triple.of(p_217845_1_, p_217845_2_.func_225615_b_(), p_217845_2_.func_188049_c());
|
||||
if (this.field_217850_G.containsKey(triple)) {
|
||||
return this.field_217850_G.get(triple);
|
||||
@@ -472,11 +500,11 @@
|
||||
@@ -468,11 +496,11 @@
|
||||
if (iunbakedmodel instanceof BlockModel) {
|
||||
BlockModel blockmodel = (BlockModel)iunbakedmodel;
|
||||
if (blockmodel.func_178310_f() == field_177606_o) {
|
||||
- return field_217854_z.func_209579_a(this.field_229322_z_::func_229151_a_, blockmodel).func_228813_a_(this, blockmodel, this.field_229322_z_::func_229151_a_, p_217845_2_, p_217845_1_);
|
||||
+ return field_217854_z.func_209579_a(textureGetter, blockmodel).func_228813_a_(this, blockmodel, textureGetter, p_217845_2_, p_217845_1_);
|
||||
- return field_217854_z.func_209579_a(this.field_229322_z_::func_229151_a_, blockmodel).func_228813_a_(this, blockmodel, this.field_229322_z_::func_229151_a_, p_217845_2_, p_217845_1_, false);
|
||||
+ return field_217854_z.func_209579_a(textureGetter, blockmodel).func_228813_a_(this, blockmodel, this.field_229322_z_::func_229151_a_, p_217845_2_, p_217845_1_, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
this.field_217850_G.put(triple, ibakedmodel);
|
||||
return ibakedmodel;
|
||||
}
|
||||
@@ -530,6 +558,10 @@
|
||||
@@ -526,6 +554,10 @@
|
||||
return this.field_225367_M;
|
||||
}
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
static class BlockStateDefinitionException extends RuntimeException {
|
||||
public BlockStateDefinitionException(String p_i49526_1_) {
|
||||
@@ -537,6 +569,10 @@
|
||||
@@ -533,6 +565,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
p_212854_2_.func_219897_b();
|
||||
return modelbakery;
|
||||
}
|
||||
@@ -60,6 +64,7 @@
|
||||
@@ -64,6 +68,7 @@
|
||||
this.field_174958_a = p_212853_1_.func_217846_a();
|
||||
this.field_224744_f = p_212853_1_.func_225354_b();
|
||||
this.field_174955_d = this.field_174958_a.get(ModelBakery.field_177604_a);
|
||||
@@ -37,15 +37,15 @@
|
||||
p_212853_3_.func_219895_b("cache");
|
||||
this.field_174957_c.func_178124_c();
|
||||
p_212853_3_.func_76319_b();
|
||||
@@ -85,6 +90,7 @@
|
||||
@@ -89,6 +94,7 @@
|
||||
}
|
||||
|
||||
public AtlasTexture func_229356_a_(ResourceLocation p_229356_1_) {
|
||||
+ if (this.field_229352_b_ == null) throw new RuntimeException("func_229356_a_ called too early!");
|
||||
+ if (this.field_229352_b_ == null) throw new RuntimeException("getAtlasTexture called too early!");
|
||||
return this.field_229352_b_.func_229152_a_(p_229356_1_);
|
||||
}
|
||||
|
||||
@@ -95,4 +101,10 @@
|
||||
@@ -99,4 +105,10 @@
|
||||
public void func_229355_a_(int p_229355_1_) {
|
||||
this.field_229354_f_ = p_229355_1_;
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
--- a/net/minecraft/client/renderer/model/SimpleBakedModel.java
|
||||
+++ b/net/minecraft/client/renderer/model/SimpleBakedModel.java
|
||||
@@ -74,6 +74,10 @@
|
||||
this(p_i46988_1_.func_178309_b(), p_i46988_1_.func_178311_c(), p_i46988_1_.func_181682_g(), p_i46988_2_);
|
||||
}
|
||||
@@ -77,6 +77,10 @@
|
||||
private final boolean field_177653_e;
|
||||
private final ItemCameraTransforms field_177651_f;
|
||||
|
||||
+ public Builder(net.minecraftforge.client.model.IModelConfiguration model, ItemOverrideList overrides) {
|
||||
+ this(model.useSmoothLighting(), model.isShadedInGui(), model.getCameraTransforms(), overrides);
|
||||
+ this(model.useSmoothLighting(), model.isShadedInGui(), model.isSideLit(), model.getCameraTransforms(), overrides);
|
||||
+ }
|
||||
+
|
||||
private Builder(boolean p_i46990_1_, boolean p_i46990_2_, ItemCameraTransforms p_i46990_3_, ItemOverrideList p_i46990_4_) {
|
||||
for(Direction direction : Direction.values()) {
|
||||
this.field_177654_b.put(direction, Lists.newArrayList());
|
||||
public Builder(BlockModel p_i230060_1_, ItemOverrideList p_i230060_2_, boolean p_i230060_3_) {
|
||||
this(p_i230060_1_.func_178309_b(), p_i230060_1_.func_230176_c_().func_230178_a_(), p_i230060_3_, p_i230060_1_.func_181682_g(), p_i230060_2_);
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/client/renderer/model/VariantList.java
|
||||
+++ b/net/minecraft/client/renderer/model/VariantList.java
|
||||
@@ -64,7 +64,7 @@
|
||||
WeightedBakedModel.Builder weightedbakedmodel$builder = new WeightedBakedModel.Builder();
|
||||
|
||||
for(Variant variant : this.func_188114_a()) {
|
||||
- IBakedModel ibakedmodel = p_225613_1_.func_217845_a(variant.func_188046_a(), variant);
|
||||
+ IBakedModel ibakedmodel = p_225613_1_.getBakedModel(variant.func_188046_a(), variant, p_225613_2_);
|
||||
weightedbakedmodel$builder.func_177677_a(ibakedmodel, variant.func_188047_d());
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/client/renderer/texture/NativeImage.java
|
||||
+++ b/net/minecraft/client/renderer/texture/NativeImage.java
|
||||
@@ -178,7 +178,7 @@
|
||||
@@ -180,7 +180,7 @@
|
||||
public int func_195709_a(int p_195709_1_, int p_195709_2_) {
|
||||
if (this.field_211680_b != NativeImage.PixelFormat.RGBA) {
|
||||
throw new IllegalArgumentException(String.format("getPixelRGBA only works on RGBA images; have %s", this.field_211680_b));
|
||||
@@ -9,7 +9,7 @@
|
||||
this.func_195696_g();
|
||||
long i = (long)((p_195709_1_ + p_195709_2_ * this.field_195719_a) * 4);
|
||||
return MemoryUtil.memGetInt(this.field_195722_d + i);
|
||||
@@ -190,7 +190,7 @@
|
||||
@@ -192,7 +192,7 @@
|
||||
public void func_195700_a(int p_195700_1_, int p_195700_2_, int p_195700_3_) {
|
||||
if (this.field_211680_b != NativeImage.PixelFormat.RGBA) {
|
||||
throw new IllegalArgumentException(String.format("getPixelRGBA only works on RGBA images; have %s", this.field_211680_b));
|
||||
@@ -18,7 +18,7 @@
|
||||
this.func_195696_g();
|
||||
long i = (long)((p_195700_1_ + p_195700_2_ * this.field_195719_a) * 4);
|
||||
MemoryUtil.memPutInt(this.field_195722_d + i, p_195700_3_);
|
||||
@@ -202,7 +202,7 @@
|
||||
@@ -204,7 +204,7 @@
|
||||
public byte func_211675_e(int p_211675_1_, int p_211675_2_) {
|
||||
if (!this.field_211680_b.func_211653_r()) {
|
||||
throw new IllegalArgumentException(String.format("no luminance or alpha in %s", this.field_211680_b));
|
||||
@@ -27,12 +27,3 @@
|
||||
int i = (p_211675_1_ + p_211675_2_ * this.field_195719_a) * this.field_211680_b.func_211651_a() + this.field_211680_b.func_211647_v() / 8;
|
||||
return MemoryUtil.memGetByte(this.field_195722_d + (long)i);
|
||||
} else {
|
||||
@@ -336,7 +336,7 @@
|
||||
}
|
||||
|
||||
public void func_211676_a(STBTTFontinfo p_211676_1_, int p_211676_2_, int p_211676_3_, int p_211676_4_, float p_211676_5_, float p_211676_6_, float p_211676_7_, float p_211676_8_, int p_211676_9_, int p_211676_10_) {
|
||||
- if (p_211676_9_ >= 0 && p_211676_9_ + p_211676_3_ <= this.func_195702_a() && p_211676_10_ >= 0 && p_211676_10_ + p_211676_4_ <= this.func_195714_b()) {
|
||||
+ if (p_211676_9_ >= 0 && p_211676_9_ + p_211676_3_ < this.func_195702_a() && p_211676_10_ >= 0 && p_211676_10_ + p_211676_4_ < this.func_195714_b()) { //Fix MC-162953 bounds checks in `NativeImage`
|
||||
if (this.field_211680_b.func_211651_a() != 1) {
|
||||
throw new IllegalArgumentException("Can only write fonts into 1-component images.");
|
||||
} else {
|
||||
@@ -1,12 +1,21 @@
|
||||
--- a/net/minecraft/client/renderer/texture/Texture.java
|
||||
+++ b/net/minecraft/client/renderer/texture/Texture.java
|
||||
@@ -33,6 +33,11 @@
|
||||
@@ -33,6 +33,20 @@
|
||||
GlStateManager.func_227677_b_(3553, 10240, j);
|
||||
}
|
||||
|
||||
+ // FORGE: This seems to have been stripped out, but we need it
|
||||
+ private boolean lastBlur;
|
||||
+ private boolean lastMipmap;
|
||||
+
|
||||
+ public void setBlurMipmap(boolean blur, boolean mipmap) {
|
||||
+ this.lastBlur = this.field_174940_b;
|
||||
+ this.lastMipmap = this.field_174941_c;
|
||||
+ func_174937_a(blur, mipmap);
|
||||
+ }
|
||||
+
|
||||
+ public void restoreLastBlurMipmap() {
|
||||
+ func_174937_a(this.field_174940_b, this.field_174941_c);
|
||||
+ func_174937_a(this.lastBlur, this.lastMipmap);
|
||||
+ }
|
||||
+
|
||||
public int func_110552_b() {
|
||||
|
||||
+3
-4
@@ -17,14 +17,13 @@
|
||||
p_195667_3_[i].func_227788_a_(i, this.field_110975_c >> i, this.field_110974_d >> i, p_195667_1_ >> i, p_195667_2_ >> i, this.field_229226_c_.field_229245_b_ >> i, this.field_229226_c_.field_229246_c_ >> i, this.field_195670_c.length > 1, false);
|
||||
}
|
||||
|
||||
@@ -341,4 +342,10 @@
|
||||
@@ -341,4 +342,9 @@
|
||||
|
||||
}
|
||||
}
|
||||
+
|
||||
+
|
||||
+ // Forge Start
|
||||
+
|
||||
+ public int getPixelRGBA(int frameIndex, int x, int y) {
|
||||
+ return this.field_195670_c[frameIndex].func_195709_a(x + this.field_195671_d[frameIndex] * func_94211_a(), y + this.field_195672_e[frameIndex] * func_94216_b());
|
||||
+ return this.field_195670_c[0].func_195709_a(x + this.field_195671_d[frameIndex] * func_94211_a(), y + this.field_195672_e[frameIndex] * func_94216_b());
|
||||
+ }
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/client/renderer/texture/TextureManager.java
|
||||
+++ b/net/minecraft/client/renderer/texture/TextureManager.java
|
||||
@@ -140,6 +140,7 @@
|
||||
@@ -145,6 +145,7 @@
|
||||
public void func_147645_c(ResourceLocation p_147645_1_) {
|
||||
Texture texture = this.func_229267_b_(p_147645_1_);
|
||||
if (texture != null) {
|
||||
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
--- a/net/minecraft/client/renderer/tileentity/ChestTileEntityRenderer.java
|
||||
+++ b/net/minecraft/client/renderer/tileentity/ChestTileEntityRenderer.java
|
||||
@@ -98,7 +98,7 @@
|
||||
f1 = 1.0F - f1;
|
||||
f1 = 1.0F - f1 * f1 * f1;
|
||||
int i = icallbackwrapper.apply(new DualBrightnessCallback<>()).applyAsInt(p_225616_5_);
|
||||
- Material material = Atlases.func_228771_a_(p_225616_1_, chesttype, this.field_147509_j);
|
||||
+ Material material = this.getMaterial(p_225616_1_, chesttype);
|
||||
IVertexBuilder ivertexbuilder = material.func_229311_a_(p_225616_4_, RenderType::func_228638_b_);
|
||||
if (flag1) {
|
||||
if (chesttype == ChestType.LEFT) {
|
||||
@@ -121,4 +121,8 @@
|
||||
p_228871_4_.func_228308_a_(p_228871_1_, p_228871_2_, p_228871_7_, p_228871_8_);
|
||||
p_228871_5_.func_228308_a_(p_228871_1_, p_228871_2_, p_228871_7_, p_228871_8_);
|
||||
}
|
||||
+
|
||||
+ protected Material getMaterial(T tileEntity, ChestType chestType) {
|
||||
+ return Atlases.func_228771_a_(tileEntity, chestType, this.field_147509_j);
|
||||
+ }
|
||||
}
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher.java
|
||||
+++ b/net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher.java
|
||||
@@ -141,4 +141,9 @@
|
||||
@@ -134,4 +134,9 @@
|
||||
public FontRenderer func_147548_a() {
|
||||
return this.field_147557_n;
|
||||
}
|
||||
|
||||
@@ -10,5 +10,5 @@
|
||||
+ public boolean hasPosition() { return field_177355_b.stream().anyMatch(e -> e.func_177374_g()); }
|
||||
+ public boolean hasNormal() { return field_177355_b.stream().anyMatch(e -> e.func_177375_c() == VertexFormatElement.Usage.NORMAL); }
|
||||
+ public boolean hasColor() { return field_177355_b.stream().anyMatch(e -> e.func_177375_c() == VertexFormatElement.Usage.COLOR); }
|
||||
+ public boolean hasUV(int which) { return field_177355_b.stream().anyMatch(e -> e.func_177375_c() == VertexFormatElement.Usage.COLOR && e.func_177369_e() == which); }
|
||||
+ public boolean hasUV(int which) { return field_177355_b.stream().anyMatch(e -> e.func_177375_c() == VertexFormatElement.Usage.UV && e.func_177369_e() == which); }
|
||||
}
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
public static void func_197981_a(InputMappings.Input p_197981_0_) {
|
||||
- KeyBinding keybinding = field_74514_b.get(p_197981_0_);
|
||||
+ for (KeyBinding keybinding : field_74514_b.lookupAll(p_197981_0_))
|
||||
+ KeyBinding keybinding = field_74514_b.lookupActive(p_197981_0_);
|
||||
if (keybinding != null) {
|
||||
++keybinding.field_151474_i;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
--- a/net/minecraft/client/shader/Framebuffer.java
|
||||
+++ b/net/minecraft/client/shader/Framebuffer.java
|
||||
@@ -100,8 +100,14 @@
|
||||
GlStateManager.func_227645_a_(FramebufferConstants.field_227592_a_, FramebufferConstants.field_227594_c_, 3553, this.field_147617_g, 0);
|
||||
if (this.field_147619_e) {
|
||||
GlStateManager.func_227730_i_(FramebufferConstants.field_227593_b_, this.field_147624_h);
|
||||
+ if (!stencilEnabled) {
|
||||
GlStateManager.func_227678_b_(FramebufferConstants.field_227593_b_, 33190, this.field_147622_a, this.field_147620_b);
|
||||
GlStateManager.func_227693_c_(FramebufferConstants.field_227592_a_, FramebufferConstants.field_227595_d_, FramebufferConstants.field_227593_b_, this.field_147624_h);
|
||||
+ } else {
|
||||
+ GlStateManager.func_227678_b_(FramebufferConstants.field_227593_b_, org.lwjgl.opengl.EXTPackedDepthStencil.GL_DEPTH24_STENCIL8_EXT, this.field_147622_a, this.field_147620_b);
|
||||
+ GlStateManager.func_227693_c_(FramebufferConstants.field_227592_a_, org.lwjgl.opengl.EXTFramebufferObject.GL_DEPTH_ATTACHMENT_EXT, FramebufferConstants.field_227593_b_, this.field_147624_h);
|
||||
+ GlStateManager.func_227693_c_(FramebufferConstants.field_227592_a_, org.lwjgl.opengl.EXTFramebufferObject.GL_STENCIL_ATTACHMENT_EXT, FramebufferConstants.field_227593_b_, this.field_147624_h);
|
||||
+ }
|
||||
}
|
||||
|
||||
this.func_147611_b();
|
||||
@@ -254,4 +260,29 @@
|
||||
GlStateManager.func_227658_a_(i, p_216493_1_);
|
||||
this.func_147609_e();
|
||||
}
|
||||
+
|
||||
+ /*================================ FORGE START ================================================*/
|
||||
+ private boolean stencilEnabled = false;
|
||||
+ /**
|
||||
+ * Attempts to enable 8 bits of stencil buffer on this FrameBuffer.
|
||||
+ * Modders must call this directly to set things up.
|
||||
+ * This is to prevent the default cause where graphics cards do not support stencil bits.
|
||||
+ * <b>Make sure to call this on the main render thread!</b>
|
||||
+ */
|
||||
+ public void enableStencil()
|
||||
+ {
|
||||
+ if(stencilEnabled) return;
|
||||
+ stencilEnabled = true;
|
||||
+ this.func_216491_a(field_147621_c, field_147618_d, net.minecraft.client.Minecraft.field_142025_a);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Returns wither or not this FBO has been successfully initialized with stencil bits.
|
||||
+ * If not, and a modder wishes it to be, they must call enableStencil.
|
||||
+ */
|
||||
+ public boolean isStencilEnabled()
|
||||
+ {
|
||||
+ return this.stencilEnabled;
|
||||
+ }
|
||||
+ /*================================ FORGE END ================================================*/
|
||||
}
|
||||
@@ -9,7 +9,15 @@
|
||||
}
|
||||
|
||||
public Collection<Path> func_200389_a() {
|
||||
@@ -53,6 +53,10 @@
|
||||
@@ -38,6 +38,7 @@
|
||||
|
||||
for(IDataProvider idataprovider : this.field_200396_d) {
|
||||
field_200393_a.info("Starting provider: {}", (Object)idataprovider.func_200397_b());
|
||||
+ net.minecraftforge.fml.StartupMessageManager.addModMessage("Generating: " + idataprovider.func_200397_b());
|
||||
stopwatch1.start();
|
||||
idataprovider.func_200398_a(directorycache);
|
||||
stopwatch1.stop();
|
||||
@@ -53,6 +54,10 @@
|
||||
this.field_200396_d.add(p_200390_1_);
|
||||
}
|
||||
|
||||
|
||||
@@ -222,15 +222,27 @@
|
||||
}
|
||||
|
||||
public boolean func_70028_i(Entity p_70028_1_) {
|
||||
@@ -2046,6 +2073,7 @@
|
||||
@@ -2046,6 +2073,11 @@
|
||||
|
||||
@Nullable
|
||||
public Entity func_212321_a(DimensionType p_212321_1_) {
|
||||
+ return this.changeDimension(p_212321_1_, func_184102_h().func_71218_a(p_212321_1_).func_85176_s());
|
||||
+ }
|
||||
+ @Nullable
|
||||
+ public Entity changeDimension(DimensionType p_212321_1_, net.minecraftforge.common.util.ITeleporter teleporter) {
|
||||
+ if (!net.minecraftforge.common.ForgeHooks.onTravelToDimension(this, p_212321_1_)) return null;
|
||||
if (!this.field_70170_p.field_72995_K && !this.field_70128_L) {
|
||||
this.field_70170_p.func_217381_Z().func_76320_a("changeDimension");
|
||||
MinecraftServer minecraftserver = this.func_184102_h();
|
||||
@@ -2063,16 +2091,9 @@
|
||||
@@ -2055,6 +2087,7 @@
|
||||
this.field_71093_bK = p_212321_1_;
|
||||
this.func_213319_R();
|
||||
this.field_70170_p.func_217381_Z().func_76320_a("reposition");
|
||||
+ Entity transportedEntity = teleporter.placeEntity(this, serverworld, serverworld1, this.field_70177_z, spawnPortal -> { //Forge: Start vanilla logic
|
||||
Vec3d vec3d = this.func_213322_ci();
|
||||
float f = 0.0F;
|
||||
BlockPos blockpos;
|
||||
@@ -2063,16 +2096,9 @@
|
||||
} else if (p_212321_1_ == DimensionType.field_223229_c_) {
|
||||
blockpos = serverworld1.func_180504_m();
|
||||
} else {
|
||||
@@ -250,16 +262,41 @@
|
||||
|
||||
double d3 = Math.min(-2.9999872E7D, serverworld1.func_175723_af().func_177726_b() + 16.0D);
|
||||
double d4 = Math.min(-2.9999872E7D, serverworld1.func_175723_af().func_177736_c() + 16.0D);
|
||||
@@ -2101,7 +2122,7 @@
|
||||
@@ -2082,6 +2108,7 @@
|
||||
d1 = MathHelper.func_151237_a(d1, d4, d6);
|
||||
Vec3d vec3d1 = this.func_181014_aG();
|
||||
blockpos = new BlockPos(d0, this.func_226278_cu_(), d1);
|
||||
+ if (spawnPortal) {
|
||||
BlockPattern.PortalInfo blockpattern$portalinfo = serverworld1.func_85176_s().func_222272_a(blockpos, vec3d, this.func_181012_aH(), vec3d1.field_72450_a, vec3d1.field_72448_b, this instanceof PlayerEntity);
|
||||
if (blockpattern$portalinfo == null) {
|
||||
return null;
|
||||
@@ -2090,6 +2117,7 @@
|
||||
blockpos = new BlockPos(blockpattern$portalinfo.field_222505_a);
|
||||
vec3d = blockpattern$portalinfo.field_222506_b;
|
||||
f = (float)blockpattern$portalinfo.field_222507_c;
|
||||
+ }
|
||||
}
|
||||
|
||||
this.field_70170_p.func_217381_Z().func_219895_b("reloading");
|
||||
@@ -2100,13 +2128,15 @@
|
||||
entity.func_213317_d(vec3d);
|
||||
serverworld1.func_217460_e(entity);
|
||||
}
|
||||
+ return entity;
|
||||
+ });//Forge: End vanilla logic
|
||||
|
||||
- this.field_70128_L = true;
|
||||
+ this.remove(false);
|
||||
this.field_70170_p.func_217381_Z().func_76319_b();
|
||||
serverworld.func_82742_i();
|
||||
serverworld1.func_82742_i();
|
||||
@@ -2129,10 +2150,12 @@
|
||||
this.field_70170_p.func_217381_Z().func_76319_b();
|
||||
- return entity;
|
||||
+ return transportedEntity;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
@@ -2129,10 +2159,12 @@
|
||||
}
|
||||
|
||||
public Vec3d func_181014_aG() {
|
||||
@@ -272,7 +309,7 @@
|
||||
return this.field_181018_ap;
|
||||
}
|
||||
|
||||
@@ -2261,7 +2284,7 @@
|
||||
@@ -2261,7 +2293,7 @@
|
||||
Pose pose = this.func_213283_Z();
|
||||
EntitySize entitysize1 = this.func_213305_a(pose);
|
||||
this.field_213325_aI = entitysize1;
|
||||
@@ -281,7 +318,7 @@
|
||||
if (entitysize1.field_220315_a < entitysize.field_220315_a) {
|
||||
double d0 = (double)entitysize1.field_220315_a / 2.0D;
|
||||
this.func_174826_a(new AxisAlignedBB(this.func_226277_ct_() - d0, this.func_226278_cu_(), this.func_226281_cx_() - d0, this.func_226277_ct_() + d0, this.func_226278_cu_() + (double)entitysize1.field_220316_b, this.func_226281_cx_() + d0));
|
||||
@@ -2713,6 +2736,7 @@
|
||||
@@ -2713,6 +2745,7 @@
|
||||
this.field_70165_t = p_226288_1_;
|
||||
this.field_70163_u = p_226288_3_;
|
||||
this.field_70161_v = p_226288_5_;
|
||||
@@ -289,7 +326,7 @@
|
||||
}
|
||||
|
||||
public void func_70623_bb() {
|
||||
@@ -2726,4 +2750,69 @@
|
||||
@@ -2726,4 +2759,69 @@
|
||||
public interface IMoveCallback {
|
||||
void accept(Entity p_accept_1_, double p_accept_2_, double p_accept_4_, double p_accept_6_);
|
||||
}
|
||||
|
||||
@@ -53,16 +53,16 @@
|
||||
|
||||
for(int i = 0; i < 20; ++i) {
|
||||
double d0 = this.field_70146_Z.nextGaussian() * 0.02D;
|
||||
@@ -571,7 +580,7 @@
|
||||
Effect effect = iterator.next();
|
||||
EffectInstance effectinstance = this.field_70713_bf.get(effect);
|
||||
if (!effectinstance.func_76455_a(this)) {
|
||||
@@ -573,7 +582,7 @@
|
||||
if (!effectinstance.func_76455_a(this, () -> {
|
||||
this.func_70695_b(effectinstance, true);
|
||||
})) {
|
||||
- if (!this.field_70170_p.field_72995_K) {
|
||||
+ if (!this.field_70170_p.field_72995_K && !net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.living.PotionEvent.PotionExpiryEvent(this, effectinstance))) {
|
||||
iterator.remove();
|
||||
this.func_70688_c(effectinstance);
|
||||
}
|
||||
@@ -621,8 +630,10 @@
|
||||
@@ -623,8 +632,10 @@
|
||||
this.func_82142_c(false);
|
||||
} else {
|
||||
Collection<EffectInstance> collection = this.field_70713_bf.values();
|
||||
@@ -75,7 +75,7 @@
|
||||
this.func_82142_c(this.func_70644_a(Effects.field_76441_p));
|
||||
}
|
||||
|
||||
@@ -686,7 +697,9 @@
|
||||
@@ -688,7 +699,9 @@
|
||||
|
||||
boolean flag;
|
||||
for(flag = false; iterator.hasNext(); flag = true) {
|
||||
@@ -86,7 +86,7 @@
|
||||
iterator.remove();
|
||||
}
|
||||
|
||||
@@ -716,6 +729,7 @@
|
||||
@@ -718,6 +731,7 @@
|
||||
return false;
|
||||
} else {
|
||||
EffectInstance effectinstance = this.field_70713_bf.get(p_195064_1_.func_188419_a());
|
||||
@@ -94,7 +94,7 @@
|
||||
if (effectinstance == null) {
|
||||
this.field_70713_bf.put(p_195064_1_.func_188419_a(), p_195064_1_);
|
||||
this.func_70670_a(p_195064_1_);
|
||||
@@ -730,6 +744,9 @@
|
||||
@@ -732,6 +746,9 @@
|
||||
}
|
||||
|
||||
public boolean func_70687_e(EffectInstance p_70687_1_) {
|
||||
@@ -104,7 +104,7 @@
|
||||
if (this.func_70668_bt() == CreatureAttribute.field_223223_b_) {
|
||||
Effect effect = p_70687_1_.func_188419_a();
|
||||
if (effect == Effects.field_76428_l || effect == Effects.field_76436_u) {
|
||||
@@ -750,6 +767,7 @@
|
||||
@@ -752,6 +769,7 @@
|
||||
}
|
||||
|
||||
public boolean func_195063_d(Effect p_195063_1_) {
|
||||
@@ -112,7 +112,7 @@
|
||||
EffectInstance effectinstance = this.func_184596_c(p_195063_1_);
|
||||
if (effectinstance != null) {
|
||||
this.func_70688_c(effectinstance);
|
||||
@@ -786,6 +804,8 @@
|
||||
@@ -788,6 +806,8 @@
|
||||
}
|
||||
|
||||
public void func_70691_i(float p_70691_1_) {
|
||||
@@ -121,7 +121,7 @@
|
||||
float f = this.func_110143_aJ();
|
||||
if (f > 0.0F) {
|
||||
this.func_70606_j(f + p_70691_1_);
|
||||
@@ -802,6 +822,7 @@
|
||||
@@ -804,6 +824,7 @@
|
||||
}
|
||||
|
||||
public boolean func_70097_a(DamageSource p_70097_1_, float p_70097_2_) {
|
||||
@@ -129,7 +129,7 @@
|
||||
if (this.func_180431_b(p_70097_1_)) {
|
||||
return false;
|
||||
} else if (this.field_70170_p.field_72995_K) {
|
||||
@@ -868,8 +889,8 @@
|
||||
@@ -870,8 +891,8 @@
|
||||
if (entity1 instanceof PlayerEntity) {
|
||||
this.field_70718_bc = 100;
|
||||
this.field_70717_bb = (PlayerEntity)entity1;
|
||||
@@ -140,15 +140,15 @@
|
||||
if (wolfentity.func_70909_n()) {
|
||||
this.field_70718_bc = 100;
|
||||
LivingEntity livingentity = wolfentity.func_70902_q();
|
||||
@@ -1051,6 +1072,7 @@
|
||||
@@ -1053,6 +1074,7 @@
|
||||
}
|
||||
|
||||
public void func_70645_a(DamageSource p_70645_1_) {
|
||||
+ if (net.minecraftforge.common.ForgeHooks.onLivingDeath(this, p_70645_1_)) return;
|
||||
if (!this.field_70729_aU) {
|
||||
if (!this.field_70128_L && !this.field_70729_aU) {
|
||||
Entity entity = p_70645_1_.func_76346_g();
|
||||
LivingEntity livingentity = this.func_94060_bK();
|
||||
@@ -1082,10 +1104,10 @@
|
||||
@@ -1084,10 +1106,10 @@
|
||||
if (!this.field_70170_p.field_72995_K) {
|
||||
boolean flag = false;
|
||||
if (p_226298_1_ instanceof WitherEntity) {
|
||||
@@ -161,7 +161,7 @@
|
||||
this.field_70170_p.func_180501_a(blockpos, blockstate, 3);
|
||||
flag = true;
|
||||
}
|
||||
@@ -1102,13 +1124,10 @@
|
||||
@@ -1104,13 +1126,10 @@
|
||||
|
||||
protected void func_213345_d(DamageSource p_213345_1_) {
|
||||
Entity entity = p_213345_1_.func_76346_g();
|
||||
@@ -178,7 +178,7 @@
|
||||
boolean flag = this.field_70718_bc > 0;
|
||||
if (this.func_146066_aG() && this.field_70170_p.func_82736_K().func_223586_b(GameRules.field_223602_e)) {
|
||||
this.func_213354_a(p_213345_1_, flag);
|
||||
@@ -1117,6 +1136,10 @@
|
||||
@@ -1119,6 +1138,10 @@
|
||||
|
||||
this.func_213337_cE();
|
||||
this.func_226294_cV_();
|
||||
@@ -189,7 +189,7 @@
|
||||
}
|
||||
|
||||
protected void func_213337_cE() {
|
||||
@@ -1126,6 +1149,7 @@
|
||||
@@ -1128,6 +1151,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_223586_b(GameRules.field_223602_e))) {
|
||||
int i = this.func_70693_a(this.field_70717_bb);
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
while(i > 0) {
|
||||
int j = ExperienceOrbEntity.func_70527_a(i);
|
||||
i -= j;
|
||||
@@ -1133,6 +1157,7 @@
|
||||
@@ -1135,6 +1159,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -205,7 +205,17 @@
|
||||
}
|
||||
|
||||
protected void func_213333_a(DamageSource p_213333_1_, int p_213333_2_, boolean p_213333_3_) {
|
||||
@@ -1159,6 +1184,9 @@
|
||||
@@ -1148,7 +1173,8 @@
|
||||
ResourceLocation resourcelocation = this.func_213346_cF();
|
||||
LootTable loottable = this.field_70170_p.func_73046_m().func_200249_aQ().func_186521_a(resourcelocation);
|
||||
LootContext.Builder lootcontext$builder = this.func_213363_a(p_213354_2_, p_213354_1_);
|
||||
- loottable.func_216120_b(lootcontext$builder.func_216022_a(LootParameterSets.field_216263_d), this::func_199701_a_);
|
||||
+ LootContext ctx = lootcontext$builder.func_216022_a(LootParameterSets.field_216263_d);
|
||||
+ loottable.func_216113_a(ctx).forEach(this::func_199701_a_);
|
||||
}
|
||||
|
||||
protected LootContext.Builder func_213363_a(boolean p_213363_1_, DamageSource p_213363_2_) {
|
||||
@@ -1161,6 +1187,9 @@
|
||||
}
|
||||
|
||||
public void func_70653_a(Entity p_70653_1_, float p_70653_2_, double p_70653_3_, double p_70653_5_) {
|
||||
@@ -215,7 +225,7 @@
|
||||
if (!(this.field_70146_Z.nextDouble() < this.func_110148_a(SharedMonsterAttributes.field_111266_c).func_111126_e())) {
|
||||
this.field_70160_al = true;
|
||||
Vec3d vec3d = this.func_213322_ci();
|
||||
@@ -1194,12 +1222,7 @@
|
||||
@@ -1196,12 +1225,7 @@
|
||||
return false;
|
||||
} else {
|
||||
BlockState blockstate = this.func_213339_cH();
|
||||
@@ -229,7 +239,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1223,6 +1246,11 @@
|
||||
@@ -1225,6 +1249,11 @@
|
||||
}
|
||||
|
||||
public boolean func_225503_b_(float p_225503_1_, float p_225503_2_) {
|
||||
@@ -241,7 +251,7 @@
|
||||
boolean flag = super.func_225503_b_(p_225503_1_, p_225503_2_);
|
||||
int i = this.func_225508_e_(p_225503_1_, p_225503_2_);
|
||||
if (i > 0) {
|
||||
@@ -1246,9 +1274,10 @@
|
||||
@@ -1248,9 +1277,10 @@
|
||||
int i = MathHelper.func_76128_c(this.func_226277_ct_());
|
||||
int j = MathHelper.func_76128_c(this.func_226278_cu_() - (double)0.2F);
|
||||
int k = MathHelper.func_76128_c(this.func_226281_cx_());
|
||||
@@ -255,7 +265,7 @@
|
||||
this.func_184185_a(soundtype.func_185842_g(), soundtype.func_185843_a() * 0.5F, soundtype.func_185847_b() * 0.75F);
|
||||
}
|
||||
|
||||
@@ -1317,6 +1346,8 @@
|
||||
@@ -1319,6 +1349,8 @@
|
||||
|
||||
protected void func_70665_d(DamageSource p_70665_1_, float p_70665_2_) {
|
||||
if (!this.func_180431_b(p_70665_1_)) {
|
||||
@@ -264,7 +274,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 f2 = Math.max(p_70665_2_ - this.func_110139_bj(), 0.0F);
|
||||
@@ -1326,10 +1357,11 @@
|
||||
@@ -1328,10 +1360,11 @@
|
||||
((ServerPlayerEntity)p_70665_1_.func_76346_g()).func_195067_a(Stats.field_212735_F, Math.round(f * 10.0F));
|
||||
}
|
||||
|
||||
@@ -277,7 +287,7 @@
|
||||
this.func_110149_m(this.func_110139_bj() - f2);
|
||||
}
|
||||
}
|
||||
@@ -1383,6 +1415,8 @@
|
||||
@@ -1385,6 +1418,8 @@
|
||||
}
|
||||
|
||||
public void func_226292_a_(Hand p_226292_1_, boolean p_226292_2_) {
|
||||
@@ -286,7 +296,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;
|
||||
this.field_82175_bq = true;
|
||||
@@ -1769,15 +1803,16 @@
|
||||
@@ -1771,15 +1806,16 @@
|
||||
}
|
||||
|
||||
this.field_70160_al = true;
|
||||
@@ -305,7 +315,7 @@
|
||||
}
|
||||
|
||||
protected float func_189749_co() {
|
||||
@@ -1787,11 +1822,15 @@
|
||||
@@ -1789,11 +1825,15 @@
|
||||
public void func_213352_e(Vec3d p_213352_1_) {
|
||||
if (this.func_70613_aW() || this.func_184186_bw()) {
|
||||
double d0 = 0.08D;
|
||||
@@ -322,7 +332,7 @@
|
||||
|
||||
if (!this.func_70090_H() || this instanceof PlayerEntity && ((PlayerEntity)this).field_71075_bZ.field_75100_b) {
|
||||
if (!this.func_180799_ab() || this instanceof PlayerEntity && ((PlayerEntity)this).field_71075_bZ.field_75100_b) {
|
||||
@@ -1840,7 +1879,7 @@
|
||||
@@ -1842,7 +1882,7 @@
|
||||
}
|
||||
} else {
|
||||
BlockPos blockpos = this.func_226270_aj_();
|
||||
@@ -331,7 +341,7 @@
|
||||
float f7 = this.field_70122_E ? f5 * 0.91F : 0.91F;
|
||||
this.func_213309_a(this.func_213335_r(f5), p_213352_1_);
|
||||
this.func_213317_d(this.func_213362_f(this.func_213322_ci()));
|
||||
@@ -1902,6 +1941,7 @@
|
||||
@@ -1904,6 +1944,7 @@
|
||||
f = 0.96F;
|
||||
}
|
||||
|
||||
@@ -339,7 +349,7 @@
|
||||
this.func_213309_a(f1, p_213352_1_);
|
||||
this.func_213315_a(MoverType.SELF, this.func_213322_ci());
|
||||
Vec3d vec3d1 = this.func_213322_ci();
|
||||
@@ -1977,6 +2017,7 @@
|
||||
@@ -1979,6 +2020,7 @@
|
||||
}
|
||||
|
||||
public void func_70071_h_() {
|
||||
@@ -347,7 +357,7 @@
|
||||
super.func_70071_h_();
|
||||
this.func_184608_ct();
|
||||
this.func_205014_p();
|
||||
@@ -2020,7 +2061,9 @@
|
||||
@@ -2022,7 +2064,9 @@
|
||||
|
||||
ItemStack itemstack1 = this.func_184582_a(equipmentslottype);
|
||||
if (!ItemStack.func_77989_b(itemstack1, itemstack)) {
|
||||
@@ -357,7 +367,7 @@
|
||||
if (!itemstack.func_190926_b()) {
|
||||
this.func_110140_aT().func_111148_a(itemstack.func_111283_C(equipmentslottype));
|
||||
}
|
||||
@@ -2472,13 +2515,22 @@
|
||||
@@ -2474,13 +2518,22 @@
|
||||
|
||||
private void func_184608_ct() {
|
||||
if (this.func_184587_cr()) {
|
||||
@@ -382,7 +392,7 @@
|
||||
this.func_71036_o();
|
||||
}
|
||||
} else {
|
||||
@@ -2520,8 +2572,10 @@
|
||||
@@ -2522,8 +2575,10 @@
|
||||
public void func_184598_c(Hand p_184598_1_) {
|
||||
ItemStack itemstack = this.func_184586_b(p_184598_1_);
|
||||
if (!itemstack.func_190926_b() && !this.func_184587_cr()) {
|
||||
@@ -394,7 +404,7 @@
|
||||
if (!this.field_70170_p.field_72995_K) {
|
||||
this.func_204802_c(1, true);
|
||||
this.func_204802_c(2, p_184598_1_ == Hand.OFF_HAND);
|
||||
@@ -2581,6 +2635,9 @@
|
||||
@@ -2583,6 +2638,9 @@
|
||||
vec3d1 = vec3d1.func_178789_a(-this.field_70125_A * ((float)Math.PI / 180F));
|
||||
vec3d1 = vec3d1.func_178785_b(-this.field_70177_z * ((float)Math.PI / 180F));
|
||||
vec3d1 = vec3d1.func_72441_c(this.func_226277_ct_(), this.func_226280_cw_(), this.func_226281_cx_());
|
||||
@@ -404,7 +414,7 @@
|
||||
this.field_70170_p.func_195594_a(new ItemParticleData(ParticleTypes.field_197591_B, p_195062_1_), vec3d1.field_72450_a, vec3d1.field_72448_b, vec3d1.field_72449_c, vec3d.field_72450_a, vec3d.field_72448_b + 0.05D, vec3d.field_72449_c);
|
||||
}
|
||||
|
||||
@@ -2592,7 +2649,9 @@
|
||||
@@ -2594,7 +2652,9 @@
|
||||
} else {
|
||||
if (!this.field_184627_bm.func_190926_b() && this.func_184587_cr()) {
|
||||
this.func_226293_b_(this.field_184627_bm, 16);
|
||||
@@ -415,7 +425,7 @@
|
||||
this.func_184602_cy();
|
||||
}
|
||||
|
||||
@@ -2613,7 +2672,11 @@
|
||||
@@ -2615,7 +2675,11 @@
|
||||
|
||||
public void func_184597_cx() {
|
||||
if (!this.field_184627_bm.func_190926_b()) {
|
||||
@@ -427,7 +437,7 @@
|
||||
if (this.field_184627_bm.func_222122_m()) {
|
||||
this.func_184608_ct();
|
||||
}
|
||||
@@ -2770,16 +2833,16 @@
|
||||
@@ -2772,16 +2836,16 @@
|
||||
|
||||
private boolean func_213359_p() {
|
||||
return this.func_213374_dv().map((p_213347_1_) -> {
|
||||
@@ -448,7 +458,7 @@
|
||||
BlockPos blockpos = p_213368_1_.func_177984_a();
|
||||
return new Vec3d((double)blockpos.func_177958_n() + 0.5D, (double)blockpos.func_177956_o() + 0.1D, (double)blockpos.func_177952_p() + 0.5D);
|
||||
});
|
||||
@@ -2795,7 +2858,9 @@
|
||||
@@ -2797,7 +2861,9 @@
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public Direction func_213376_dz() {
|
||||
BlockPos blockpos = this.func_213374_dv().orElse((BlockPos)null);
|
||||
@@ -459,7 +469,7 @@
|
||||
}
|
||||
|
||||
public boolean func_70094_T() {
|
||||
@@ -2864,4 +2929,58 @@
|
||||
@@ -2866,4 +2932,58 @@
|
||||
public void func_213334_d(Hand p_213334_1_) {
|
||||
this.func_213361_c(p_213334_1_ == Hand.MAIN_HAND ? EquipmentSlotType.MAINHAND : EquipmentSlotType.OFFHAND);
|
||||
}
|
||||
|
||||
@@ -22,3 +22,17 @@
|
||||
}
|
||||
} else if (livingentity != null) {
|
||||
livingentity.func_70634_a(this.func_226277_ct_(), this.func_226278_cu_(), this.func_226281_cx_());
|
||||
@@ -121,11 +124,11 @@
|
||||
}
|
||||
|
||||
@Nullable
|
||||
- public Entity func_212321_a(DimensionType p_212321_1_) {
|
||||
+ public Entity changeDimension(DimensionType p_212321_1_, net.minecraftforge.common.util.ITeleporter teleporter) {
|
||||
if (this.field_70192_c.field_71093_bK != p_212321_1_) {
|
||||
this.field_70192_c = null;
|
||||
}
|
||||
|
||||
- return super.func_212321_a(p_212321_1_);
|
||||
+ return super.changeDimension(p_212321_1_, teleporter);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/entity/item/FallingBlockEntity.java
|
||||
+++ b/net/minecraft/entity/item/FallingBlockEntity.java
|
||||
@@ -152,7 +152,7 @@
|
||||
@@ -153,7 +153,7 @@
|
||||
((FallingBlock)block).func_176502_a_(this.field_70170_p, blockpos1, this.field_175132_d, blockstate);
|
||||
}
|
||||
|
||||
|
||||
@@ -109,6 +109,17 @@
|
||||
this.func_70106_y();
|
||||
itemstack.func_190920_e(i);
|
||||
}
|
||||
@@ -300,8 +328,8 @@
|
||||
}
|
||||
|
||||
@Nullable
|
||||
- public Entity func_212321_a(DimensionType p_212321_1_) {
|
||||
- Entity entity = super.func_212321_a(p_212321_1_);
|
||||
+ public Entity changeDimension(DimensionType p_212321_1_, net.minecraftforge.common.util.ITeleporter teleporter) {
|
||||
+ Entity entity = super.changeDimension(p_212321_1_, teleporter);
|
||||
if (!this.field_70170_p.field_72995_K && entity instanceof ItemEntity) {
|
||||
((ItemEntity)entity).func_85054_d();
|
||||
}
|
||||
@@ -366,7 +394,7 @@
|
||||
|
||||
public void func_174870_v() {
|
||||
|
||||
+13
-4
@@ -31,15 +31,18 @@
|
||||
}
|
||||
|
||||
public double func_70042_X() {
|
||||
@@ -239,7 +241,7 @@
|
||||
@@ -239,9 +241,9 @@
|
||||
|
||||
BlockPos blockpos = new BlockPos(i, j, k);
|
||||
BlockState blockstate = this.field_70170_p.func_180495_p(blockpos);
|
||||
- if (blockstate.func_203425_a(BlockTags.field_203437_y)) {
|
||||
+ if (canUseRail() && blockstate.func_203425_a(BlockTags.field_203437_y)) {
|
||||
this.func_180460_a(blockpos, blockstate);
|
||||
if (blockstate.func_177230_c() == Blocks.field_150408_cc) {
|
||||
- if (blockstate.func_177230_c() == Blocks.field_150408_cc) {
|
||||
+ if (blockstate.func_177230_c() instanceof PoweredRailBlock && ((PoweredRailBlock) blockstate.func_177230_c()).isActivatorRail()) {
|
||||
this.func_96095_a(i, j, k, blockstate.func_177229_b(PoweredRailBlock.field_176569_M));
|
||||
}
|
||||
} else {
|
||||
@@ -266,8 +268,11 @@
|
||||
}
|
||||
|
||||
@@ -98,7 +101,13 @@
|
||||
}
|
||||
|
||||
}
|
||||
@@ -327,24 +341,23 @@
|
||||
@@ -322,29 +336,28 @@
|
||||
boolean flag = false;
|
||||
boolean flag1 = false;
|
||||
AbstractRailBlock abstractrailblock = (AbstractRailBlock)p_180460_2_.func_177230_c();
|
||||
- if (abstractrailblock == Blocks.field_196552_aC) {
|
||||
+ if (abstractrailblock instanceof PoweredRailBlock && !((PoweredRailBlock) abstractrailblock).isActivatorRail()) {
|
||||
flag = p_180460_2_.func_177229_b(PoweredRailBlock.field_176569_M);
|
||||
flag1 = !flag;
|
||||
}
|
||||
|
||||
@@ -238,7 +247,7 @@
|
||||
+ public void moveMinecartOnRail(BlockPos pos) { //Non-default because getMaximumSpeed is protected
|
||||
+ AbstractMinecartEntity mc = getMinecart();
|
||||
+ double d24 = mc.func_184207_aI() ? 0.75D : 1.0D;
|
||||
+ double d25 = mc.func_174898_m();
|
||||
+ double d25 = mc.getMaxSpeedWithRail();
|
||||
+ Vec3d vec3d1 = mc.func_213322_ci();
|
||||
+ mc.func_213315_a(MoverType.SELF, new Vec3d(MathHelper.func_151237_a(d24 * vec3d1.field_72450_a, -d25, d25), 0.0D, MathHelper.func_151237_a(d24 * vec3d1.field_72449_c, -d25, d25)));
|
||||
+ }
|
||||
|
||||
+9
-2
@@ -1,7 +1,14 @@
|
||||
--- a/net/minecraft/entity/item/minecart/ContainerMinecartEntity.java
|
||||
+++ b/net/minecraft/entity/item/minecart/ContainerMinecartEntity.java
|
||||
@@ -115,12 +115,14 @@
|
||||
return super.func_212321_a(p_212321_1_);
|
||||
@@ -110,17 +110,19 @@
|
||||
}
|
||||
|
||||
@Nullable
|
||||
- public Entity func_212321_a(DimensionType p_212321_1_) {
|
||||
+ public Entity changeDimension(DimensionType p_212321_1_, net.minecraftforge.common.util.ITeleporter teleporter) {
|
||||
this.field_94112_b = false;
|
||||
- return super.func_212321_a(p_212321_1_);
|
||||
+ return super.changeDimension(p_212321_1_, teleporter);
|
||||
}
|
||||
|
||||
- public void func_70106_y() {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/entity/item/minecart/FurnaceMinecartEntity.java
|
||||
+++ b/net/minecraft/entity/item/minecart/FurnaceMinecartEntity.java
|
||||
@@ -114,6 +114,7 @@
|
||||
@@ -110,6 +110,7 @@
|
||||
}
|
||||
|
||||
public boolean func_184230_a(PlayerEntity p_184230_1_, Hand p_184230_2_) {
|
||||
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
--- a/net/minecraft/entity/merchant/villager/AbstractVillagerEntity.java
|
||||
+++ b/net/minecraft/entity/merchant/villager/AbstractVillagerEntity.java
|
||||
@@ -179,9 +179,9 @@
|
||||
}
|
||||
|
||||
@Nullable
|
||||
- public Entity func_212321_a(DimensionType p_212321_1_) {
|
||||
+ public Entity changeDimension(DimensionType p_212321_1_, net.minecraftforge.common.util.ITeleporter teleporter) {
|
||||
this.func_213750_eg();
|
||||
- return super.func_212321_a(p_212321_1_);
|
||||
+ return super.changeDimension(p_212321_1_, teleporter);
|
||||
}
|
||||
|
||||
protected void func_213750_eg() {
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/entity/passive/BeeEntity.java
|
||||
+++ b/net/minecraft/entity/passive/BeeEntity.java
|
||||
@@ -438,7 +438,7 @@
|
||||
return false;
|
||||
} else {
|
||||
TileEntity tileentity = this.field_70170_p.func_175625_s(this.field_226369_bI_);
|
||||
- return tileentity != null && tileentity.func_200662_C() == TileEntityType.field_226985_G_;
|
||||
+ return tileentity instanceof BeehiveTileEntity;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -304,16 +304,15 @@
|
||||
this.func_226560_a_(p_213819_1_, false, true);
|
||||
return Either.left(PlayerEntity.SleepResult.NOT_POSSIBLE_NOW);
|
||||
}
|
||||
@@ -1274,6 +1341,8 @@
|
||||
@@ -1273,6 +1340,7 @@
|
||||
}
|
||||
|
||||
private boolean func_190774_a(BlockPos p_190774_1_, Direction p_190774_2_) {
|
||||
if (Math.abs(this.func_226277_ct_() - (double)p_190774_1_.func_177958_n()) <= 3.0D && Math.abs(this.func_226278_cu_() - (double)p_190774_1_.func_177956_o()) <= 2.0D && Math.abs(this.func_226281_cx_() - (double)p_190774_1_.func_177952_p()) <= 3.0D) {
|
||||
return true;
|
||||
+ } else if (p_190774_2_ == null) {
|
||||
+ return false;
|
||||
} else {
|
||||
BlockPos blockpos = p_190774_1_.func_177972_a(p_190774_2_.func_176734_d());
|
||||
return Math.abs(this.func_226277_ct_() - (double)blockpos.func_177958_n()) <= 3.0D && Math.abs(this.func_226278_cu_() - (double)blockpos.func_177956_o()) <= 2.0D && Math.abs(this.func_226281_cx_() - (double)blockpos.func_177952_p()) <= 3.0D;
|
||||
@@ -1286,6 +1355,7 @@
|
||||
+ if (p_190774_2_ == null) return false;
|
||||
return this.func_230126_g_(p_190774_1_) || this.func_230126_g_(p_190774_1_.func_177972_a(p_190774_2_.func_176734_d()));
|
||||
}
|
||||
|
||||
@@ -1287,6 +1355,7 @@
|
||||
}
|
||||
|
||||
public void func_225652_a_(boolean p_225652_1_, boolean p_225652_2_) {
|
||||
@@ -321,7 +320,7 @@
|
||||
super.func_213366_dy();
|
||||
if (this.field_70170_p instanceof ServerWorld && p_225652_2_) {
|
||||
((ServerWorld)this.field_70170_p).func_72854_c();
|
||||
@@ -1299,17 +1369,17 @@
|
||||
@@ -1300,17 +1369,17 @@
|
||||
}
|
||||
|
||||
public static Optional<Vec3d> func_213822_a(IWorldReader p_213822_0_, BlockPos p_213822_1_, boolean p_213822_2_) {
|
||||
@@ -343,7 +342,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1324,15 +1394,62 @@
|
||||
@@ -1325,15 +1394,62 @@
|
||||
public void func_146105_b(ITextComponent p_146105_1_, boolean p_146105_2_) {
|
||||
}
|
||||
|
||||
@@ -408,7 +407,7 @@
|
||||
if (p_226560_1_ != null) {
|
||||
if (p_226560_3_ && !p_226560_1_.equals(this.field_71077_c)) {
|
||||
this.func_145747_a(new TranslationTextComponent("block.minecraft.bed.set_spawn"));
|
||||
@@ -1505,6 +1622,7 @@
|
||||
@@ -1506,6 +1622,7 @@
|
||||
|
||||
public boolean func_225503_b_(float p_225503_1_, float p_225503_2_) {
|
||||
if (this.field_71075_bZ.field_75101_c) {
|
||||
@@ -416,7 +415,7 @@
|
||||
return false;
|
||||
} else {
|
||||
if (p_225503_1_ >= 2.0F) {
|
||||
@@ -1559,6 +1677,10 @@
|
||||
@@ -1560,6 +1677,10 @@
|
||||
}
|
||||
|
||||
public void func_195068_e(int p_195068_1_) {
|
||||
@@ -427,7 +426,16 @@
|
||||
this.func_85039_t(p_195068_1_);
|
||||
this.field_71106_cc += (float)p_195068_1_ / (float)this.func_71050_bK();
|
||||
this.field_71067_cb = MathHelper.func_76125_a(this.field_71067_cb + p_195068_1_, 0, Integer.MAX_VALUE);
|
||||
@@ -1598,6 +1720,10 @@
|
||||
@@ -1588,7 +1709,7 @@
|
||||
}
|
||||
|
||||
public void func_192024_a(ItemStack p_192024_1_, int p_192024_2_) {
|
||||
- this.field_71068_ca -= p_192024_2_;
|
||||
+ func_82242_a(-p_192024_2_);
|
||||
if (this.field_71068_ca < 0) {
|
||||
this.field_71068_ca = 0;
|
||||
this.field_71106_cc = 0.0F;
|
||||
@@ -1599,6 +1720,10 @@
|
||||
}
|
||||
|
||||
public void func_82242_a(int p_82242_1_) {
|
||||
@@ -438,7 +446,7 @@
|
||||
this.field_71068_ca += p_82242_1_;
|
||||
if (this.field_71068_ca < 0) {
|
||||
this.field_71068_ca = 0;
|
||||
@@ -1788,7 +1914,10 @@
|
||||
@@ -1789,7 +1914,10 @@
|
||||
}
|
||||
|
||||
public ITextComponent func_145748_c_() {
|
||||
@@ -450,7 +458,7 @@
|
||||
return this.func_208016_c(itextcomponent);
|
||||
}
|
||||
|
||||
@@ -2028,4 +2157,45 @@
|
||||
@@ -2029,4 +2157,45 @@
|
||||
return this.field_221260_g;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,18 +8,26 @@
|
||||
boolean flag = this.field_70170_p.func_82736_K().func_223586_b(GameRules.field_223609_l);
|
||||
if (flag) {
|
||||
ITextComponent itextcomponent = this.func_110142_aN().func_151521_b();
|
||||
@@ -550,8 +551,10 @@
|
||||
@@ -550,13 +551,15 @@
|
||||
return this.field_71133_b.func_71219_W();
|
||||
}
|
||||
|
||||
+ @Override
|
||||
@Nullable
|
||||
public Entity func_212321_a(DimensionType p_212321_1_) {
|
||||
- public Entity func_212321_a(DimensionType p_212321_1_) {
|
||||
+ public Entity changeDimension(DimensionType p_212321_1_, net.minecraftforge.common.util.ITeleporter teleporter) {
|
||||
+ if (!net.minecraftforge.common.ForgeHooks.onTravelToDimension(this, p_212321_1_)) return null;
|
||||
this.field_184851_cj = true;
|
||||
DimensionType dimensiontype = this.field_71093_bK;
|
||||
if (dimensiontype == DimensionType.field_223229_c_ && p_212321_1_ == DimensionType.field_223227_a_) {
|
||||
@@ -569,12 +572,13 @@
|
||||
- if (dimensiontype == DimensionType.field_223229_c_ && p_212321_1_ == DimensionType.field_223227_a_) {
|
||||
+ if (dimensiontype == DimensionType.field_223229_c_ && p_212321_1_ == DimensionType.field_223227_a_ && teleporter instanceof net.minecraft.world.Teleporter) { //Forge: Fix non-vanilla teleporters triggering end credits
|
||||
this.func_213319_R();
|
||||
- this.func_71121_q().func_217434_e(this);
|
||||
+ this.func_71121_q().removePlayer(this, true); //Forge: The player entity is cloned so keep the data until after cloning calls copyFrom
|
||||
if (!this.field_71136_j) {
|
||||
this.field_71136_j = true;
|
||||
this.field_71135_a.func_147359_a(new SChangeGameStatePacket(4, this.field_192040_cp ? 0.0F : 1.0F));
|
||||
@@ -569,12 +572,14 @@
|
||||
this.field_71093_bK = p_212321_1_;
|
||||
ServerWorld serverworld1 = this.field_71133_b.func_71218_a(p_212321_1_);
|
||||
WorldInfo worldinfo = serverworld1.func_72912_H();
|
||||
@@ -32,10 +40,11 @@
|
||||
- this.field_70128_L = false;
|
||||
+ serverworld.removeEntity(this, true); //Forge: the player entity is moved to the new world, NOT cloned. So keep the data alive with no matching invalidate call.
|
||||
+ this.revive();
|
||||
+ Entity e = teleporter.placeEntity(this, serverworld, serverworld1, this.field_70177_z, spawnPortal -> {//Forge: Start vanilla logic
|
||||
double d0 = this.func_226277_ct_();
|
||||
double d1 = this.func_226278_cu_();
|
||||
double d2 = this.func_226281_cx_();
|
||||
@@ -583,13 +587,11 @@
|
||||
@@ -583,13 +588,11 @@
|
||||
double d3 = 8.0D;
|
||||
float f2 = f1;
|
||||
serverworld.func_217381_Z().func_76320_a("moving");
|
||||
@@ -52,7 +61,26 @@
|
||||
} else if (dimensiontype == DimensionType.field_223227_a_ && p_212321_1_ == DimensionType.field_223229_c_) {
|
||||
BlockPos blockpos = serverworld1.func_180504_m();
|
||||
d0 = (double)blockpos.func_177958_n();
|
||||
@@ -653,6 +655,7 @@
|
||||
@@ -630,7 +633,7 @@
|
||||
|
||||
this.func_70012_b((double)i, (double)j, (double)k, f1, 0.0F);
|
||||
this.func_213317_d(Vec3d.field_186680_a);
|
||||
- } else if (!serverworld1.func_85176_s().func_222268_a(this, f2)) {
|
||||
+ } else if (spawnPortal && !serverworld1.func_85176_s().func_222268_a(this, f2)) {
|
||||
serverworld1.func_85176_s().func_85188_a(this);
|
||||
serverworld1.func_85176_s().func_222268_a(this, f2);
|
||||
}
|
||||
@@ -640,6 +643,9 @@
|
||||
serverworld1.func_217447_b(this);
|
||||
this.func_213846_b(serverworld);
|
||||
this.field_71135_a.func_147364_a(this.func_226277_ct_(), this.func_226278_cu_(), this.func_226281_cx_(), f1, f);
|
||||
+ return this;//forge: this is part of the ITeleporter patch
|
||||
+ });//Forge: End vanilla logic
|
||||
+ if (e != this) throw new java.lang.IllegalArgumentException(String.format("Teleporter %s returned not the player entity but instead %s, expected PlayerEntity %s", teleporter, e, this));
|
||||
this.field_71134_c.func_73080_a(serverworld1);
|
||||
this.field_71135_a.func_147359_a(new SPlayerAbilitiesPacket(this.field_71075_bZ));
|
||||
playerlist.func_72354_b(this, serverworld1);
|
||||
@@ -653,6 +659,7 @@
|
||||
this.field_71144_ck = -1;
|
||||
this.field_71149_ch = -1.0F;
|
||||
this.field_71146_ci = -1;
|
||||
@@ -60,7 +88,7 @@
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -788,6 +791,7 @@
|
||||
@@ -788,6 +795,7 @@
|
||||
this.field_71135_a.func_147359_a(new SOpenWindowPacket(container.field_75152_c, container.func_216957_a(), p_213829_1_.func_145748_c_()));
|
||||
container.func_75132_a(this);
|
||||
this.field_71070_bA = container;
|
||||
@@ -68,7 +96,7 @@
|
||||
return OptionalInt.of(this.field_71139_cq);
|
||||
}
|
||||
}
|
||||
@@ -806,6 +810,7 @@
|
||||
@@ -806,6 +814,7 @@
|
||||
this.field_71135_a.func_147359_a(new SOpenHorseWindowPacket(this.field_71139_cq, p_184826_2_.func_70302_i_(), p_184826_1_.func_145782_y()));
|
||||
this.field_71070_bA = new HorseInventoryContainer(this.field_71139_cq, this.field_71071_by, p_184826_2_, p_184826_1_);
|
||||
this.field_71070_bA.func_75132_a(this);
|
||||
@@ -76,7 +104,7 @@
|
||||
}
|
||||
|
||||
public void func_184814_a(ItemStack p_184814_1_, Hand p_184814_2_) {
|
||||
@@ -863,6 +868,7 @@
|
||||
@@ -863,6 +872,7 @@
|
||||
|
||||
public void func_71128_l() {
|
||||
this.field_71070_bA.func_75134_a(this);
|
||||
@@ -84,7 +112,7 @@
|
||||
this.field_71070_bA = this.field_71069_bz;
|
||||
}
|
||||
|
||||
@@ -989,6 +995,20 @@
|
||||
@@ -989,6 +999,20 @@
|
||||
this.field_193110_cw = p_193104_1_.field_193110_cw;
|
||||
this.func_192029_h(p_193104_1_.func_192023_dk());
|
||||
this.func_192031_i(p_193104_1_.func_192025_dl());
|
||||
@@ -105,12 +133,13 @@
|
||||
}
|
||||
|
||||
protected void func_70670_a(EffectInstance p_70670_1_) {
|
||||
@@ -1207,15 +1227,16 @@
|
||||
@@ -1207,15 +1231,17 @@
|
||||
this.func_184210_p();
|
||||
if (p_200619_1_ == this.field_70170_p) {
|
||||
this.field_71135_a.func_147364_a(p_200619_2_, p_200619_4_, p_200619_6_, p_200619_8_, p_200619_9_);
|
||||
- } else {
|
||||
+ } else if (net.minecraftforge.common.ForgeHooks.onTravelToDimension(this, p_200619_1_.field_73011_w.func_186058_p())) {
|
||||
+ DimensionType oldDimension = this.field_71093_bK;
|
||||
ServerWorld serverworld = this.func_71121_q();
|
||||
this.field_71093_bK = p_200619_1_.field_73011_w.func_186058_p();
|
||||
WorldInfo worldinfo = p_200619_1_.func_72912_H();
|
||||
@@ -125,15 +154,15 @@
|
||||
this.func_70012_b(p_200619_2_, p_200619_4_, p_200619_6_, p_200619_8_, p_200619_9_);
|
||||
this.func_70029_a(p_200619_1_);
|
||||
p_200619_1_.func_217446_a(this);
|
||||
@@ -1224,6 +1245,7 @@
|
||||
@@ -1224,6 +1250,7 @@
|
||||
this.field_71134_c.func_73080_a(p_200619_1_);
|
||||
this.field_71133_b.func_184103_al().func_72354_b(this, p_200619_1_);
|
||||
this.field_71133_b.func_184103_al().func_72385_f(this);
|
||||
+ net.minecraftforge.fml.hooks.BasicEventHooks.firePlayerChangedDimensionEvent(this, p_200619_1_.field_73011_w.func_186058_p(), this.field_71093_bK);
|
||||
+ net.minecraftforge.fml.hooks.BasicEventHooks.firePlayerChangedDimensionEvent(this, oldDimension, this.field_71093_bK);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1261,6 +1283,8 @@
|
||||
@@ -1261,6 +1288,8 @@
|
||||
if (itementity == null) {
|
||||
return null;
|
||||
} else {
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
--- a/net/minecraft/entity/projectile/ArrowEntity.java
|
||||
+++ b/net/minecraft/entity/projectile/ArrowEntity.java
|
||||
@@ -59,7 +59,7 @@
|
||||
} else if (p_184555_1_.func_77973_b() == Items.field_151032_g) {
|
||||
this.field_184560_g = Potions.field_185229_a;
|
||||
this.field_184561_h.clear();
|
||||
- this.field_70180_af.func_187227_b(field_184559_f, -1);
|
||||
+ this.func_191507_d(-1); // Forge: fix MC-107941
|
||||
}
|
||||
|
||||
}
|
||||
@@ -41,7 +41,35 @@
|
||||
ItemStack itemstack1 = this.func_150910_a(itemstack, p_77659_2_, fluid.func_204524_b());
|
||||
if (!p_77659_1_.field_72995_K) {
|
||||
CriteriaTriggers.field_204813_j.func_204817_a((ServerPlayerEntity)p_77659_2_, new ItemStack(fluid.func_204524_b()));
|
||||
@@ -148,7 +165,19 @@
|
||||
@@ -67,7 +84,7 @@
|
||||
return ActionResult.func_226251_d_(itemstack);
|
||||
} else {
|
||||
BlockState blockstate = p_77659_1_.func_180495_p(blockpos);
|
||||
- BlockPos blockpos2 = blockstate.func_177230_c() instanceof ILiquidContainer && this.field_77876_a == Fluids.field_204546_a ? blockpos : blockpos1;
|
||||
+ BlockPos blockpos2 = canBlockContainFluid(p_77659_1_, blockpos, blockstate) ? blockpos : blockpos1;
|
||||
if (this.func_180616_a(p_77659_2_, p_77659_1_, blockpos2, blockraytraceresult)) {
|
||||
this.func_203792_a(p_77659_1_, itemstack, blockpos2);
|
||||
if (p_77659_2_ instanceof ServerPlayerEntity) {
|
||||
@@ -117,7 +134,8 @@
|
||||
BlockState blockstate = p_180616_2_.func_180495_p(p_180616_3_);
|
||||
Material material = blockstate.func_185904_a();
|
||||
boolean flag = blockstate.func_227032_a_(this.field_77876_a);
|
||||
- if (blockstate.func_196958_f() || flag || blockstate.func_177230_c() instanceof ILiquidContainer && ((ILiquidContainer)blockstate.func_177230_c()).func_204510_a(p_180616_2_, p_180616_3_, blockstate, this.field_77876_a)) {
|
||||
+ boolean canContainFluid = canBlockContainFluid(p_180616_2_, p_180616_3_, blockstate);
|
||||
+ if (blockstate.func_196958_f() || flag || canContainFluid) {
|
||||
if (p_180616_2_.field_73011_w.func_177500_n() && this.field_77876_a.func_207185_a(FluidTags.field_206959_a)) {
|
||||
int i = p_180616_3_.func_177958_n();
|
||||
int j = p_180616_3_.func_177956_o();
|
||||
@@ -127,7 +145,7 @@
|
||||
for(int l = 0; l < 8; ++l) {
|
||||
p_180616_2_.func_195594_a(ParticleTypes.field_197594_E, (double)i + Math.random(), (double)j + Math.random(), (double)k + Math.random(), 0.0D, 0.0D, 0.0D);
|
||||
}
|
||||
- } else if (blockstate.func_177230_c() instanceof ILiquidContainer && this.field_77876_a == Fluids.field_204546_a) {
|
||||
+ } else if (canContainFluid) {
|
||||
if (((ILiquidContainer)blockstate.func_177230_c()).func_204509_a(p_180616_2_, p_180616_3_, blockstate, ((FlowingFluid)this.field_77876_a).func_207204_a(false))) {
|
||||
this.func_203791_b(p_180616_1_, p_180616_2_, p_180616_3_);
|
||||
}
|
||||
@@ -148,7 +166,24 @@
|
||||
}
|
||||
|
||||
protected void func_203791_b(@Nullable PlayerEntity p_203791_1_, IWorld p_203791_2_, BlockPos p_203791_3_) {
|
||||
@@ -61,4 +89,9 @@
|
||||
+
|
||||
+ private final java.util.function.Supplier<? extends Fluid> fluidSupplier;
|
||||
+ public Fluid getFluid() { return fluidSupplier.get(); }
|
||||
+
|
||||
+ private boolean canBlockContainFluid(World worldIn, BlockPos posIn, BlockState blockstate)
|
||||
+ {
|
||||
+ return blockstate.func_177230_c() instanceof ILiquidContainer && ((ILiquidContainer)blockstate.func_177230_c()).func_204510_a(worldIn, posIn, blockstate, this.field_77876_a);
|
||||
+ }
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
--- a/net/minecraft/item/FishBucketItem.java
|
||||
+++ b/net/minecraft/item/FishBucketItem.java
|
||||
@@ -25,11 +25,19 @@
|
||||
public class FishBucketItem extends BucketItem {
|
||||
private final EntityType<?> field_203794_a;
|
||||
|
||||
+ @Deprecated
|
||||
public FishBucketItem(EntityType<?> p_i49022_1_, Fluid p_i49022_2_, Item.Properties p_i49022_3_) {
|
||||
super(p_i49022_2_, p_i49022_3_);
|
||||
this.field_203794_a = p_i49022_1_;
|
||||
+ this.fishTypeSupplier = () -> p_i49022_1_;
|
||||
}
|
||||
|
||||
+ public FishBucketItem(java.util.function.Supplier<? extends EntityType<?>> fishTypeIn, java.util.function.Supplier<? extends Fluid> p_i49022_2_, Item.Properties builder) {
|
||||
+ super(p_i49022_2_, builder);
|
||||
+ this.field_203794_a = null;
|
||||
+ this.fishTypeSupplier = fishTypeIn;
|
||||
+ }
|
||||
+
|
||||
public void func_203792_a(World p_203792_1_, ItemStack p_203792_2_, BlockPos p_203792_3_) {
|
||||
if (!p_203792_1_.field_72995_K) {
|
||||
this.func_205357_b(p_203792_1_, p_203792_2_, p_203792_3_);
|
||||
@@ -78,4 +86,9 @@
|
||||
}
|
||||
|
||||
}
|
||||
+
|
||||
+ private final java.util.function.Supplier<? extends EntityType<?>> fishTypeSupplier;
|
||||
+ protected EntityType<?> getFishType() {
|
||||
+ return fishTypeSupplier.get();
|
||||
+ }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
--- a/net/minecraft/item/FlintAndSteelItem.java
|
||||
+++ b/net/minecraft/item/FlintAndSteelItem.java
|
||||
@@ -65,7 +65,8 @@
|
||||
boolean flag = false;
|
||||
|
||||
for(Direction direction : Direction.Plane.HORIZONTAL) {
|
||||
- if (p_219996_1_.func_180495_p(p_219996_2_.func_177972_a(direction)).func_177230_c() == Blocks.field_150343_Z && ((NetherPortalBlock)Blocks.field_150427_aO).func_201816_b(p_219996_1_, p_219996_2_) != null) {
|
||||
+ BlockPos framePos = p_219996_2_.func_177972_a(direction);
|
||||
+ if (p_219996_1_.func_180495_p(framePos).isPortalFrame(p_219996_1_, framePos) && ((NetherPortalBlock)Blocks.field_150427_aO).func_201816_b(p_219996_1_, p_219996_2_) != null) {
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
--- a/net/minecraft/item/Food.java
|
||||
+++ b/net/minecraft/item/Food.java
|
||||
@@ -11,15 +11,26 @@
|
||||
private final boolean field_221472_c;
|
||||
private final boolean field_221473_d;
|
||||
private final boolean field_221474_e;
|
||||
- private final List<Pair<EffectInstance, Float>> field_221475_f;
|
||||
+ private final List<Pair<java.util.function.Supplier<EffectInstance>, Float>> field_221475_f;
|
||||
+
|
||||
+ private Food(Food.Builder builder) {
|
||||
+ this.field_221470_a = builder.field_221458_a;
|
||||
+ this.field_221471_b = builder.field_221459_b;
|
||||
+ this.field_221472_c = builder.field_221460_c;
|
||||
+ this.field_221473_d = builder.field_221461_d;
|
||||
+ this.field_221474_e = builder.field_221462_e;
|
||||
+ this.field_221475_f = builder.field_221463_f;
|
||||
+ }
|
||||
|
||||
+ // Forge: Use builder method instead
|
||||
+ @Deprecated
|
||||
private Food(int p_i50106_1_, float p_i50106_2_, boolean p_i50106_3_, boolean p_i50106_4_, boolean p_i50106_5_, List<Pair<EffectInstance, Float>> p_i50106_6_) {
|
||||
this.field_221470_a = p_i50106_1_;
|
||||
this.field_221471_b = p_i50106_2_;
|
||||
this.field_221472_c = p_i50106_3_;
|
||||
this.field_221473_d = p_i50106_4_;
|
||||
this.field_221474_e = p_i50106_5_;
|
||||
- this.field_221475_f = p_i50106_6_;
|
||||
+ this.field_221475_f = p_i50106_6_.stream().map(pair -> Pair.<java.util.function.Supplier<EffectInstance>, Float>of(pair::getLeft, pair.getRight())).collect(java.util.stream.Collectors.toList());
|
||||
}
|
||||
|
||||
public int func_221466_a() {
|
||||
@@ -43,7 +54,7 @@
|
||||
}
|
||||
|
||||
public List<Pair<EffectInstance, Float>> func_221464_f() {
|
||||
- return this.field_221475_f;
|
||||
+ return this.field_221475_f.stream().map(pair -> Pair.of(pair.getLeft() != null ? pair.getLeft().get() : null, pair.getRight())).collect(java.util.stream.Collectors.toList());
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
@@ -52,7 +63,7 @@
|
||||
private boolean field_221460_c;
|
||||
private boolean field_221461_d;
|
||||
private boolean field_221462_e;
|
||||
- private final List<Pair<EffectInstance, Float>> field_221463_f = Lists.newArrayList();
|
||||
+ private final List<Pair<java.util.function.Supplier<EffectInstance>, Float>> field_221463_f = Lists.newArrayList();
|
||||
|
||||
public Food.Builder func_221456_a(int p_221456_1_) {
|
||||
this.field_221458_a = p_221456_1_;
|
||||
@@ -78,14 +89,21 @@
|
||||
this.field_221462_e = true;
|
||||
return this;
|
||||
}
|
||||
+
|
||||
+ public Food.Builder effect(java.util.function.Supplier<EffectInstance> effectIn, float probability) {
|
||||
+ this.field_221463_f.add(Pair.of(effectIn, probability));
|
||||
+ return this;
|
||||
+ }
|
||||
|
||||
+ // Forge: Use supplier method instead
|
||||
+ @Deprecated
|
||||
public Food.Builder func_221452_a(EffectInstance p_221452_1_, float p_221452_2_) {
|
||||
- this.field_221463_f.add(Pair.of(p_221452_1_, p_221452_2_));
|
||||
+ this.field_221463_f.add(Pair.of(() -> p_221452_1_, p_221452_2_));
|
||||
return this;
|
||||
}
|
||||
|
||||
public Food func_221453_d() {
|
||||
- return new Food(this.field_221458_a, this.field_221459_b, this.field_221460_c, this.field_221461_d, this.field_221462_e, this.field_221463_f);
|
||||
+ return new Food(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17,8 +17,8 @@
|
||||
}
|
||||
+ this.canRepair = p_i48487_1_.canRepair;
|
||||
+ this.toolClasses.putAll(p_i48487_1_.toolClasses);
|
||||
+ Object tmp = p_i48487_1_.teisr == null ? null : net.minecraftforge.fml.DistExecutor.callWhenOn(Dist.CLIENT, p_i48487_1_.teisr);
|
||||
+ this.teisr = tmp == null ? null : () -> (net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer) tmp;
|
||||
+ Object tmp = p_i48487_1_.ister == null ? null : net.minecraftforge.fml.DistExecutor.callWhenOn(Dist.CLIENT, p_i48487_1_.ister);
|
||||
+ this.ister = tmp == null ? null : () -> (net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer) tmp;
|
||||
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
}
|
||||
|
||||
+ @Nullable
|
||||
+ private final java.util.function.Supplier<net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer> teisr;
|
||||
+ private final java.util.function.Supplier<net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer> ister;
|
||||
+ private final java.util.Map<net.minecraftforge.common.ToolType, Integer> toolClasses = Maps.newHashMap();
|
||||
+ private final net.minecraftforge.common.util.ReverseTagWrapper<Item> reverseTags = new net.minecraftforge.common.util.ReverseTagWrapper<>(this, net.minecraft.tags.ItemTags::getGeneration, net.minecraft.tags.ItemTags::func_199903_a);
|
||||
+ protected final boolean canRepair;
|
||||
@@ -108,8 +108,8 @@
|
||||
+
|
||||
+ @OnlyIn(Dist.CLIENT)
|
||||
+ @Override
|
||||
+ public final net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer getTileEntityItemStackRenderer() {
|
||||
+ net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer renderer = teisr != null ? teisr.get() : null;
|
||||
+ public final net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer getItemStackTileEntityRenderer() {
|
||||
+ net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer renderer = ister != null ? ister.get() : null;
|
||||
+ return renderer != null ? renderer : net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer.field_147719_a;
|
||||
+ }
|
||||
+
|
||||
@@ -127,7 +127,7 @@
|
||||
private Food field_221541_f;
|
||||
+ private boolean canRepair = true;
|
||||
+ private java.util.Map<net.minecraftforge.common.ToolType, Integer> toolClasses = Maps.newHashMap();
|
||||
+ private java.util.function.Supplier<java.util.concurrent.Callable<net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer>> teisr;
|
||||
+ private java.util.function.Supplier<java.util.concurrent.Callable<net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer>> ister;
|
||||
|
||||
public Item.Properties func_221540_a(Food p_221540_1_) {
|
||||
this.field_221541_f = p_221540_1_;
|
||||
@@ -146,8 +146,8 @@
|
||||
+ return this;
|
||||
+ }
|
||||
+
|
||||
+ public Item.Properties setTEISR(java.util.function.Supplier<java.util.concurrent.Callable<net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer>> teisr) {
|
||||
+ this.teisr = teisr;
|
||||
+ public Item.Properties setISTER(java.util.function.Supplier<java.util.concurrent.Callable<net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer>> ister) {
|
||||
+ this.ister = ister;
|
||||
+ return this;
|
||||
+ }
|
||||
}
|
||||
|
||||
@@ -9,7 +9,18 @@
|
||||
if (p_77654_3_ instanceof ServerPlayerEntity) {
|
||||
ServerPlayerEntity serverplayerentity = (ServerPlayerEntity)p_77654_3_;
|
||||
CriteriaTriggers.field_193138_y.func_193148_a(serverplayerentity, p_77654_1_);
|
||||
@@ -44,4 +46,9 @@
|
||||
@@ -25,10 +27,6 @@
|
||||
p_77654_1_.func_190918_g(1);
|
||||
}
|
||||
|
||||
- if (!p_77654_2_.field_72995_K) {
|
||||
- p_77654_3_.func_195061_cb();
|
||||
- }
|
||||
-
|
||||
return p_77654_1_.func_190926_b() ? new ItemStack(Items.field_151133_ar) : p_77654_1_;
|
||||
}
|
||||
|
||||
@@ -44,4 +42,9 @@
|
||||
p_77659_2_.func_184598_c(p_77659_3_);
|
||||
return ActionResult.func_226248_a_(p_77659_2_.func_184586_b(p_77659_3_));
|
||||
}
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
--- a/net/minecraft/item/MusicDiscItem.java
|
||||
+++ b/net/minecraft/item/MusicDiscItem.java
|
||||
@@ -21,17 +21,40 @@
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
public class MusicDiscItem extends Item {
|
||||
+ @Deprecated // Forge: refer to WorldRender#playRecord. Modders: there's no need to reflectively modify this map!
|
||||
private static final Map<SoundEvent, MusicDiscItem> field_150928_b = Maps.newHashMap();
|
||||
private final int field_195977_c;
|
||||
+ @Deprecated // Forge: refer to soundSupplier
|
||||
private final SoundEvent field_185076_b;
|
||||
+ private final java.util.function.Supplier<SoundEvent> soundSupplier;
|
||||
|
||||
+ @Deprecated // Forge: Use the constructor that takes a supplier instead
|
||||
protected MusicDiscItem(int p_i48475_1_, SoundEvent p_i48475_2_, Item.Properties p_i48475_3_) {
|
||||
super(p_i48475_3_);
|
||||
this.field_195977_c = p_i48475_1_;
|
||||
this.field_185076_b = p_i48475_2_;
|
||||
field_150928_b.put(this.field_185076_b, this);
|
||||
+ this.soundSupplier = this.field_185076_b.delegate;
|
||||
}
|
||||
|
||||
+ /**
|
||||
+ * For mod use, allows to create a music disc without having to create a new
|
||||
+ * SoundEvent before their registry event is fired.
|
||||
+ *
|
||||
+ * @param comparatorValue The value this music disc should output on the comparator. Must be between 0 and 15.
|
||||
+ * @param soundSupplier A supplier that provides the sound that should be played. Use a
|
||||
+ * {@link net.minecraftforge.fml.RegistryObject}{@code <SoundEvent>} or a
|
||||
+ * {@link net.minecraftforge.registries.IRegistryDelegate} for this parameter.
|
||||
+ * @param builder A set of {@link Item.Properties} that describe this item.
|
||||
+ */
|
||||
+ public MusicDiscItem(int comparatorValue, java.util.function.Supplier<SoundEvent> soundSupplier, Item.Properties builder)
|
||||
+ {
|
||||
+ super(builder);
|
||||
+ this.field_195977_c = comparatorValue;
|
||||
+ this.field_185076_b = null;
|
||||
+ this.soundSupplier = soundSupplier;
|
||||
+ }
|
||||
+
|
||||
public ActionResultType func_195939_a(ItemUseContext p_195939_1_) {
|
||||
World world = p_195939_1_.func_195991_k();
|
||||
BlockPos blockpos = p_195939_1_.func_195995_a();
|
||||
@@ -76,6 +99,6 @@
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public SoundEvent func_185075_h() {
|
||||
- return this.field_185076_b;
|
||||
+ return this.soundSupplier.get();
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
try {
|
||||
+ if (!net.minecraftforge.common.crafting.CraftingHelper.processConditions(entry.getValue(), "conditions")) {
|
||||
+ field_199521_c.info("Skipping loading recipe {} as it's conditions were not met", resourcelocation);
|
||||
+ field_199521_c.debug("Skipping loading recipe {} as it's conditions were not met", resourcelocation);
|
||||
+ continue;
|
||||
+ }
|
||||
IRecipe<?> irecipe = func_215377_a(resourcelocation, entry.getValue());
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
Vec3d vec3d1 = this.field_75514_c.func_186310_f();
|
||||
- if (Math.abs(this.field_75515_a.func_226277_ct_() - (vec3d1.field_72450_a + 0.5D)) < (double)this.field_188561_o && Math.abs(this.field_75515_a.func_226281_cx_() - (vec3d1.field_72449_c + 0.5D)) < (double)this.field_188561_o && Math.abs(this.field_75515_a.func_226278_cu_() - vec3d1.field_72448_b) < 1.0D) {
|
||||
+ // Forge: fix MC-94054
|
||||
+ if (Math.abs(this.field_75515_a.func_226277_ct_() - (vec3d1.field_72450_a + ((this.field_75515_a.func_213311_cf() + 1) / 2D))) < (double)this.field_188561_o && Math.abs(this.field_75515_a.func_226281_cx_() - (vec3d1.field_72449_c + ((this.field_75515_a.func_213311_cf() + 1) / 2D))) < (double)this.field_188561_o && Math.abs(this.field_75515_a.func_226278_cu_() - vec3d1.field_72448_b) < 1.0D) {
|
||||
+ if (Math.abs(this.field_75515_a.func_226277_ct_() - (vec3d1.field_72450_a + ((int)(this.field_75515_a.func_213311_cf() + 1) / 2D))) < (double)this.field_188561_o && Math.abs(this.field_75515_a.func_226281_cx_() - (vec3d1.field_72449_c + ((int)(this.field_75515_a.func_213311_cf() + 1) / 2D))) < (double)this.field_188561_o && Math.abs(this.field_75515_a.func_226278_cu_() - vec3d1.field_72448_b) < 1.0D) {
|
||||
this.field_75514_c.func_75872_c(this.field_75514_c.func_75873_e() + 1);
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
Vec3d vec3d2 = this.field_75514_c.func_186310_f();
|
||||
- if (Math.abs(this.field_75515_a.func_226277_ct_() - (vec3d2.field_72450_a + 0.5D)) < (double)f1 && Math.abs(this.field_75515_a.func_226281_cx_() - (vec3d2.field_72449_c + 0.5D)) < (double)f1 && Math.abs(this.field_75515_a.func_226278_cu_() - vec3d2.field_72448_b) < (double)(f1 * 2.0F)) {
|
||||
+ // Forge: fix MC-94054
|
||||
+ if (Math.abs(this.field_75515_a.func_226277_ct_() - (vec3d2.field_72450_a + ((this.field_75515_a.func_213311_cf() + 1) / 2D))) < (double)f1 && Math.abs(this.field_75515_a.func_226281_cx_() - (vec3d2.field_72449_c + ((this.field_75515_a.func_213311_cf() + 1) / 2D))) < (double)f1 && Math.abs(this.field_75515_a.func_226278_cu_() - vec3d2.field_72448_b) < (double)(f1 * 2.0F)) {
|
||||
+ if (Math.abs(this.field_75515_a.func_226277_ct_() - (vec3d2.field_72450_a + ((int)(this.field_75515_a.func_213311_cf() + 1) / 2D))) < (double)f1 && Math.abs(this.field_75515_a.func_226281_cx_() - (vec3d2.field_72449_c + ((int)(this.field_75515_a.func_213311_cf() + 1) / 2D))) < (double)f1 && Math.abs(this.field_75515_a.func_226278_cu_() - vec3d2.field_72448_b) < (double)(f1 * 2.0F)) {
|
||||
this.field_75514_c.func_75875_a();
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/potion/EffectInstance.java
|
||||
+++ b/net/minecraft/potion/EffectInstance.java
|
||||
@@ -8,7 +8,7 @@
|
||||
@@ -9,7 +9,7 @@
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
@@ -9,15 +9,15 @@
|
||||
private static final Logger field_180155_a = LogManager.getLogger();
|
||||
private final Effect field_188420_b;
|
||||
private int field_76460_b;
|
||||
@@ -52,6 +52,7 @@
|
||||
this.field_82724_e = p_i1577_1_.field_82724_e;
|
||||
this.field_188421_h = p_i1577_1_.field_188421_h;
|
||||
this.field_205349_i = p_i1577_1_.field_205349_i;
|
||||
+ this.curativeItems = p_i1577_1_.curativeItems == null ? null : new java.util.ArrayList<net.minecraft.item.ItemStack>(p_i1577_1_.curativeItems);
|
||||
@@ -64,6 +64,7 @@
|
||||
this.field_82724_e = p_230117_1_.field_82724_e;
|
||||
this.field_188421_h = p_230117_1_.field_188421_h;
|
||||
this.field_205349_i = p_230117_1_.field_205349_i;
|
||||
+ this.curativeItems = p_230117_1_.curativeItems == null ? null : new java.util.ArrayList<net.minecraft.item.ItemStack>(p_230117_1_.curativeItems);
|
||||
}
|
||||
|
||||
public boolean func_199308_a(EffectInstance p_199308_1_) {
|
||||
@@ -88,7 +89,7 @@
|
||||
@@ -112,7 +113,7 @@
|
||||
}
|
||||
|
||||
public Effect func_188419_a() {
|
||||
@@ -26,30 +26,30 @@
|
||||
}
|
||||
|
||||
public int func_76459_b() {
|
||||
@@ -188,11 +189,12 @@
|
||||
p_82719_1_.func_74757_a("Ambient", this.func_82720_e());
|
||||
p_82719_1_.func_74757_a("ShowParticles", this.func_188418_e());
|
||||
p_82719_1_.func_74757_a("ShowIcon", this.func_205348_f());
|
||||
+ writeCurativeItems(p_82719_1_);
|
||||
return p_82719_1_;
|
||||
@@ -231,11 +232,12 @@
|
||||
this.field_230115_j_.func_82719_a(compoundnbt);
|
||||
p_230119_1_.func_218657_a("HiddenEffect", compoundnbt);
|
||||
}
|
||||
+ writeCurativeItems(p_230119_1_);
|
||||
|
||||
}
|
||||
|
||||
public static EffectInstance func_82722_b(CompoundNBT p_82722_0_) {
|
||||
- int i = p_82722_0_.func_74771_c("Id");
|
||||
+ int i = p_82722_0_.func_74771_c("Id") & 0xFF;
|
||||
Effect effect = Effect.func_188412_a(i);
|
||||
if (effect == null) {
|
||||
return null;
|
||||
@@ -210,7 +212,7 @@
|
||||
flag2 = p_82722_0_.func_74767_n("ShowIcon");
|
||||
}
|
||||
|
||||
- return new EffectInstance(effect, k, j < 0 ? 0 : j, flag, flag1, flag2);
|
||||
+ return readCurativeItems(new EffectInstance(effect, k, j < 0 ? 0 : j, flag, flag1, flag2), p_82722_0_);
|
||||
return effect == null ? null : func_230116_a_(effect, p_82722_0_);
|
||||
}
|
||||
@@ -259,7 +261,7 @@
|
||||
effectinstance = func_230116_a_(p_230116_0_, p_230116_1_.func_74775_l("HiddenEffect"));
|
||||
}
|
||||
|
||||
- return new EffectInstance(p_230116_0_, j, i < 0 ? 0 : i, flag, flag1, flag2, effectinstance);
|
||||
+ return readCurativeItems(new EffectInstance(p_230116_0_, j, i < 0 ? 0 : i, flag, flag1, flag2, effectinstance), p_230116_1_);
|
||||
}
|
||||
|
||||
@@ -226,6 +228,32 @@
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
@@ -274,6 +276,32 @@
|
||||
|
||||
public int compareTo(EffectInstance p_compareTo_1_) {
|
||||
int i = 32147;
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/net/minecraft/resources/ResourcePackList.java
|
||||
+++ b/net/minecraft/resources/ResourcePackList.java
|
||||
@@ -48,7 +48,7 @@
|
||||
private void func_198986_e() {
|
||||
List<Entry<String, T>> list = Lists.newArrayList(this.field_198988_b.entrySet());
|
||||
this.field_198988_b.clear();
|
||||
- list.stream().sorted(Entry.comparingByKey()).forEachOrdered((p_198984_1_) -> {
|
||||
+ list.stream().sorted(net.minecraftforge.fml.packs.ResourcePackLoader.getSorter()).forEachOrdered((p_198984_1_) -> {
|
||||
ResourcePackInfo resourcepackinfo = (ResourcePackInfo)this.field_198988_b.put(p_198984_1_.getKey(), p_198984_1_.getValue());
|
||||
});
|
||||
}
|
||||
@@ -9,7 +9,23 @@
|
||||
p_213187_0_.setUncaughtExceptionHandler((p_213206_0_, p_213206_1_) -> {
|
||||
field_147145_h.error(p_213206_1_);
|
||||
});
|
||||
@@ -336,6 +336,8 @@
|
||||
@@ -221,6 +221,7 @@
|
||||
private final LootTableManager field_200256_aj = new LootTableManager(this.field_229734_an_);
|
||||
private final AdvancementManager field_200257_ak = new AdvancementManager();
|
||||
private final FunctionManager field_200258_al = new FunctionManager(this);
|
||||
+ private final net.minecraftforge.common.loot.LootModifierManager lootManager = new net.minecraftforge.common.loot.LootModifierManager();
|
||||
private final FrameTimer field_213215_ap = new FrameTimer();
|
||||
private boolean field_205745_an;
|
||||
private boolean field_212205_ao;
|
||||
@@ -249,6 +250,7 @@
|
||||
this.field_195576_ac.func_219534_a(this.field_200256_aj);
|
||||
this.field_195576_ac.func_219534_a(this.field_200258_al);
|
||||
this.field_195576_ac.func_219534_a(this.field_200257_ak);
|
||||
+ field_195576_ac.func_219534_a(lootManager);
|
||||
this.field_213217_au = Util.func_215072_e();
|
||||
this.field_71294_K = p_i50590_10_;
|
||||
}
|
||||
@@ -336,6 +338,8 @@
|
||||
this.func_200245_b(new TranslationTextComponent("menu.loadingLevel"));
|
||||
SaveHandler savehandler = this.func_71254_M().func_197715_a(p_71247_1_, this);
|
||||
this.func_175584_a(this.func_71270_I(), savehandler);
|
||||
@@ -18,9 +34,9 @@
|
||||
WorldInfo worldinfo = savehandler.func_75757_d();
|
||||
WorldSettings worldsettings;
|
||||
if (worldinfo == null) {
|
||||
@@ -356,13 +358,13 @@
|
||||
}
|
||||
@@ -357,13 +361,13 @@
|
||||
|
||||
worldinfo.func_230145_a_(this.getServerModName(), this.func_230045_q_().isPresent());
|
||||
this.func_195560_a(savehandler.func_75765_b(), worldinfo);
|
||||
- IChunkStatusListener ichunkstatuslistener = this.field_213220_d.create(11);
|
||||
this.func_213194_a(savehandler, worldinfo, worldsettings, ichunkstatuslistener);
|
||||
@@ -33,7 +49,7 @@
|
||||
if (this.func_71242_L()) {
|
||||
p_213194_2_.func_176127_a(field_213219_c);
|
||||
}
|
||||
@@ -406,6 +408,7 @@
|
||||
@@ -407,6 +411,7 @@
|
||||
if (dimensiontype != DimensionType.field_223227_a_) {
|
||||
this.field_71305_c.put(dimensiontype, new ServerMultiWorld(serverworld1, this, this.field_213217_au, p_213194_1_, dimensiontype, this.field_71304_b, p_213194_4_));
|
||||
}
|
||||
@@ -41,7 +57,7 @@
|
||||
}
|
||||
|
||||
}
|
||||
@@ -564,6 +567,7 @@
|
||||
@@ -565,6 +570,7 @@
|
||||
for(ServerWorld serverworld1 : this.func_212370_w()) {
|
||||
if (serverworld1 != null) {
|
||||
try {
|
||||
@@ -49,7 +65,7 @@
|
||||
serverworld1.close();
|
||||
} catch (IOException ioexception) {
|
||||
field_147145_h.error("Exception closing the level", (Throwable)ioexception);
|
||||
@@ -604,6 +608,7 @@
|
||||
@@ -605,6 +611,7 @@
|
||||
public void run() {
|
||||
try {
|
||||
if (this.func_71197_b()) {
|
||||
@@ -57,7 +73,7 @@
|
||||
this.field_211151_aa = Util.func_211177_b();
|
||||
this.field_147147_p.func_151315_a(new StringTextComponent(this.field_71286_C));
|
||||
this.field_147147_p.func_151321_a(new ServerStatusResponse.Version(SharedConstants.func_215069_a().getName(), SharedConstants.func_215069_a().getProtocolVersion()));
|
||||
@@ -635,9 +640,15 @@
|
||||
@@ -636,9 +643,15 @@
|
||||
this.field_71304_b.func_219897_b();
|
||||
this.field_71296_Q = true;
|
||||
}
|
||||
@@ -73,7 +89,7 @@
|
||||
} catch (Throwable throwable1) {
|
||||
field_147145_h.error("Encountered an unexpected exception", throwable1);
|
||||
CrashReport crashreport;
|
||||
@@ -654,6 +665,7 @@
|
||||
@@ -655,6 +668,7 @@
|
||||
field_147145_h.error("We were unable to save this crash report to disk.");
|
||||
}
|
||||
|
||||
@@ -81,7 +97,7 @@
|
||||
this.func_71228_a(crashreport);
|
||||
} finally {
|
||||
try {
|
||||
@@ -662,6 +674,7 @@
|
||||
@@ -663,6 +677,7 @@
|
||||
} catch (Throwable throwable) {
|
||||
field_147145_h.error("Exception stopping the server", throwable);
|
||||
} finally {
|
||||
@@ -89,7 +105,7 @@
|
||||
this.func_71240_o();
|
||||
}
|
||||
|
||||
@@ -758,6 +771,7 @@
|
||||
@@ -764,6 +779,7 @@
|
||||
|
||||
protected void func_71217_p(BooleanSupplier p_71217_1_) {
|
||||
long i = Util.func_211178_c();
|
||||
@@ -97,7 +113,7 @@
|
||||
++this.field_71315_w;
|
||||
this.func_71190_q(p_71217_1_);
|
||||
if (i - this.field_147142_T >= 5000000000L) {
|
||||
@@ -772,6 +786,7 @@
|
||||
@@ -778,6 +794,7 @@
|
||||
|
||||
Collections.shuffle(Arrays.asList(agameprofile));
|
||||
this.field_147147_p.func_151318_b().func_151330_a(agameprofile);
|
||||
@@ -105,7 +121,7 @@
|
||||
}
|
||||
|
||||
if (this.field_71315_w % 6000 == 0) {
|
||||
@@ -799,6 +814,7 @@
|
||||
@@ -805,6 +822,7 @@
|
||||
long i1 = Util.func_211178_c();
|
||||
this.field_213215_ap.func_181747_a(i1 - i);
|
||||
this.field_71304_b.func_76319_b();
|
||||
@@ -113,7 +129,7 @@
|
||||
}
|
||||
|
||||
protected void func_71190_q(BooleanSupplier p_71190_1_) {
|
||||
@@ -806,7 +822,8 @@
|
||||
@@ -812,7 +830,8 @@
|
||||
this.func_193030_aL().func_73660_a();
|
||||
this.field_71304_b.func_219895_b("levels");
|
||||
|
||||
@@ -123,7 +139,7 @@
|
||||
if (serverworld.field_73011_w.func_186058_p() == DimensionType.field_223227_a_ || this.func_71255_r()) {
|
||||
this.field_71304_b.func_194340_a(() -> {
|
||||
return serverworld.func_72912_H().func_76065_j() + " " + Registry.field_212622_k.func_177774_c(serverworld.field_73011_w.func_186058_p());
|
||||
@@ -818,6 +835,7 @@
|
||||
@@ -824,6 +843,7 @@
|
||||
}
|
||||
|
||||
this.field_71304_b.func_76320_a("tick");
|
||||
@@ -131,7 +147,7 @@
|
||||
|
||||
try {
|
||||
serverworld.func_72835_b(p_71190_1_);
|
||||
@@ -826,12 +844,16 @@
|
||||
@@ -832,12 +852,16 @@
|
||||
serverworld.func_72914_a(crashreport);
|
||||
throw new ReportedException(crashreport);
|
||||
}
|
||||
@@ -148,7 +164,7 @@
|
||||
this.field_71304_b.func_219895_b("connection");
|
||||
this.func_147137_ag().func_151269_c();
|
||||
this.field_71304_b.func_219895_b("players");
|
||||
@@ -872,6 +894,7 @@
|
||||
@@ -878,6 +902,7 @@
|
||||
OptionSpec<Integer> optionspec10 = optionparser.accepts("port").withRequiredArg().ofType(Integer.class).defaultsTo(-1);
|
||||
OptionSpec<String> optionspec11 = optionparser.accepts("serverId").withRequiredArg();
|
||||
OptionSpec<String> optionspec12 = optionparser.nonOptions();
|
||||
@@ -156,7 +172,16 @@
|
||||
|
||||
try {
|
||||
OptionSet optionset = optionparser.parse(p_main_0_);
|
||||
@@ -903,6 +926,10 @@
|
||||
@@ -888,7 +913,7 @@
|
||||
|
||||
Path path = Paths.get("server.properties");
|
||||
ServerPropertiesProvider serverpropertiesprovider = new ServerPropertiesProvider(path);
|
||||
- serverpropertiesprovider.func_219035_b();
|
||||
+ if (optionset.has(optionspec1) || !Files.exists(path)) serverpropertiesprovider.func_219035_b();
|
||||
Path path1 = Paths.get("eula.txt");
|
||||
ServerEula servereula = new ServerEula(path1);
|
||||
if (optionset.has(optionspec1)) {
|
||||
@@ -910,6 +935,10 @@
|
||||
GameProfileRepository gameprofilerepository = yggdrasilauthenticationservice.createProfileRepository();
|
||||
PlayerProfileCache playerprofilecache = new PlayerProfileCache(gameprofilerepository, new File(s, field_152367_a.getName()));
|
||||
String s1 = Optional.ofNullable(optionset.valueOf(optionspec9)).orElse(serverpropertiesprovider.func_219034_a().field_219021_o);
|
||||
@@ -167,7 +192,7 @@
|
||||
final DedicatedServer dedicatedserver = new DedicatedServer(new File(s), serverpropertiesprovider, DataFixesManager.func_210901_a(), yggdrasilauthenticationservice, minecraftsessionservice, gameprofilerepository, playerprofilecache, LoggingChunkStatusListener::new, s1);
|
||||
dedicatedserver.func_71224_l(optionset.valueOf(optionspec7));
|
||||
dedicatedserver.func_71208_b(optionset.valueOf(optionspec10));
|
||||
@@ -920,6 +947,7 @@
|
||||
@@ -927,6 +956,7 @@
|
||||
Thread thread = new Thread("Server Shutdown Thread") {
|
||||
public void run() {
|
||||
dedicatedserver.func_71263_m(true);
|
||||
@@ -175,7 +200,7 @@
|
||||
}
|
||||
};
|
||||
thread.setUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler(field_147145_h));
|
||||
@@ -964,7 +992,7 @@
|
||||
@@ -971,7 +1001,7 @@
|
||||
}
|
||||
|
||||
public ServerWorld func_71218_a(DimensionType p_71218_1_) {
|
||||
@@ -184,7 +209,7 @@
|
||||
}
|
||||
|
||||
public Iterable<ServerWorld> func_212370_w() {
|
||||
@@ -1003,7 +1031,7 @@
|
||||
@@ -1010,7 +1040,7 @@
|
||||
}
|
||||
|
||||
public String getServerModName() {
|
||||
@@ -193,7 +218,18 @@
|
||||
}
|
||||
|
||||
public CrashReport func_71230_b(CrashReport p_71230_1_) {
|
||||
@@ -1558,6 +1586,31 @@
|
||||
@@ -1396,6 +1426,10 @@
|
||||
public FunctionManager func_193030_aL() {
|
||||
return this.field_200258_al;
|
||||
}
|
||||
+
|
||||
+ public net.minecraftforge.common.loot.LootModifierManager getLootModifierManager() {
|
||||
+ return lootManager;
|
||||
+ }
|
||||
|
||||
public void func_193031_aM() {
|
||||
if (!this.func_213162_bc()) {
|
||||
@@ -1567,6 +1601,31 @@
|
||||
|
||||
public abstract boolean func_213199_b(GameProfile p_213199_1_);
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -96,6 +96,7 @@
|
||||
@@ -97,6 +97,7 @@
|
||||
public boolean func_71197_b() throws IOException {
|
||||
Thread thread = new Thread("Server console handler") {
|
||||
public void run() {
|
||||
@@ -8,15 +8,17 @@
|
||||
BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8));
|
||||
|
||||
String s3;
|
||||
@@ -117,6 +118,7 @@
|
||||
@@ -118,7 +119,9 @@
|
||||
field_155771_h.warn("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\"");
|
||||
}
|
||||
|
||||
+ net.minecraftforge.fml.server.ServerModLoader.begin(this);
|
||||
field_155771_h.info("Loading properties");
|
||||
+ this.field_71340_o.func_219033_a(properties -> ServerProperties.func_218985_a(java.nio.file.Paths.get("server.properties")));
|
||||
ServerProperties serverproperties = this.field_71340_o.func_219034_a();
|
||||
if (this.func_71264_H()) {
|
||||
@@ -174,6 +176,7 @@
|
||||
this.func_71189_e("127.0.0.1");
|
||||
@@ -175,6 +178,7 @@
|
||||
if (!PreYggdrasilConverter.func_219587_e(this)) {
|
||||
return false;
|
||||
} else {
|
||||
@@ -24,7 +26,7 @@
|
||||
this.func_184105_a(new DedicatedPlayerList(this));
|
||||
long i = Util.func_211178_c();
|
||||
String s = serverproperties.field_219022_p;
|
||||
@@ -195,6 +198,7 @@
|
||||
@@ -196,6 +200,7 @@
|
||||
SkullTileEntity.func_184293_a(this.func_152358_ax());
|
||||
SkullTileEntity.func_184294_a(this.func_147130_as());
|
||||
PlayerProfileCache.func_187320_a(this.func_71266_T());
|
||||
@@ -32,7 +34,7 @@
|
||||
field_155771_h.info("Preparing level \"{}\"", (Object)this.func_71270_I());
|
||||
JsonObject jsonobject = new JsonObject();
|
||||
if (worldtype == WorldType.field_77138_c) {
|
||||
@@ -207,6 +211,7 @@
|
||||
@@ -208,6 +213,7 @@
|
||||
long l = Util.func_211178_c() - i;
|
||||
String s2 = String.format(Locale.ROOT, "%.3fs", (double)l / 1.0E9D);
|
||||
field_155771_h.info("Done ({})! For help, type \"help\"", (Object)s2);
|
||||
@@ -40,7 +42,7 @@
|
||||
if (serverproperties.field_219027_u != null) {
|
||||
this.func_200252_aR().func_223585_a(GameRules.field_223620_w).func_223570_a(serverproperties.field_219027_u, this);
|
||||
}
|
||||
@@ -232,7 +237,8 @@
|
||||
@@ -233,7 +239,8 @@
|
||||
}
|
||||
|
||||
Items.field_190931_a.func_150895_a(ItemGroup.field_78027_g, NonNullList.func_191196_a());
|
||||
@@ -50,7 +52,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -542,4 +548,9 @@
|
||||
@@ -547,4 +554,9 @@
|
||||
public boolean func_213199_b(GameProfile p_213199_1_) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/server/integrated/IntegratedServer.java
|
||||
+++ b/net/minecraft/server/integrated/IntegratedServer.java
|
||||
@@ -63,6 +63,8 @@
|
||||
@@ -64,6 +64,8 @@
|
||||
this.func_71237_c(p_71247_1_);
|
||||
SaveHandler savehandler = this.func_71254_M().func_197715_a(p_71247_1_, this);
|
||||
this.func_175584_a(this.func_71270_I(), savehandler);
|
||||
@@ -9,15 +9,15 @@
|
||||
WorldInfo worldinfo = savehandler.func_75757_d();
|
||||
if (worldinfo == null) {
|
||||
worldinfo = new WorldInfo(this.field_71350_m, p_71247_2_);
|
||||
@@ -71,7 +73,6 @@
|
||||
}
|
||||
@@ -73,7 +75,6 @@
|
||||
|
||||
worldinfo.func_230145_a_(this.getServerModName(), this.func_230045_q_().isPresent());
|
||||
this.func_195560_a(savehandler.func_75765_b(), worldinfo);
|
||||
- IChunkStatusListener ichunkstatuslistener = this.field_213220_d.create(11);
|
||||
this.func_213194_a(savehandler, worldinfo, this.field_71350_m, ichunkstatuslistener);
|
||||
if (this.func_71218_a(DimensionType.field_223227_a_).func_72912_H().func_176130_y() == null) {
|
||||
this.func_147139_a(this.field_71349_l.field_71474_y.field_74318_M, true);
|
||||
@@ -89,9 +90,10 @@
|
||||
@@ -91,9 +92,10 @@
|
||||
this.func_71245_h(true);
|
||||
field_147148_h.info("Generating keypair");
|
||||
this.func_71253_a(CryptManager.func_75891_b());
|
||||
@@ -29,7 +29,7 @@
|
||||
}
|
||||
|
||||
public void func_71217_p(BooleanSupplier p_71217_1_) {
|
||||
@@ -126,6 +128,7 @@
|
||||
@@ -128,6 +130,7 @@
|
||||
}
|
||||
|
||||
public Difficulty func_147135_j() {
|
||||
@@ -37,7 +37,7 @@
|
||||
return this.field_71349_l.field_71441_e.func_72912_H().func_176130_y();
|
||||
}
|
||||
|
||||
@@ -213,6 +216,7 @@
|
||||
@@ -219,6 +222,7 @@
|
||||
}
|
||||
|
||||
public void func_71263_m(boolean p_71263_1_) {
|
||||
|
||||
+10
-3
@@ -122,12 +122,19 @@
|
||||
int i = p_187250_3_.func_190916_E();
|
||||
int j = p_187250_3_.func_77952_i();
|
||||
ActionResult<ItemStack> actionresult = p_187250_3_.func_77957_a(p_187250_2_, p_187250_1_, p_187250_4_);
|
||||
@@ -296,9 +321,16 @@
|
||||
@@ -287,6 +312,8 @@
|
||||
public ActionResultType func_219441_a(PlayerEntity p_219441_1_, World p_219441_2_, ItemStack p_219441_3_, Hand p_219441_4_, BlockRayTraceResult p_219441_5_) {
|
||||
BlockPos blockpos = p_219441_5_.func_216350_a();
|
||||
BlockState blockstate = p_219441_2_.func_180495_p(blockpos);
|
||||
+ net.minecraftforge.event.entity.player.PlayerInteractEvent.RightClickBlock event = net.minecraftforge.common.ForgeHooks.onRightClickBlock(p_219441_1_, p_219441_4_, blockpos, p_219441_5_.func_216354_b());
|
||||
+ if (event.isCanceled()) return event.getCancellationResult();
|
||||
if (this.field_73091_c == GameType.SPECTATOR) {
|
||||
INamedContainerProvider inamedcontainerprovider = blockstate.func_215699_b(p_219441_2_, blockpos);
|
||||
if (inamedcontainerprovider != null) {
|
||||
@@ -296,9 +323,14 @@
|
||||
return ActionResultType.PASS;
|
||||
}
|
||||
} else {
|
||||
+ net.minecraftforge.event.entity.player.PlayerInteractEvent.RightClickBlock event = net.minecraftforge.common.ForgeHooks.onRightClickBlock(p_219441_1_, p_219441_4_, blockpos, p_219441_5_.func_216354_b());
|
||||
+ if (event.isCanceled()) return event.getCancellationResult();
|
||||
+ ItemUseContext itemusecontext = new ItemUseContext(p_219441_1_, p_219441_4_, p_219441_5_);
|
||||
+ if (event.getUseItem() != net.minecraftforge.eventbus.api.Event.Result.DENY) {
|
||||
+ ActionResultType result = p_219441_3_.onItemUseFirst(itemusecontext);
|
||||
|
||||
@@ -8,12 +8,14 @@
|
||||
|
||||
public PlayerList(MinecraftServer p_i50688_1_, int p_i50688_2_) {
|
||||
this.field_72400_f = p_i50688_1_;
|
||||
@@ -110,6 +111,14 @@
|
||||
@@ -109,7 +110,15 @@
|
||||
String s = gameprofile1 == null ? gameprofile.getName() : gameprofile1.getName();
|
||||
playerprofilecache.func_152649_a(gameprofile);
|
||||
CompoundNBT compoundnbt = this.func_72380_a(p_72355_2_);
|
||||
ServerWorld serverworld = this.field_72400_f.func_71218_a(p_72355_2_.field_71093_bK);
|
||||
- ServerWorld serverworld = this.field_72400_f.func_71218_a(p_72355_2_.field_71093_bK);
|
||||
+
|
||||
+ //Forge: Make sure the dimension hasn't been deleted, if so stick them in the overworld.
|
||||
+ ServerWorld serverworld = p_72355_2_.field_71093_bK != null ? this.field_72400_f.func_71218_a(p_72355_2_.field_71093_bK) : null ;
|
||||
+ if (serverworld == null) {
|
||||
+ p_72355_2_.field_71093_bK = DimensionType.field_223227_a_;
|
||||
+ serverworld = this.field_72400_f.func_71218_a(p_72355_2_.field_71093_bK);
|
||||
|
||||
Loaded 100 of 413 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user