Resolved #298 - Added bucket for all fluids
This commit is contained in:
parent
f16e2387c3
commit
143e6d00e7
14 changed files with 771 additions and 576 deletions
|
@ -1,140 +0,0 @@
|
||||||
buildscript {
|
|
||||||
repositories {
|
|
||||||
mavenCentral()
|
|
||||||
maven {
|
|
||||||
name = "forge"
|
|
||||||
url = "http://files.minecraftforge.net/maven"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
dependencies {
|
|
||||||
classpath 'net.minecraftforge.gradle:ForgeGradle:1.0-SNAPSHOT'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
apply plugin: 'forge'
|
|
||||||
apply plugin: 'maven-publish'
|
|
||||||
|
|
||||||
ext.buildProps = file "build.properties"
|
|
||||||
|
|
||||||
buildProps.withReader {
|
|
||||||
def prop = new Properties()
|
|
||||||
prop.load(it)
|
|
||||||
ext.config = new ConfigSlurper().parse prop
|
|
||||||
}
|
|
||||||
|
|
||||||
group = "resonant-induction"
|
|
||||||
archivesBaseName = "Resonant-Induction"
|
|
||||||
|
|
||||||
minecraft {
|
|
||||||
version = "${rootProject.config.version.minecraft}-${rootProject.config.version.forge}"
|
|
||||||
|
|
||||||
replaceIn "Reference.java"
|
|
||||||
replace "@MAJOR@", rootProject.config.version.mod.major
|
|
||||||
replace "@MINOR@", rootProject.config.version.mod.minor
|
|
||||||
replace "@REVIS@", rootProject.config.version.mod.revis
|
|
||||||
replace "@BUILD@", "${System.getenv().BUILD_NUMBER}"
|
|
||||||
}
|
|
||||||
|
|
||||||
allprojects {
|
|
||||||
apply plugin: 'java'
|
|
||||||
|
|
||||||
version = "${config.version.mod.major}.${config.version.mod.minor}.${config.version.mod.revis}"
|
|
||||||
|
|
||||||
if (System.getenv("BUILD_NUMBER") != null)
|
|
||||||
version += ".${System.getenv("BUILD_NUMBER")}"
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
maven {
|
|
||||||
name 'Calclavia Maven'
|
|
||||||
url 'http://calclavia.com/maven'
|
|
||||||
}
|
|
||||||
maven {
|
|
||||||
name = "forge"
|
|
||||||
url = "http://files.minecraftforge.net/maven"
|
|
||||||
}
|
|
||||||
ivy {
|
|
||||||
name 'CB FS'
|
|
||||||
artifactPattern "http://files.minecraftforge.net/[module]/[module]-dev-[revision].[ext]"
|
|
||||||
}
|
|
||||||
mavenCentral()
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
compile group: 'universalelectricity', name: 'Universal-Electricity', version: "${rootProject.config.version.universalelectricity}", classifier: "dev"
|
|
||||||
compile group: 'calclaviacore', name: 'calclavia-core', version: "${rootProject.config.version.calclaviacore}", classifier: "dev"
|
|
||||||
compile name: 'CodeChickenLib', version: "${config.version.minecraft}-${config.version.cclib}", ext: 'jar'
|
|
||||||
compile name: 'ForgeMultipart', version: "${config.version.minecraft}-${config.version.fmp}", ext: 'jar'
|
|
||||||
}
|
|
||||||
|
|
||||||
jar {
|
|
||||||
classifier = project.name
|
|
||||||
dependsOn ":copyBuildXml"
|
|
||||||
destinationDir = file (rootProject.getRootDir().getPath() + '/output')
|
|
||||||
}
|
|
||||||
|
|
||||||
publishing {
|
|
||||||
publications {
|
|
||||||
mavenJava(MavenPublication) {
|
|
||||||
artifact jar
|
|
||||||
}
|
|
||||||
}
|
|
||||||
repositories {
|
|
||||||
maven {
|
|
||||||
url "file://var/www/maven"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
subprojects {
|
|
||||||
archivesBaseName = "Resonant-Induction"
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
compile rootProject
|
|
||||||
}
|
|
||||||
|
|
||||||
rootProject.tasks.reobf {
|
|
||||||
reobf.setUseRetroGuard(true)
|
|
||||||
reobf(tasks.jar) { spec ->
|
|
||||||
spec.classpath = sourceSets.main.compileClasspath
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
processResources {
|
|
||||||
from 'build.properties'
|
|
||||||
}
|
|
||||||
|
|
||||||
task copyBuildXml(type: Copy) {
|
|
||||||
from 'build.properties'
|
|
||||||
into 'output'
|
|
||||||
}
|
|
||||||
|
|
||||||
task apiZip(type: Zip) {
|
|
||||||
classifier = 'api'
|
|
||||||
from sourceSets*.allSource
|
|
||||||
include 'resonantinduction/api/**'
|
|
||||||
destinationDir = file 'output'
|
|
||||||
}
|
|
||||||
|
|
||||||
artifacts {
|
|
||||||
archives apiZip
|
|
||||||
}
|
|
||||||
|
|
||||||
import net.minecraftforge.gradle.tasks.dev.ChangelogTask
|
|
||||||
import net.minecraftforge.gradle.common.Constants
|
|
||||||
import net.minecraftforge.gradle.delayed.*
|
|
||||||
|
|
||||||
task createChangelog(type: ChangelogTask) {
|
|
||||||
def jobName = "${System.getenv().JOB_NAME}"
|
|
||||||
def buildNumber = "${System.getenv().BUILD_NUMBER}"
|
|
||||||
jobName.replaceAll(' ','%20')
|
|
||||||
setServerRoot(new DelayedString(project, 'http://ci.calclavia.com/'))
|
|
||||||
setJobName(new DelayedString(project, jobName.toString()));
|
|
||||||
setAuthName(new DelayedString(project, 'console_script'));
|
|
||||||
setAuthPassword(new DelayedString(project, '625d2ac53190be3422faa0c474fb299b'));
|
|
||||||
setTargetBuild({buildNumber.toString()});
|
|
||||||
setOutput(new DelayedFile(project, 'output/' + jobName + "-${project.version}" + '-changelog' + '.txt'));
|
|
||||||
}
|
|
||||||
|
|
||||||
build.dependsOn "apiZip", "copyBuildXml", "createChangelog"
|
|
137
build-old.gradle
Normal file
137
build-old.gradle
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
buildscript {
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
maven {
|
||||||
|
name = "forge"
|
||||||
|
url = "http://files.minecraftforge.net/maven"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dependencies {
|
||||||
|
classpath 'net.minecraftforge.gradle:ForgeGradle:1.0-SNAPSHOT'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
apply plugin: 'forge'
|
||||||
|
apply plugin: 'maven-publish'
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
main {
|
||||||
|
java {
|
||||||
|
srcDirs 'src/main/java', 'archaic/src/main/java', 'electrical/src/main/java', 'mechanical/src/main/java'
|
||||||
|
//exclude 'resonantinduction/core/nei/**'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ext.buildProps = file "build.properties"
|
||||||
|
|
||||||
|
buildProps.withReader {
|
||||||
|
def prop = new Properties()
|
||||||
|
prop.load(it)
|
||||||
|
ext.config = new ConfigSlurper().parse prop
|
||||||
|
}
|
||||||
|
|
||||||
|
version = "${config.version.mod.major}.${config.version.mod.minor}.${config.version.mod.revis}"
|
||||||
|
group = "resonantinduction"
|
||||||
|
archivesBaseName = "Resonant-Induction"
|
||||||
|
|
||||||
|
minecraft {
|
||||||
|
version = "${config.version.minecraft}-${config.version.forge}"
|
||||||
|
|
||||||
|
replaceIn "Reference.java"
|
||||||
|
replace "@MAJOR@", config.version.mod.major
|
||||||
|
replace "@MINOR@", config.version.mod.minor
|
||||||
|
replace "@REVIS@", config.version.mod.revis
|
||||||
|
replace "@BUILD@", System.getenv("BUILD_NUMBER")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (System.getenv("BUILD_NUMBER") != null)
|
||||||
|
version += ".${System.getenv("BUILD_NUMBER")}"
|
||||||
|
|
||||||
|
|
||||||
|
processResources {
|
||||||
|
from 'build.properties'
|
||||||
|
}
|
||||||
|
|
||||||
|
task copyBuildXml(type: Copy) {
|
||||||
|
from 'build.properties'
|
||||||
|
into 'output'
|
||||||
|
}
|
||||||
|
|
||||||
|
task apiZip(type: Zip) {
|
||||||
|
classifier = 'api'
|
||||||
|
from sourceSets*.allSource
|
||||||
|
include 'resonantinduction/api/**'
|
||||||
|
destinationDir = file 'output'
|
||||||
|
}
|
||||||
|
|
||||||
|
artifacts {
|
||||||
|
archives apiZip
|
||||||
|
}
|
||||||
|
|
||||||
|
jar {
|
||||||
|
dependsOn copyBuildXml
|
||||||
|
classifier = ''
|
||||||
|
destinationDir = file 'output'
|
||||||
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
maven {
|
||||||
|
name 'Calclavia Maven'
|
||||||
|
url 'http://calclavia.com/maven'
|
||||||
|
}
|
||||||
|
|
||||||
|
ivy {
|
||||||
|
name 'FMP'
|
||||||
|
artifactPattern "http://files.minecraftforge.net/[module]/[module]-dev-[revision].[ext]"
|
||||||
|
}
|
||||||
|
|
||||||
|
ivy {
|
||||||
|
artifactPattern "http://www.chickenbones.craftsaddle.org/Files/New_Versions/1.6.4/[module]-dev%20[revision].[ext]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile group: 'universalelectricity', name: 'Universal-Electricity', version: "${config.version.universalelectricity}", classifier: "dev"
|
||||||
|
compile group: 'calclaviacore', name: 'calclavia-core', version: "${config.version.calclaviacore}", classifier: "dev"
|
||||||
|
compile name: 'CodeChickenLib', version: "${config.version.minecraft}-${config.version.cclib}", ext: 'jar'
|
||||||
|
compile name: 'ForgeMultipart', version: "${config.version.minecraft}-${config.version.fmp}", ext: 'jar'
|
||||||
|
//compile name: 'NotEnoughItems', version: "1.6.1.8", ext: 'jar'
|
||||||
|
compile name: 'NotEnoughItems', version: "${config.version.nei}", ext: 'jar'
|
||||||
|
}
|
||||||
|
|
||||||
|
publishing {
|
||||||
|
publications {
|
||||||
|
mavenJava(MavenPublication) {
|
||||||
|
artifact jar
|
||||||
|
/*artifact apiZip*/
|
||||||
|
|
||||||
|
artifact {
|
||||||
|
file 'output/build.properties'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
repositories {
|
||||||
|
maven {
|
||||||
|
url "file://var/www/maven"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
import net.minecraftforge.gradle.tasks.dev.ChangelogTask
|
||||||
|
import net.minecraftforge.gradle.common.Constants
|
||||||
|
import net.minecraftforge.gradle.delayed.*
|
||||||
|
|
||||||
|
task createChangelog(type: ChangelogTask) {
|
||||||
|
def jobName = "${System.getenv().JOB_NAME}"
|
||||||
|
def buildNumber = "${System.getenv().BUILD_NUMBER}"
|
||||||
|
jobName.replaceAll(' ','%20')
|
||||||
|
setServerRoot(new DelayedString(project, 'http://ci.calclavia.com/'))
|
||||||
|
setJobName(new DelayedString(project, jobName.toString()));
|
||||||
|
setAuthName(new DelayedString(project, 'console_script'));
|
||||||
|
setAuthPassword(new DelayedString(project, '625d2ac53190be3422faa0c474fb299b'));
|
||||||
|
setTargetBuild({buildNumber.toString()});
|
||||||
|
setOutput(new DelayedFile(project, 'output/' + jobName + "-${project.version}" + '-changelog' + '.txt'));
|
||||||
|
}
|
||||||
|
|
||||||
|
build.dependsOn "createChangelog"
|
134
build.gradle
134
build.gradle
|
@ -14,15 +14,6 @@ buildscript {
|
||||||
apply plugin: 'forge'
|
apply plugin: 'forge'
|
||||||
apply plugin: 'maven-publish'
|
apply plugin: 'maven-publish'
|
||||||
|
|
||||||
sourceSets {
|
|
||||||
main {
|
|
||||||
java {
|
|
||||||
srcDirs 'src/main/java', 'archaic/src/main/java', 'electrical/src/main/java', 'mechanical/src/main/java'
|
|
||||||
//exclude 'resonantinduction/core/nei/**'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ext.buildProps = file "build.properties"
|
ext.buildProps = file "build.properties"
|
||||||
|
|
||||||
buildProps.withReader {
|
buildProps.withReader {
|
||||||
|
@ -31,23 +22,83 @@ buildProps.withReader {
|
||||||
ext.config = new ConfigSlurper().parse prop
|
ext.config = new ConfigSlurper().parse prop
|
||||||
}
|
}
|
||||||
|
|
||||||
version = "${config.version.mod.major}.${config.version.mod.minor}.${config.version.mod.revis}"
|
group = "resonant-induction"
|
||||||
group = "resonantinduction"
|
|
||||||
archivesBaseName = "Resonant-Induction"
|
archivesBaseName = "Resonant-Induction"
|
||||||
|
|
||||||
minecraft {
|
minecraft {
|
||||||
version = "${config.version.minecraft}-${config.version.forge}"
|
version = "${rootProject.config.version.minecraft}-${rootProject.config.version.forge}"
|
||||||
|
|
||||||
replaceIn "Reference.java"
|
replaceIn "Reference.java"
|
||||||
replace "@MAJOR@", config.version.mod.major
|
replace "@MAJOR@", rootProject.config.version.mod.major
|
||||||
replace "@MINOR@", config.version.mod.minor
|
replace "@MINOR@", rootProject.config.version.mod.minor
|
||||||
replace "@REVIS@", config.version.mod.revis
|
replace "@REVIS@", rootProject.config.version.mod.revis
|
||||||
replace "@BUILD@", System.getenv("BUILD_NUMBER")
|
replace "@BUILD@", "${System.getenv().BUILD_NUMBER}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
subprojects*.apply plugin: 'java'
|
||||||
|
|
||||||
|
allprojects {
|
||||||
|
version = "${config.version.mod.major}.${config.version.mod.minor}.${config.version.mod.revis}"
|
||||||
|
|
||||||
if (System.getenv("BUILD_NUMBER") != null)
|
if (System.getenv("BUILD_NUMBER") != null)
|
||||||
version += ".${System.getenv("BUILD_NUMBER")}"
|
version += ".${System.getenv("BUILD_NUMBER")}"
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
maven {
|
||||||
|
name 'Calclavia Maven'
|
||||||
|
url 'http://calclavia.com/maven'
|
||||||
|
}
|
||||||
|
maven {
|
||||||
|
name = "forge"
|
||||||
|
url = "http://files.minecraftforge.net/maven"
|
||||||
|
}
|
||||||
|
ivy {
|
||||||
|
name 'CB FS'
|
||||||
|
artifactPattern "http://files.minecraftforge.net/[module]/[module]-dev-[revision].[ext]"
|
||||||
|
}
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile group: 'universalelectricity', name: 'Universal-Electricity', version: "${rootProject.config.version.universalelectricity}", classifier: "dev"
|
||||||
|
compile group: 'calclaviacore', name: 'calclavia-core', version: "${rootProject.config.version.calclaviacore}", classifier: "dev"
|
||||||
|
compile name: 'CodeChickenLib', version: "${config.version.minecraft}-${config.version.cclib}", ext: 'jar'
|
||||||
|
compile name: 'ForgeMultipart', version: "${config.version.minecraft}-${config.version.fmp}", ext: 'jar'
|
||||||
|
}
|
||||||
|
|
||||||
|
jar {
|
||||||
|
classifier = project.name
|
||||||
|
dependsOn ":copyBuildXml"
|
||||||
|
destinationDir = file (rootProject.getRootDir().getPath() + '/output')
|
||||||
|
}
|
||||||
|
|
||||||
|
publishing {
|
||||||
|
publications {
|
||||||
|
mavenJava(MavenPublication) {
|
||||||
|
artifact jar
|
||||||
|
}
|
||||||
|
}
|
||||||
|
repositories {
|
||||||
|
maven {
|
||||||
|
url "file://var/www/maven"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
subprojects {
|
||||||
|
archivesBaseName = "Resonant-Induction"
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile rootProject
|
||||||
|
}
|
||||||
|
|
||||||
|
rootProject.tasks.reobf {
|
||||||
|
reobf(tasks.jar) { spec ->
|
||||||
|
spec.classpath = sourceSets.main.compileClasspath
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
processResources {
|
processResources {
|
||||||
from 'build.properties'
|
from 'build.properties'
|
||||||
|
@ -69,55 +120,6 @@ artifacts {
|
||||||
archives apiZip
|
archives apiZip
|
||||||
}
|
}
|
||||||
|
|
||||||
jar {
|
|
||||||
dependsOn copyBuildXml
|
|
||||||
classifier = ''
|
|
||||||
destinationDir = file 'output'
|
|
||||||
}
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
maven {
|
|
||||||
name 'Calclavia Maven'
|
|
||||||
url 'http://calclavia.com/maven'
|
|
||||||
}
|
|
||||||
|
|
||||||
ivy {
|
|
||||||
name 'FMP'
|
|
||||||
artifactPattern "http://files.minecraftforge.net/[module]/[module]-dev-[revision].[ext]"
|
|
||||||
}
|
|
||||||
|
|
||||||
ivy {
|
|
||||||
artifactPattern "http://www.chickenbones.craftsaddle.org/Files/New_Versions/1.6.4/[module]-dev%20[revision].[ext]"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
compile group: 'universalelectricity', name: 'Universal-Electricity', version: "${config.version.universalelectricity}", classifier: "dev"
|
|
||||||
compile group: 'calclaviacore', name: 'calclavia-core', version: "${config.version.calclaviacore}", classifier: "dev"
|
|
||||||
compile name: 'CodeChickenLib', version: "${config.version.minecraft}-${config.version.cclib}", ext: 'jar'
|
|
||||||
compile name: 'ForgeMultipart', version: "${config.version.minecraft}-${config.version.fmp}", ext: 'jar'
|
|
||||||
//compile name: 'NotEnoughItems', version: "1.6.1.8", ext: 'jar'
|
|
||||||
compile name: 'NotEnoughItems', version: "${config.version.nei}", ext: 'jar'
|
|
||||||
}
|
|
||||||
|
|
||||||
publishing {
|
|
||||||
publications {
|
|
||||||
mavenJava(MavenPublication) {
|
|
||||||
artifact jar
|
|
||||||
/*artifact apiZip*/
|
|
||||||
|
|
||||||
artifact {
|
|
||||||
file 'output/build.properties'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
repositories {
|
|
||||||
maven {
|
|
||||||
url "file://var/www/maven"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
import net.minecraftforge.gradle.tasks.dev.ChangelogTask
|
import net.minecraftforge.gradle.tasks.dev.ChangelogTask
|
||||||
import net.minecraftforge.gradle.common.Constants
|
import net.minecraftforge.gradle.common.Constants
|
||||||
import net.minecraftforge.gradle.delayed.*
|
import net.minecraftforge.gradle.delayed.*
|
||||||
|
@ -134,4 +136,4 @@ task createChangelog(type: ChangelogTask) {
|
||||||
setOutput(new DelayedFile(project, 'output/' + jobName + "-${project.version}" + '-changelog' + '.txt'));
|
setOutput(new DelayedFile(project, 'output/' + jobName + "-${project.version}" + '-changelog' + '.txt'));
|
||||||
}
|
}
|
||||||
|
|
||||||
build.dependsOn "createChangelog"
|
build.dependsOn "apiZip", "copyBuildXml", "createChangelog"
|
|
@ -84,7 +84,7 @@ public class RenderCharger implements ISimpleItemRenderer
|
||||||
@Override
|
@Override
|
||||||
public void renderInventoryItem(ItemStack itemStack)
|
public void renderInventoryItem(ItemStack itemStack)
|
||||||
{
|
{
|
||||||
GL11.glTranslatef(0.5f, 0.7f, 0.5f);
|
GL11.glTranslatef(0f, 0.5f, 0f);
|
||||||
RenderUtility.bind(TEXTURE);
|
RenderUtility.bind(TEXTURE);
|
||||||
MODEL.renderAll();
|
MODEL.renderAll();
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ public class RenderLevitator implements ISimpleItemRenderer
|
||||||
public void renderInventoryItem(ItemStack itemStack)
|
public void renderInventoryItem(ItemStack itemStack)
|
||||||
{
|
{
|
||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
GL11.glTranslatef(0.5f, 0.5f, 0.5f);
|
GL11.glTranslatef(0f, 0.5f, 0f);
|
||||||
FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE_OFF);
|
FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE_OFF);
|
||||||
MODEL.renderAll();
|
MODEL.renderAll();
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
|
|
|
@ -16,18 +16,17 @@ import resonantinduction.core.handler.TextureHookHandler;
|
||||||
import resonantinduction.core.prefab.part.PacketMultiPart;
|
import resonantinduction.core.prefab.part.PacketMultiPart;
|
||||||
import resonantinduction.core.resource.BlockDust;
|
import resonantinduction.core.resource.BlockDust;
|
||||||
import resonantinduction.core.resource.BlockMachineMaterial;
|
import resonantinduction.core.resource.BlockMachineMaterial;
|
||||||
|
import resonantinduction.core.resource.ItemOreResource;
|
||||||
import resonantinduction.core.resource.ResourceGenerator;
|
import resonantinduction.core.resource.ResourceGenerator;
|
||||||
import resonantinduction.core.resource.TileMaterial;
|
import resonantinduction.core.resource.TileMaterial;
|
||||||
|
import resonantinduction.core.resource.fluid.ItemOreResourceBucket;
|
||||||
import resonantinduction.core.resource.fluid.TileFluidMixture;
|
import resonantinduction.core.resource.fluid.TileFluidMixture;
|
||||||
import resonantinduction.core.resource.item.ItemOreResource;
|
|
||||||
import calclavia.components.tool.ToolMode;
|
|
||||||
import calclavia.lib.content.ContentRegistry;
|
import calclavia.lib.content.ContentRegistry;
|
||||||
import calclavia.lib.network.PacketAnnotation;
|
import calclavia.lib.network.PacketAnnotation;
|
||||||
import calclavia.lib.network.PacketHandler;
|
import calclavia.lib.network.PacketHandler;
|
||||||
import calclavia.lib.network.PacketTile;
|
import calclavia.lib.network.PacketTile;
|
||||||
import calclavia.lib.prefab.item.ItemBlockMetadata;
|
import calclavia.lib.prefab.item.ItemBlockMetadata;
|
||||||
import calclavia.lib.utility.LanguageUtility;
|
import calclavia.lib.utility.LanguageUtility;
|
||||||
import calclavia.lib.utility.LinkUtility;
|
|
||||||
import cpw.mods.fml.common.FMLLog;
|
import cpw.mods.fml.common.FMLLog;
|
||||||
import cpw.mods.fml.common.Mod;
|
import cpw.mods.fml.common.Mod;
|
||||||
import cpw.mods.fml.common.Mod.EventHandler;
|
import cpw.mods.fml.common.Mod.EventHandler;
|
||||||
|
@ -73,9 +72,8 @@ public class ResonantInduction
|
||||||
|
|
||||||
/** Blocks and Items */
|
/** Blocks and Items */
|
||||||
public static Block blockOre;
|
public static Block blockOre;
|
||||||
public static ItemOreResource itemRubble;
|
public static ItemOreResource itemRubble, itemDust, itemRefinedDust;
|
||||||
public static ItemOreResource itemDust;
|
public static ItemOreResourceBucket itemBucketMixture, itemBucketMolten;
|
||||||
public static ItemOreResource itemRefinedDust;
|
|
||||||
public static Block blockDust;
|
public static Block blockDust;
|
||||||
public static final List<Block> blockMixtureFluids = new ArrayList<Block>();
|
public static final List<Block> blockMixtureFluids = new ArrayList<Block>();
|
||||||
public static final List<Block> blockMoltenFluid = new ArrayList<Block>();
|
public static final List<Block> blockMoltenFluid = new ArrayList<Block>();
|
||||||
|
@ -110,10 +108,14 @@ public class ResonantInduction
|
||||||
itemRubble = new ItemOreResource(Settings.getNextItemID("oreRubble"), "oreRubble");
|
itemRubble = new ItemOreResource(Settings.getNextItemID("oreRubble"), "oreRubble");
|
||||||
itemDust = new ItemOreResource(Settings.getNextItemID("oreDust"), "oreDust");
|
itemDust = new ItemOreResource(Settings.getNextItemID("oreDust"), "oreDust");
|
||||||
itemRefinedDust = new ItemOreResource(Settings.getNextItemID("oreRefinedDust"), "oreRefinedDust");
|
itemRefinedDust = new ItemOreResource(Settings.getNextItemID("oreRefinedDust"), "oreRefinedDust");
|
||||||
|
itemBucketMixture = new ItemOreResourceBucket(Settings.getNextItemID("bucketMixture"), "bucketMixture");
|
||||||
|
itemBucketMolten = new ItemOreResourceBucket(Settings.getNextItemID("bucketMolten"), "bucketMolten");
|
||||||
|
|
||||||
GameRegistry.registerItem(itemRubble, itemRubble.getUnlocalizedName());
|
GameRegistry.registerItem(itemRubble, itemRubble.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(itemDust, itemDust.getUnlocalizedName());
|
GameRegistry.registerItem(itemDust, itemDust.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(itemRefinedDust, itemRefinedDust.getUnlocalizedName());
|
GameRegistry.registerItem(itemRefinedDust, itemRefinedDust.getUnlocalizedName());
|
||||||
|
GameRegistry.registerItem(itemBucketMixture, itemBucketMixture.getUnlocalizedName());
|
||||||
|
GameRegistry.registerItem(itemBucketMolten, itemBucketMolten.getUnlocalizedName());
|
||||||
|
|
||||||
// Already registered with ContentRegistry
|
// Already registered with ContentRegistry
|
||||||
// GameRegistry.registerTileEntity(TileMaterial.class, "ri_material");
|
// GameRegistry.registerTileEntity(TileMaterial.class, "ri_material");
|
||||||
|
|
|
@ -12,7 +12,6 @@ import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import resonantinduction.core.Reference;
|
import resonantinduction.core.Reference;
|
||||||
import resonantinduction.core.ResonantInduction;
|
import resonantinduction.core.ResonantInduction;
|
||||||
import resonantinduction.core.resource.item.ItemOreResource;
|
|
||||||
import calclavia.lib.prefab.block.BlockTile;
|
import calclavia.lib.prefab.block.BlockTile;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package resonantinduction.core.resource.item;
|
package resonantinduction.core.resource;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -16,8 +16,6 @@ import resonantinduction.api.recipe.RecipeResource;
|
||||||
import resonantinduction.core.Reference;
|
import resonantinduction.core.Reference;
|
||||||
import resonantinduction.core.ResonantInduction;
|
import resonantinduction.core.ResonantInduction;
|
||||||
import resonantinduction.core.TabRI;
|
import resonantinduction.core.TabRI;
|
||||||
import resonantinduction.core.resource.ResourceGenerator;
|
|
||||||
import resonantinduction.core.resource.TileMaterial;
|
|
||||||
import universalelectricity.api.vector.Vector3;
|
import universalelectricity.api.vector.Vector3;
|
||||||
import calclavia.lib.utility.LanguageUtility;
|
import calclavia.lib.utility.LanguageUtility;
|
||||||
import calclavia.lib.utility.inventory.InventoryUtility;
|
import calclavia.lib.utility.inventory.InventoryUtility;
|
||||||
|
@ -206,21 +204,19 @@ public class ItemOreResource extends Item
|
||||||
public ItemStack getStackFromMaterial(String name)
|
public ItemStack getStackFromMaterial(String name)
|
||||||
{
|
{
|
||||||
ItemStack itemStack = new ItemStack(this);
|
ItemStack itemStack = new ItemStack(this);
|
||||||
itemStack.setItemDamage(ResourceGenerator.materialNames.indexOf(name));
|
itemStack.setItemDamage(ResourceGenerator.getID(name));
|
||||||
return itemStack;
|
return itemStack;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getMaterialFromStack(ItemStack itemStack)
|
public static String getMaterialFromStack(ItemStack itemStack)
|
||||||
{
|
{
|
||||||
if (ResourceGenerator.materialNames.size() > itemStack.getItemDamage())
|
return ResourceGenerator.getName(itemStack.getItemDamage());
|
||||||
return ResourceGenerator.materialNames.get(itemStack.getItemDamage());
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List)
|
public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List)
|
||||||
{
|
{
|
||||||
for (String materialName : ResourceGenerator.materialNames)
|
for (String materialName : ResourceGenerator.getMaterials())
|
||||||
{
|
{
|
||||||
par3List.add(getStackFromMaterial(materialName));
|
par3List.add(getStackFromMaterial(materialName));
|
||||||
}
|
}
|
||||||
|
@ -235,9 +231,9 @@ public class ItemOreResource extends Item
|
||||||
*/
|
*/
|
||||||
String name = ItemOreResource.getMaterialFromStack(itemStack);
|
String name = ItemOreResource.getMaterialFromStack(itemStack);
|
||||||
|
|
||||||
if (ResourceGenerator.materialColors.containsKey(name))
|
if (ResourceGenerator.materialColorCache.containsKey(name))
|
||||||
{
|
{
|
||||||
return ResourceGenerator.materialColors.get(name);
|
return ResourceGenerator.materialColorCache.get(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 16777215;
|
return 16777215;
|
|
@ -3,9 +3,7 @@ package resonantinduction.core.resource;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
@ -35,6 +33,9 @@ import resonantinduction.core.Settings;
|
||||||
import resonantinduction.core.resource.fluid.BlockFluidMaterial;
|
import resonantinduction.core.resource.fluid.BlockFluidMaterial;
|
||||||
import resonantinduction.core.resource.fluid.BlockFluidMixture;
|
import resonantinduction.core.resource.fluid.BlockFluidMixture;
|
||||||
import calclavia.lib.utility.LanguageUtility;
|
import calclavia.lib.utility.LanguageUtility;
|
||||||
|
|
||||||
|
import com.google.common.collect.HashBiMap;
|
||||||
|
|
||||||
import cpw.mods.fml.common.registry.GameRegistry;
|
import cpw.mods.fml.common.registry.GameRegistry;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
@ -43,28 +44,33 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||||
public class ResourceGenerator
|
public class ResourceGenerator
|
||||||
{
|
{
|
||||||
public static final ResourceGenerator INSTANCE = new ResourceGenerator();
|
public static final ResourceGenerator INSTANCE = new ResourceGenerator();
|
||||||
public static final Set<String> oreDictBlackList = new HashSet<String>();
|
|
||||||
|
|
||||||
/** A list of material names. They are all camelCase reference of ore dictionary names without
|
/**
|
||||||
* the "ore" or "ingot" prefix. */
|
* A list of material names. They are all camelCase reference of ore dictionary names without
|
||||||
public static final List<String> materialNames = new ArrayList<String>();
|
* the "ore" or "ingot" prefix.
|
||||||
public static final HashMap<String, Integer> materialColors = new HashMap<String, Integer>();
|
*
|
||||||
private static final HashMap<Icon, Integer> iconColorMap = new HashMap<Icon, Integer>();
|
* Name, ID
|
||||||
|
*/
|
||||||
|
static int maxID = 0;
|
||||||
|
static final HashBiMap<String, Integer> materials = HashBiMap.create();
|
||||||
|
|
||||||
|
static final HashMap<String, Integer> materialColorCache = new HashMap<String, Integer>();
|
||||||
|
static final HashMap<Icon, Integer> iconColorCache = new HashMap<Icon, Integer>();
|
||||||
|
|
||||||
static
|
static
|
||||||
{
|
{
|
||||||
oreDictBlackList.add("ingotRefinedIron");
|
OreDetectionBlackList.addIngot("refinedIron");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ForgeSubscribe
|
@ForgeSubscribe
|
||||||
public void oreRegisterEvent(OreRegisterEvent evt)
|
public void oreRegisterEvent(OreRegisterEvent evt)
|
||||||
{
|
{
|
||||||
if (evt.Name.startsWith("ingot") && !oreDictBlackList.contains(evt.Name))
|
if (evt.Name.startsWith("ingot"))
|
||||||
{
|
{
|
||||||
String oreDictName = evt.Name.replace("ingot", "");
|
String oreDictName = evt.Name.replace("ingot", "");
|
||||||
String materialName = LanguageUtility.decapitalizeFirst(oreDictName);
|
String materialName = LanguageUtility.decapitalizeFirst(oreDictName);
|
||||||
|
|
||||||
if (!materialNames.contains(materialName))
|
if (!materials.containsKey(materialName))
|
||||||
{
|
{
|
||||||
Settings.CONFIGURATION.load();
|
Settings.CONFIGURATION.load();
|
||||||
boolean allowMaterial = Settings.CONFIGURATION.get("Resource_Generator", "Enable " + oreDictName, true).getBoolean(true);
|
boolean allowMaterial = Settings.CONFIGURATION.get("Resource_Generator", "Enable " + oreDictName, true).getBoolean(true);
|
||||||
|
@ -73,7 +79,7 @@ public class ResourceGenerator
|
||||||
if (!allowMaterial || OreDetectionBlackList.isIngotBlackListed("ingot" + oreDictName) || OreDetectionBlackList.isOreBlackListed("ore" + oreDictName))
|
if (!allowMaterial || OreDetectionBlackList.isIngotBlackListed("ingot" + oreDictName) || OreDetectionBlackList.isOreBlackListed("ore" + oreDictName))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
materialNames.add(materialName);
|
materials.put(materialName, maxID++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -100,7 +106,7 @@ public class ResourceGenerator
|
||||||
MachineRecipes.INSTANCE.addRecipe(RecipeType.GRINDER, Block.gravel, Block.sand);
|
MachineRecipes.INSTANCE.addRecipe(RecipeType.GRINDER, Block.gravel, Block.sand);
|
||||||
MachineRecipes.INSTANCE.addRecipe(RecipeType.GRINDER, Block.glass, Block.sand);
|
MachineRecipes.INSTANCE.addRecipe(RecipeType.GRINDER, Block.glass, Block.sand);
|
||||||
|
|
||||||
for (String materialName : materialNames)
|
for (String materialName : materials.keySet())
|
||||||
{
|
{
|
||||||
// Caps version of the name
|
// Caps version of the name
|
||||||
String nameCaps = LanguageUtility.capitalizeFirst(materialName);
|
String nameCaps = LanguageUtility.capitalizeFirst(materialName);
|
||||||
|
@ -153,7 +159,7 @@ public class ResourceGenerator
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public static void computeColors()
|
public static void computeColors()
|
||||||
{
|
{
|
||||||
for (String material : materialNames)
|
for (String material : materials.keySet())
|
||||||
{
|
{
|
||||||
// Compute color
|
// Compute color
|
||||||
int totalR = 0;
|
int totalR = 0;
|
||||||
|
@ -165,20 +171,22 @@ public class ResourceGenerator
|
||||||
for (ItemStack ingotStack : OreDictionary.getOres("ingot" + material.substring(0, 1).toUpperCase() + material.substring(1)))
|
for (ItemStack ingotStack : OreDictionary.getOres("ingot" + material.substring(0, 1).toUpperCase() + material.substring(1)))
|
||||||
{
|
{
|
||||||
Item theIngot = ingotStack.getItem();
|
Item theIngot = ingotStack.getItem();
|
||||||
materialColors.put(material, getAverageColor(ingotStack));
|
materialColorCache.put(material, getAverageColor(ingotStack));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!materialColors.containsKey(material))
|
if (!materialColorCache.containsKey(material))
|
||||||
{
|
{
|
||||||
materialColors.put(material, 0xFFFFFF);
|
materialColorCache.put(material, 0xFFFFFF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Gets the average color of this item.
|
/**
|
||||||
|
* Gets the average color of this item.
|
||||||
*
|
*
|
||||||
* @param itemStack
|
* @param itemStack
|
||||||
* @return The RGB hexadecimal color code. */
|
* @return The RGB hexadecimal color code.
|
||||||
|
*/
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public static int getAverageColor(ItemStack itemStack)
|
public static int getAverageColor(ItemStack itemStack)
|
||||||
{
|
{
|
||||||
|
@ -193,9 +201,9 @@ public class ResourceGenerator
|
||||||
{
|
{
|
||||||
Icon icon = item.getIconIndex(itemStack);
|
Icon icon = item.getIconIndex(itemStack);
|
||||||
|
|
||||||
if (iconColorMap.containsKey(icon))
|
if (iconColorCache.containsKey(icon))
|
||||||
{
|
{
|
||||||
return iconColorMap.get(icon);
|
return iconColorCache.get(icon);
|
||||||
}
|
}
|
||||||
|
|
||||||
String iconString = icon.getIconName();
|
String iconString = icon.getIconName();
|
||||||
|
@ -237,7 +245,7 @@ public class ResourceGenerator
|
||||||
totalG /= colorCount;
|
totalG /= colorCount;
|
||||||
totalB /= colorCount;
|
totalB /= colorCount;
|
||||||
int averageColor = new Color(totalR, totalG, totalB).brighter().getRGB();
|
int averageColor = new Color(totalR, totalG, totalB).brighter().getRGB();
|
||||||
iconColorMap.put(icon, averageColor);
|
iconColorCache.put(icon, averageColor);
|
||||||
return averageColor;
|
return averageColor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -281,37 +289,42 @@ public class ResourceGenerator
|
||||||
|
|
||||||
public static Block getMixture(String name)
|
public static Block getMixture(String name)
|
||||||
{
|
{
|
||||||
return ResonantInduction.blockMixtureFluids.get((getID(name)));
|
return ResonantInduction.blockMixtureFluids.get(getID(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Block getMolten(String name)
|
public static Block getMolten(String name)
|
||||||
{
|
{
|
||||||
return ResonantInduction.blockMoltenFluid.get((getID(name)));
|
return ResonantInduction.blockMoltenFluid.get(getID(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getID(String name)
|
public static int getID(String name)
|
||||||
{
|
{
|
||||||
if (!materialNames.contains(name))
|
if (!materials.containsKey(name))
|
||||||
{
|
{
|
||||||
ResonantInduction.LOGGER.severe("Trying to get invalid material name " + name);
|
ResonantInduction.LOGGER.severe("Trying to get invalid material name " + name);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return materialNames.indexOf(name);
|
return materials.get(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getName(int id)
|
public static String getName(int id)
|
||||||
{
|
{
|
||||||
return materialNames.size() > id ? materialNames.get(id) : null;
|
return materials.inverse().get(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getColor(String name)
|
public static int getColor(String name)
|
||||||
{
|
{
|
||||||
if (name != null && materialColors.containsKey(name))
|
if (name != null && materialColorCache.containsKey(name))
|
||||||
{
|
{
|
||||||
return materialColors.get(name);
|
return materialColorCache.get(name);
|
||||||
}
|
}
|
||||||
return 0xFFFFFF;
|
|
||||||
|
|
||||||
|
return 0xFFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Set<String> getMaterials()
|
||||||
|
{
|
||||||
|
return materials.keySet();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,294 @@
|
||||||
|
package resonantinduction.core.resource.fluid;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import calclavia.lib.utility.LanguageUtility;
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
import resonantinduction.core.Reference;
|
||||||
|
import resonantinduction.core.TabRI;
|
||||||
|
import resonantinduction.core.resource.ItemOreResource;
|
||||||
|
import resonantinduction.core.resource.ResourceGenerator;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemBucket;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.util.EnumMovingObjectType;
|
||||||
|
import net.minecraft.util.MovingObjectPosition;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
|
import net.minecraftforge.event.Event;
|
||||||
|
import net.minecraftforge.event.entity.player.FillBucketEvent;
|
||||||
|
import net.minecraftforge.fluids.Fluid;
|
||||||
|
import net.minecraftforge.fluids.FluidRegistry;
|
||||||
|
import net.minecraftforge.oredict.OreDictionary;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Modified version of the MC bucket to meet the needs of a dynamic fluid registry system
|
||||||
|
*
|
||||||
|
* @author Darkguardsman
|
||||||
|
*/
|
||||||
|
public class ItemOreResourceBucket extends Item
|
||||||
|
{
|
||||||
|
public ItemOreResourceBucket(int id, String name)
|
||||||
|
{
|
||||||
|
super(id);
|
||||||
|
setMaxStackSize(1);
|
||||||
|
setUnlocalizedName(Reference.PREFIX + name);
|
||||||
|
setTextureName(Reference.PREFIX + name);
|
||||||
|
setCreativeTab(TabRI.CORE);
|
||||||
|
setHasSubtypes(true);
|
||||||
|
setMaxDamage(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getItemDisplayName(ItemStack is)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (getMaterialFromStack(is) != null)
|
||||||
|
{
|
||||||
|
String dustName = getMaterialFromStack(is);
|
||||||
|
|
||||||
|
if (dustName != null)
|
||||||
|
{
|
||||||
|
List<ItemStack> list = OreDictionary.getOres("ingot" + dustName.substring(0, 1).toUpperCase() + dustName.substring(1));
|
||||||
|
|
||||||
|
if (list.size() > 0)
|
||||||
|
{
|
||||||
|
ItemStack type = list.get(0);
|
||||||
|
|
||||||
|
String name = type.getDisplayName().replace(LanguageUtility.getLocal("misc.resonantinduction.ingot"), "").replaceAll("^ ", "").replaceAll(" $", "");
|
||||||
|
return (LanguageUtility.getLocal(this.getUnlocalizedName() + ".name")).replace("%v", name).replace(" ", " ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (FluidRegistry.getFluid(ResourceGenerator.materialNameToMixture(getMaterialFromStack(is))).getLocalizedName() + " Bucket");
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack,
|
||||||
|
* world, entityPlayer
|
||||||
|
*/
|
||||||
|
public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer entityPlayer)
|
||||||
|
{
|
||||||
|
int fluidID = ResourceGenerator.getMixture(ResourceGenerator.getName(itemStack.getItemDamage())).blockID;
|
||||||
|
|
||||||
|
MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(world, entityPlayer, false);
|
||||||
|
|
||||||
|
if (movingobjectposition == null)
|
||||||
|
{
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FillBucketEvent event = new FillBucketEvent(entityPlayer, itemStack, world, movingobjectposition);
|
||||||
|
if (MinecraftForge.EVENT_BUS.post(event))
|
||||||
|
{
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.getResult() == Event.Result.ALLOW)
|
||||||
|
{
|
||||||
|
if (entityPlayer.capabilities.isCreativeMode)
|
||||||
|
{
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (--itemStack.stackSize <= 0)
|
||||||
|
{
|
||||||
|
return event.result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!entityPlayer.inventory.addItemStackToInventory(event.result))
|
||||||
|
{
|
||||||
|
entityPlayer.dropPlayerItem(event.result);
|
||||||
|
}
|
||||||
|
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (movingobjectposition.typeOfHit == EnumMovingObjectType.TILE)
|
||||||
|
{
|
||||||
|
int i = movingobjectposition.blockX;
|
||||||
|
int j = movingobjectposition.blockY;
|
||||||
|
int k = movingobjectposition.blockZ;
|
||||||
|
|
||||||
|
if (!world.canMineBlock(entityPlayer, i, j, k))
|
||||||
|
{
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fluidID == 0)
|
||||||
|
{
|
||||||
|
if (!entityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, itemStack))
|
||||||
|
{
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (world.getBlockMaterial(i, j, k) == Material.water && world.getBlockMetadata(i, j, k) == 0)
|
||||||
|
{
|
||||||
|
world.setBlockToAir(i, j, k);
|
||||||
|
|
||||||
|
if (entityPlayer.capabilities.isCreativeMode)
|
||||||
|
{
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (--itemStack.stackSize <= 0)
|
||||||
|
{
|
||||||
|
return new ItemStack(Item.bucketWater);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!entityPlayer.inventory.addItemStackToInventory(new ItemStack(Item.bucketWater)))
|
||||||
|
{
|
||||||
|
entityPlayer.dropPlayerItem(new ItemStack(Item.bucketWater.itemID, 1, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (world.getBlockMaterial(i, j, k) == Material.lava && world.getBlockMetadata(i, j, k) == 0)
|
||||||
|
{
|
||||||
|
world.setBlockToAir(i, j, k);
|
||||||
|
|
||||||
|
if (entityPlayer.capabilities.isCreativeMode)
|
||||||
|
{
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (--itemStack.stackSize <= 0)
|
||||||
|
{
|
||||||
|
return new ItemStack(Item.bucketLava);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!entityPlayer.inventory.addItemStackToInventory(new ItemStack(Item.bucketLava)))
|
||||||
|
{
|
||||||
|
entityPlayer.dropPlayerItem(new ItemStack(Item.bucketLava.itemID, 1, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (fluidID < 0)
|
||||||
|
{
|
||||||
|
return new ItemStack(Item.bucketEmpty);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (movingobjectposition.sideHit == 0)
|
||||||
|
{
|
||||||
|
--j;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (movingobjectposition.sideHit == 1)
|
||||||
|
{
|
||||||
|
++j;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (movingobjectposition.sideHit == 2)
|
||||||
|
{
|
||||||
|
--k;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (movingobjectposition.sideHit == 3)
|
||||||
|
{
|
||||||
|
++k;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (movingobjectposition.sideHit == 4)
|
||||||
|
{
|
||||||
|
--i;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (movingobjectposition.sideHit == 5)
|
||||||
|
{
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!entityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, itemStack))
|
||||||
|
{
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.tryPlaceContainedLiquid(world, i, j, k, fluidID) && !entityPlayer.capabilities.isCreativeMode)
|
||||||
|
{
|
||||||
|
return new ItemStack(Item.bucketEmpty);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Attempts to place the liquid contained inside the bucket.
|
||||||
|
*/
|
||||||
|
public boolean tryPlaceContainedLiquid(World world, int x, int y, int z, int fluidID)
|
||||||
|
{
|
||||||
|
if (fluidID <= 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Material material = world.getBlockMaterial(x, y, z);
|
||||||
|
boolean flag = !material.isSolid();
|
||||||
|
|
||||||
|
if (!world.isAirBlock(x, y, z) && !flag)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
if (!world.isRemote && flag && !material.isLiquid())
|
||||||
|
{
|
||||||
|
world.destroyBlock(x, y, z, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
world.setBlock(x, y, z, fluidID, 0, 3);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getStackFromMaterial(String name)
|
||||||
|
{
|
||||||
|
ItemStack itemStack = new ItemStack(this);
|
||||||
|
itemStack.setItemDamage(ResourceGenerator.getID(name));
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getMaterialFromStack(ItemStack itemStack)
|
||||||
|
{
|
||||||
|
return ResourceGenerator.getName(itemStack.getItemDamage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List)
|
||||||
|
{
|
||||||
|
for (String materialName : ResourceGenerator.getMaterials())
|
||||||
|
{
|
||||||
|
par3List.add(getStackFromMaterial(materialName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public int getColorFromItemStack(ItemStack itemStack, int par2)
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Auto-color based on the texture of the ingot.
|
||||||
|
*/
|
||||||
|
String name = ItemOreResource.getMaterialFromStack(itemStack);
|
||||||
|
return ResourceGenerator.getColor(name);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,110 +0,0 @@
|
||||||
package resonantinduction.core.resource.item;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import calclavia.lib.utility.LanguageUtility;
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
|
||||||
import resonantinduction.core.Reference;
|
|
||||||
import resonantinduction.core.TabRI;
|
|
||||||
import resonantinduction.core.resource.ResourceGenerator;
|
|
||||||
import net.minecraft.block.Block;
|
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.item.Item;
|
|
||||||
import net.minecraft.item.ItemBucket;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
import net.minecraftforge.fluids.Fluid;
|
|
||||||
import net.minecraftforge.oredict.OreDictionary;
|
|
||||||
|
|
||||||
/** Modified version of the MC bucket to meet the needs of a dynamic fluid registry system
|
|
||||||
*
|
|
||||||
* @author Darkguardsman */
|
|
||||||
public class ItemFluidBucket extends ItemBucket
|
|
||||||
{
|
|
||||||
public ItemFluidBucket(int id)
|
|
||||||
{
|
|
||||||
super(id, 0);
|
|
||||||
setContainerItem(Item.bucketEmpty);
|
|
||||||
setUnlocalizedName(Reference.PREFIX + "Bucket_Molten");
|
|
||||||
setTextureName(Reference.PREFIX + "Bucket_Molten");
|
|
||||||
setCreativeTab(CreativeTabs.tabMisc);
|
|
||||||
setHasSubtypes(true);
|
|
||||||
setMaxDamage(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getItemDisplayName(ItemStack is)
|
|
||||||
{
|
|
||||||
String dustName = getMaterialFromStack(is);
|
|
||||||
|
|
||||||
if (dustName != null)
|
|
||||||
{
|
|
||||||
List<ItemStack> list = OreDictionary.getOres("ingot" + dustName.substring(0, 1).toUpperCase() + dustName.substring(1));
|
|
||||||
|
|
||||||
if (list.size() > 0)
|
|
||||||
{
|
|
||||||
ItemStack type = list.get(0);
|
|
||||||
|
|
||||||
String name = type.getDisplayName().replace(LanguageUtility.getLocal("misc.resonantinduction.ingot"), "").replaceAll("^ ", "").replaceAll(" $", "");
|
|
||||||
return (LanguageUtility.getLocal(this.getUnlocalizedName() + ".name")).replace("%v", name).replace(" ", " ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ItemStack onItemRightClick(ItemStack bucket, World world, EntityPlayer player)
|
|
||||||
{
|
|
||||||
//TODO pull fluid instance from metadata
|
|
||||||
return super.onItemRightClick(bucket, world, player);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean tryPlaceContainedLiquid(World par1World, int par2, int par3, int par4)
|
|
||||||
{
|
|
||||||
return super.tryPlaceContainedLiquid(par1World, par2, par3, par4);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String getMaterialFromStack(ItemStack itemStack)
|
|
||||||
{
|
|
||||||
if (ResourceGenerator.materialNames.size() > itemStack.getItemDamage())
|
|
||||||
return ResourceGenerator.materialNames.get(itemStack.getItemDamage());
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ItemStack getStackFromMaterial(String name)
|
|
||||||
{
|
|
||||||
ItemStack itemStack = new ItemStack(this);
|
|
||||||
itemStack.setItemDamage(ResourceGenerator.materialNames.indexOf(name));
|
|
||||||
return itemStack;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List)
|
|
||||||
{
|
|
||||||
for (String materialName : ResourceGenerator.materialNames)
|
|
||||||
{
|
|
||||||
par3List.add(getStackFromMaterial(materialName));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
public int getColorFromItemStack(ItemStack itemStack, int par2)
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Auto-color based on the texture of the ingot.
|
|
||||||
*/
|
|
||||||
String name = ItemOreResource.getMaterialFromStack(itemStack);
|
|
||||||
|
|
||||||
if (ResourceGenerator.materialColors.containsKey(name))
|
|
||||||
{
|
|
||||||
return ResourceGenerator.materialColors.get(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 16777215;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -17,7 +17,8 @@ item.resonantinduction\:oreDust.name=%v Dust
|
||||||
item.resonantinduction\:oreDust.tooltip=Shift-right click on a cauldron to refine.
|
item.resonantinduction\:oreDust.tooltip=Shift-right click on a cauldron to refine.
|
||||||
item.resonantinduction\:oreRefinedDust.name=%v Refined Dust
|
item.resonantinduction\:oreRefinedDust.name=%v Refined Dust
|
||||||
item.resonantinduction\:oreRubble.name=%v Rubble
|
item.resonantinduction\:oreRubble.name=%v Rubble
|
||||||
item.resonantinduction\:handCrank.name=Hand Crank
|
item.resonantinduction\:bucketMixture.name=%v Mixture Bucket
|
||||||
|
item.resonantinduction\:bucketMolten.name=Molten %v Bucket
|
||||||
|
|
||||||
### Archaic Module
|
### Archaic Module
|
||||||
## machineMaterials
|
## machineMaterials
|
||||||
|
@ -38,6 +39,7 @@ tile.resonantinduction\:machineMaterial.10.name=Steel
|
||||||
## Items
|
## Items
|
||||||
item.resonantinduction\:imprint.name=Imprint
|
item.resonantinduction\:imprint.name=Imprint
|
||||||
item.resonantinduction\:hammer.name=Hammer
|
item.resonantinduction\:hammer.name=Hammer
|
||||||
|
item.resonantinduction\:handCrank.name=Hand Crank
|
||||||
|
|
||||||
## Machines
|
## Machines
|
||||||
tile.resonantinduction\:castingMold.name=Metal Caster
|
tile.resonantinduction\:castingMold.name=Metal Caster
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 189 B |
Binary file not shown.
After Width: | Height: | Size: 2.9 KiB |
Loading…
Reference in a new issue