Compare commits

...
39 Commits
Author SHA1 Message Date
Marlo Greisser 9b05c7e7d2 Edit lifespan changes health too (#122) 2026-11-04 08:03:13 +01:00
shironakoushiandMartin Robertz a2d9c9f791 Fix missing Extra Bees combs in NEI (#124)
Co-authored-by: Martin Robertz <[email protected]>
2026-10-30 15:42:31 +01:00
shironakoushi c6a72a489c Distinguish: Rename the Genetics DNA fluid to Raw DNA (#125) 2026-10-25 05:43:24 -05:00
Chitak 985 71f71514ae Return -1 for missing ListMap values instead of 0 (#121) 2026-10-20 04:52:51 +02:00
Martin Robertz 74a0fcd883 update+bes+deps+gitignore+gradle 2026-10-18 11:43:00 +02:00
slprime eb36ee9260 Fix Screen Lighting (#120) 2026-09-06 21:02:08 +02:00
boubou19 5988871448 Fix allocation hell hole (#119) 2026-08-25 19:27:44 -04:00
UltraProdigy 5bb88e9115 Fix Avocado Typo (#118) 2026-08-22 00:44:46 -04:00
Mary Hopson 1591cdab8b Use Forestry's ArmorApiaristHelper instead of reinventing it (#117) 2026-08-21 09:09:22 -04:00
Pxx500 42dd7e3fb5 fix compartments with tool station (#116) 2026-08-19 11:08:28 -04:00
Algent d62c5d0054 Fix GL state leak in search grid (#115) 2026-08-13 21:00:35 +02:00
boubou19 e20df09909 apply the PlatinumSludgeOverhaul directly into Binnie (#114) 2026-08-11 10:57:16 +02:00
boubou19 b813b75a8b Cache more enum .values() (#113) 2026-08-11 02:52:53 +02:00
Algent 52d9d1aedc Another performance pass (#110) 2026-08-10 23:18:58 +02:00
boubou19 50bed12f66 Cache enum .values() (#112) 2026-08-10 20:58:59 +02:00
attempt0 0d6d7ff9aa Don't interact with energy net on client side (#111) 2026-08-09 18:17:36 +02:00
Eldrinn-Elantey 0b7ae46d2e Move Paint.NET art sources out of packaged resources (#108) 2026-08-04 22:04:19 +00:00
Dream Master a0cfcc9da6 update+bs+deps+gradle 2026-08-04 11:45:48 +07:00
Algent 171c5b29f6 Improve compartment inventory and GUI performance (#109) 2026-08-03 14:56:47 +07:00
Jordan Rey b5ad490947 fix: multiple issues with genetics machines liquid storage (#103) 2026-07-29 16:37:33 +07:00
__felix__ 00051c4594 fix loader check for gt6 compat (#107) 2026-07-29 16:37:04 +07:00
Ranzu d913e245ed Implement ColorUtils (#106) 2026-07-20 01:25:22 -04:00
Ranzu f253dfc5dc Rename "Gingko" to "Ginkgo" (#105) 2026-07-18 15:41:11 +02:00
Arcadia_Blues 6582ea3e56 Fix unintentional item combining for blocks missing setHasSubtypes(true) (#98) 2026-06-25 04:31:30 +00:00
Martin Robertz bb96e7deae update+gradle+bs+deps 2026-06-23 16:32:55 +02:00
Pxx500andgithub-actions[bot] 7643d11e14 Fix fluids racing to registration (#99)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-23 13:18:28 +00:00
Matej Dipčár 4eb26e9d77 Fix ComponentTankContainer draining wrong fluid when specific fluid requested (#97) 2026-05-25 19:06:36 +02:00
Eldrinn-ElanteyandAlexdoru 2b1843b74d fix CraftGUI.render going null on GUI open/reopen (#96)
Co-authored-by: Alexdoru <[email protected]>
2026-05-22 14:30:15 +02:00
Alexdoru 0b312261db fix world client leak caused by static CraftGUI (#95) 2026-05-18 19:05:50 +02:00
tiffit bd0746583a Only send NEI keybinds when no widget is focused (#94) 2026-05-10 20:44:56 +02:00
Ranzu b4143fb0ef Fixed Compartment help tooltip display (#93) 2026-05-09 14:21:17 +02:00
77c47e9071 fix isolator consumption chance config source (#87)
Co-authored-by: Martin Robertz <[email protected]>
Co-authored-by: UltraProdigy <[email protected]>
2026-05-04 01:00:00 +00:00
Max Shen f27b66c53f Fix concurrent modification exception (#92) 2026-05-03 20:43:05 -04:00
brandynandMartin Robertz ad16588e3b Fix ceramic tiles + Add config option to disable compartments (#83)
Co-authored-by: Martin Robertz <[email protected]>
2026-04-30 19:02:55 +02:00
Alexdoru 5acbd0b977 fix world client leak in RendererMachine (#90) 2026-04-09 20:29:55 +00:00
Martin Robertz 7e22128279 update+gradle+deps+bs 2026-04-07 18:54:15 +02:00
TweksTYandUltraProdigy 65e11fa564 Fix Genetics machines' VFX incorrectly appearing at 0;0;0 coordinates (#89)
Co-authored-by: UltraProdigy <[email protected]>
2026-03-20 23:56:15 -04:00
DarkShadow44andMartin Robertz 355c85598e Move out larvae from splicer even when no serum is present anymore (#76)
Co-authored-by: Martin Robertz <[email protected]>
2026-03-20 23:33:14 -04:00
UltraProdigy 63232799bc Optimize Images & Workflow (#88) 2026-03-08 09:28:38 +01:00
2039 changed files with 879 additions and 433 deletions

No files matched your search

+1
View File
@@ -32,6 +32,7 @@
*.[dD][lL][lL] binary
*.[dD][yY][lL][iI][bB] binary
*.[pP][sS][dD] binary
*.[pP][dD][nN] binary
*.[tT][tT][fF] binary
*.[oO][tT][fF] binary
+17
View File
@@ -0,0 +1,17 @@
name: Optimize images
on:
pull_request:
branches: [ master, main, release/** ]
paths:
- "**/*.png"
push:
branches: [ master, main, release/** ]
paths:
- "**/*.png"
jobs:
optimize-images:
uses: GTNewHorizons/GTNH-Actions-Workflows/.github/workflows/optimize-images.yml@master
secrets: inherit
+2 -1
View File
@@ -28,6 +28,7 @@ whitelist.json
*.iws
src/main/resources/mixins.*([!.]).json
*.bat
*.sh
*.DS_Store
!gradlew.bat
.factorypath
@@ -35,4 +36,4 @@ addon.local.gradle
addon.local.gradle.kts
addon.late.local.gradle
addon.late.local.gradle.kts
layout.json
layout.json
Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

+4 -4
View File
@@ -1,12 +1,12 @@
// Add your dependencies here
dependencies {
api('com.github.GTNewHorizons:ForestryMC:4.11.7:dev')
implementation('com.github.GTNewHorizons:GTNHLib:0.9.13:dev')
api('com.github.GTNewHorizons:ForestryMC:4.11.39:dev')
implementation('com.github.GTNewHorizons:GTNHLib:0.11.54:dev')
devOnlyNonPublishable('com.github.GTNewHorizons:NotEnoughItems:2.8.63-GTNH:dev')
devOnlyNonPublishable('com.github.GTNewHorizons:NotEnoughItems:2.8.162-GTNH:dev')
compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.55:api')
compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.64:api')
compileOnly('net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev')
compileOnly("curse.maven:extrabiomesxl-60041:2273301")
}
+5
View File
@@ -186,6 +186,11 @@ modrinthRelations =
# Leave this empty if you don't want to publish on CurseForge.
curseForgeProjectId =
# Comma-separated supported CurseForge environments: client, server (case-insensitive).
# Use client or server for mods that only support one environment. Defaults to client,server.
# These tags describe where the mod can run, not whether installation is required on both sides.
curseForgeEnvironments = client,server
# The project's relations on CurseForge. You can use this to refer to other projects on CurseForge.
# Syntax: type1:name1;type2:name2;...
# Where type can be one of [requiredDependency, embeddedLibrary, optionalDependency, tool, incompatible],
+10 -10
View File
@@ -1,12 +1,12 @@
#This file is generated by updateDaemonJvm
toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/c5ee947fbfb70bc347d8d531e3a578c4/redirect
toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/5ee463876563a46fff651cce1bc53a4c/redirect
toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/c5ee947fbfb70bc347d8d531e3a578c4/redirect
toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/5ee463876563a46fff651cce1bc53a4c/redirect
toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e1118b4c7c2858d28154d086dbff010e/redirect
toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/59a9771cad43219260d9aac9a8ec4d6a/redirect
toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/c5ee947fbfb70bc347d8d531e3a578c4/redirect
toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/5ee463876563a46fff651cce1bc53a4c/redirect
toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/832229f0f6f0be60ed817c5a5e5848eb/redirect
toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/b96cb7670c095245220e7d01d5927b58/redirect
toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/539ea72837c6244075f8ee037babc29e/redirect
toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/876dbbf00bf4ef6190f7da074cee903a/redirect
toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/539ea72837c6244075f8ee037babc29e/redirect
toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/876dbbf00bf4ef6190f7da074cee903a/redirect
toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/9064f22734b42ac03e85df04b632e167/redirect
toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/4d0277c49991306ac78048580fe34bcf/redirect
toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/539ea72837c6244075f8ee037babc29e/redirect
toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/876dbbf00bf4ef6190f7da074cee903a/redirect
toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/a9fa3b809e484a1e1ac4308a5dda661a/redirect
toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/aa99913fa6d767d899ffc96082da01ca/redirect
toolchainVersion=25
Binary file not shown.
+3 -1
View File
@@ -1,7 +1,9 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.7.1-bin.zip
networkTimeout=10000
retries=0
retryBackOffMs=500
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Vendored
+3 -3
View File
@@ -20,7 +20,7 @@
##############################################################################
#
# Gradle start up script for POSIX generated by Gradle.
# gradlew start up script for POSIX generated by Gradle.
#
# Important for running:
#
@@ -29,7 +29,7 @@
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
# ksh gradlew
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
@@ -57,7 +57,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
Vendored
+12 -23
View File
@@ -19,12 +19,12 @@
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem gradlew startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
@rem Set local scope for the variables, and ensure extensions are enabled
setlocal EnableExtensions
set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@@ -51,7 +51,7 @@ echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
"%COMSPEC%" /c exit 1
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
@@ -65,29 +65,18 @@ echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
"%COMSPEC%" /c exit 1
:execute
@rem Setup the command line
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
@rem Execute gradlew
@rem endlocal doesn't take effect until after the line is parsed and variables are expanded
@rem which allows us to clear the local environment before executing the java command
endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel
:end
@rem End local scope for the variables with windows NT shell
if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
:exitWithErrorLevel
@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts
"%COMSPEC%" /c exit %ERRORLEVEL%
+1 -1
View File
@@ -17,5 +17,5 @@ pluginManagement {
}
plugins {
id 'com.gtnewhorizons.gtnhsettingsconvention' version '2.0.19'
id 'com.gtnewhorizons.gtnhsettingsconvention' version '2.0.34'
}
@@ -130,7 +130,7 @@ public class BlockCeramicBrick extends Block implements IBlockMetadata, IMultipa
@Override
public IIcon getIcon(int side, int meta) {
return getType(meta).getIcon(MultipassBlockRenderer.getLayer());
return TileType.get(meta >>> 16 & 0xFF).icons[MultipassBlockRenderer.getLayer()];
}
@Override
@@ -167,6 +167,9 @@ public class BlockCeramicBrick extends Block implements IBlockMetadata, IMultipa
@Override
@SideOnly(Side.CLIENT)
public int getRenderColor(int meta) {
if (!MultipassBlockRenderer.isRendering()) {
return EnumFlowerColor.get(meta & 0xFF).getColor(false);
}
return colorMultiplier(meta);
}
@@ -177,14 +180,14 @@ public class BlockCeramicBrick extends Block implements IBlockMetadata, IMultipa
@Override
public int colorMultiplier(int meta) {
BlockType type = getType(meta);
if (MultipassBlockRenderer.getLayer() == 0) {
int layer = MultipassBlockRenderer.getLayer();
if (layer == 0) {
return 0xffffff;
}
if (MultipassBlockRenderer.getLayer() == 1) {
return type.color1.getColor(false);
if (layer == 1) {
return EnumFlowerColor.get(meta & 0xFF).getColor(false);
}
return type.color2.getColor(false);
return EnumFlowerColor.get(meta >>> 8 & 0xFF).getColor(false);
}
@Override
@@ -11,6 +11,8 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IIcon;
@@ -19,18 +21,25 @@ import net.minecraft.world.World;
import binnie.Binnie;
import binnie.botany.Botany;
import binnie.botany.CreativeTabBotany;
import binnie.botany.api.EnumFlowerChromosome;
import binnie.botany.api.EnumFlowerStage;
import binnie.botany.api.IAlleleFlowerSpecies;
import binnie.botany.api.IFlower;
import binnie.botany.api.IFlowerColor;
import binnie.botany.api.IFlowerGenome;
import binnie.botany.api.IFlowerType;
import binnie.botany.core.BotanyCore;
import binnie.botany.genetics.AlleleColor;
import binnie.botany.genetics.EnumFlowerColor;
import binnie.botany.genetics.EnumFlowerType;
import binnie.botany.genetics.Flower;
import binnie.botany.genetics.FlowerSpecies;
import binnie.core.BinnieCore;
import binnie.core.util.I18N;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IIndividual;
import forestry.api.genetics.IPollinatable;
import forestry.core.config.Config;
@@ -61,12 +70,44 @@ public abstract class ItemBotany extends Item {
return false;
}
static IAllele getRenderAllele(ItemStack stack, EnumFlowerChromosome chromosome, boolean active) {
if (stack == null || !stack.hasTagCompound()) return null;
NBTTagCompound genome = stack.getTagCompound().getCompoundTag("Genome");
NBTTagList chromosomes = genome.getTagList("Chromosomes", 10);
int slot = chromosome.ordinal();
NBTTagCompound chromosomeTag = null;
for (int index = chromosomes.tagCount() - 1; index >= 0; index--) {
NBTTagCompound candidate = chromosomes.getCompoundTagAt(index);
if (candidate.getByte("Slot") == slot) {
chromosomeTag = candidate;
break;
}
}
if (chromosomeTag == null) return null;
Class<? extends IAllele> alleleClass = chromosome.getAlleleClass();
IAllele primary = AlleleManager.alleleRegistry.getAllele(chromosomeTag.getString("UID0"));
if (!alleleClass.isInstance(primary)) return null;
IAllele secondary = AlleleManager.alleleRegistry.getAllele(chromosomeTag.getString("UID1"));
if (!alleleClass.isInstance(secondary)) return null;
if (!active) return primary;
if (primary.isDominant()) return primary;
return secondary.isDominant() ? secondary : primary;
}
@Override
public boolean hasEffect(ItemStack stack, int pass) {
if (!stack.hasTagCompound()) {
return false;
}
IAllele allele = getRenderAllele(stack, EnumFlowerChromosome.SPECIES, false);
if (allele instanceof IAlleleFlowerSpecies species) {
return species.hasEffect();
}
IIndividual individual = getIndividual(stack);
return individual != null && individual.getGenome() != null && individual.hasEffect();
}
@@ -152,6 +193,17 @@ public abstract class ItemBotany extends Item {
@Override
public int getColorFromItemStack(ItemStack itemstack, int renderPass) {
if (!itemstack.hasTagCompound()) {
return (renderPass == 0 ? EnumFlowerColor.GREEN : EnumFlowerColor.RED).getColor(false);
}
EnumFlowerChromosome chromosome = renderPass == 0 ? EnumFlowerChromosome.STEM
: renderPass == 1 ? EnumFlowerChromosome.PRIMARY : EnumFlowerChromosome.SECONDARY;
IAllele allele = getRenderAllele(itemstack, chromosome, true);
if (allele instanceof AlleleColor color) {
return color.getColor().getColor(itemstack.getTagCompound().getBoolean("Wilt"));
}
IFlower flower = BotanyCore.speciesRoot.getMember(itemstack);
if (flower == null || flower.getGenome() == null) {
return 0xffffff;
@@ -177,19 +229,32 @@ public abstract class ItemBotany extends Item {
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(ItemStack itemstack, int renderPass) {
IFlower flower = BotanyCore.speciesRoot.getMember(itemstack);
if (flower == null || flower.getGenome() == null || flower.getGenome().getPrimary() == null) {
return EnumFlowerType.ALLIUM.getBlank();
IAlleleFlowerSpecies species = FlowerSpecies.POPPY;
boolean flowered = false;
if (itemstack.hasTagCompound()) {
IAllele allele = getRenderAllele(itemstack, EnumFlowerChromosome.SPECIES, false);
if (allele instanceof IAlleleFlowerSpecies flowerSpecies) {
species = flowerSpecies;
flowered = itemstack.getTagCompound().getBoolean("Flowered");
} else {
IFlower flower = BotanyCore.speciesRoot.getMember(itemstack);
if (flower == null || flower.getGenome() == null || flower.getGenome().getPrimary() == null) {
return EnumFlowerType.ALLIUM.getBlank();
}
species = flower.getGenome().getPrimary();
flowered = flower.hasFlowered();
}
}
IFlowerType type = flower.getGenome().getPrimary().getType();
IFlowerType type = species.getType();
if (renderPass == 0) {
return type.getStem(getStage(), flower.hasFlowered(), type.getSections() - 1);
return type.getStem(getStage(), flowered, type.getSections() - 1);
}
if (renderPass == 1) {
return type.getPetalIcon(getStage(), flower.hasFlowered(), type.getSections() - 1);
return type.getPetalIcon(getStage(), flowered, type.getSections() - 1);
}
return type.getVariantIcon(getStage(), flower.hasFlowered(), type.getSections() - 1);
return type.getVariantIcon(getStage(), flowered, type.getSections() - 1);
}
@Override
@@ -38,8 +38,8 @@ public class ItemInsulatedTube extends Item {
@Override
@SideOnly(Side.CLIENT)
public void getSubItems(Item item, CreativeTabs tab, List<ItemStack> list) {
for (Material mat : Material.values()) {
for (Insulate ins : Insulate.values()) {
for (Material mat : Material.VALUES) {
for (Insulate ins : Insulate.VALUES) {
list.add(new ItemStack(this, 1, mat.ordinal() + ins.ordinal() * 128));
}
}
@@ -97,6 +97,8 @@ public class ItemInsulatedTube extends Item {
Bronze(0xddc276, "bronze"),
Iron(0xd8d8d8, "iron");
public static final Material[] VALUES = values();
private final int color;
private final String name;
@@ -106,7 +108,7 @@ public class ItemInsulatedTube extends Item {
}
public static Material get(int i) {
return values()[i % values().length];
return VALUES[i % VALUES.length];
}
public int getColor() {
@@ -127,6 +129,8 @@ public class ItemInsulatedTube extends Item {
Stone(0x6d6d6d, "smoothStone"),
Sandstone(0xc1b989, "sandstone");
public static final Insulate[] VALUES = values();
private final int color;
private final String name;
@@ -136,7 +140,7 @@ public class ItemInsulatedTube extends Item {
}
public static Insulate get(int i) {
return values()[i / 128 % values().length];
return VALUES[i / 128 % VALUES.length];
}
public int getColor() {
@@ -48,7 +48,7 @@ public class BlockPlant extends BlockBush {
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister register) {
for (Type t : Type.values()) {
for (Type t : Type.VALUES) {
t.icon = Botany.proxy.getIcon(register, t.name().toLowerCase());
}
}
@@ -61,7 +61,7 @@ public class BlockPlant extends BlockBush {
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta) {
return Type.values()[meta % Type.values().length].icon;
return Type.VALUES[meta % Type.VALUES.length].icon;
}
@Override
@@ -72,7 +72,7 @@ public class BlockPlant extends BlockBush {
@Override
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item item, CreativeTabs tab, List<ItemStack> list) {
for (Type type : Type.values()) {
for (Type type : Type.VALUES) {
list.add(type.get());
}
}
@@ -135,6 +135,7 @@ public class BlockPlant extends BlockBush {
DeadFlower("deadFlower"),
DecayingFlower("decayingFlower");
public static final Type[] VALUES = values();
public IIcon icon;
private final String name;
@@ -144,7 +145,7 @@ public class BlockPlant extends BlockBush {
}
public static Type get(int id) {
return values()[id % values().length];
return VALUES[id % VALUES.length];
}
public ItemStack get() {
@@ -18,7 +18,7 @@ public class ItemWeed extends ItemBlock {
@Override
public String getItemStackDisplayName(ItemStack stack) {
return BlockPlant.Type.values()[stack.getItemDamage()].getName();
return BlockPlant.Type.VALUES[stack.getItemDamage()].getName();
}
@Override
@@ -8,7 +8,13 @@ import forestry.core.genetics.alleles.EnumAllele;
public class FlowerTemplates {
private static IAllele[] defaultTemplate;
public static IAllele[] getDefaultTemplate() {
if (defaultTemplate != null) {
return defaultTemplate.clone();
}
IAllele[] alleles = new IAllele[EnumFlowerChromosome.VALUES.length];
alleles[EnumFlowerChromosome.SPECIES.ordinal()] = FlowerSpecies.POPPY;
alleles[EnumFlowerChromosome.PRIMARY.ordinal()] = AlleleHelper.getAllele(EnumFlowerColor.RED);
@@ -22,6 +28,13 @@ public class FlowerTemplates {
alleles[EnumFlowerChromosome.PH_TOLERANCE.ordinal()] = AlleleHelper.getAllele(EnumTolerance.NONE);
alleles[EnumFlowerChromosome.SAPPINESS.ordinal()] = AlleleHelper.getAllele(EnumAllele.Sappiness.AVERAGE);
alleles[EnumFlowerChromosome.STEM.ordinal()] = AlleleHelper.getAllele(EnumFlowerColor.GREEN);
return alleles;
for (IAllele allele : alleles) {
// Do not cache a partial template during registry initialization.
if (allele == null) return alleles;
}
defaultTemplate = alleles;
return defaultTemplate.clone();
}
}
+4 -1
View File
@@ -12,6 +12,7 @@ import net.minecraftforge.common.MinecraftForge;
import binnie.Binnie;
import binnie.core.block.MultipassBlockRenderer;
import binnie.core.block.TileEntityMetadata;
import binnie.core.config.BCConfig;
import binnie.core.craftgui.minecraft.ModuleCraftGUI;
import binnie.core.gui.BinnieCoreGUI;
import binnie.core.gui.BinnieGUIHandler;
@@ -78,7 +79,9 @@ public class BinnieCore extends AbstractMod {
}
addModule(new ModuleCraftGUI());
addModule(new ModuleStorage());
if (!BCConfig.disableCompartments) {
addModule(new ModuleStorage());
}
addModule(new ModuleItems());
if (Loader.isModLoaded("BuildCraft|Silicon")) {
addModule(new ModuleTrigger());
@@ -17,6 +17,8 @@ public class ItemMetadata extends ItemBlock {
public ItemMetadata(Block block) {
super(block);
setMaxDamage(0);
setHasSubtypes(true);
}
@Override
@@ -14,6 +14,7 @@ public class MultipassBlockRenderer implements ISimpleBlockRenderingHandler {
public static MultipassBlockRenderer instance;
private static int layer = 0;
private static boolean rendering = false;
public MultipassBlockRenderer() {
MultipassBlockRenderer.instance = this;
@@ -23,31 +24,49 @@ public class MultipassBlockRenderer implements ISimpleBlockRenderingHandler {
return MultipassBlockRenderer.layer;
}
public static boolean isRendering() {
return MultipassBlockRenderer.rendering;
}
@Override
public void renderInventoryBlock(Block block, int meta, int modelID, RenderBlocks renderer) {
IMultipassBlock multipassBlock = (IMultipassBlock) block;
int passes = multipassBlock.getNumberOfPasses();
block.setBlockBoundsForItemRender();
renderer.setRenderBoundsFromBlock(block);
GL11.glTranslatef(-0.5f, -0.5f, -0.5f);
MultipassBlockRenderer.layer = 0;
while (MultipassBlockRenderer.layer < ((IMultipassBlock) block).getNumberOfPasses()) {
renderItem(block, renderer, meta);
MultipassBlockRenderer.layer++;
MultipassBlockRenderer.rendering = true;
try {
for (int pass = 0; pass < passes; ++pass) {
MultipassBlockRenderer.layer = pass;
renderItem(block, multipassBlock, renderer, meta);
}
} finally {
MultipassBlockRenderer.layer = 0;
MultipassBlockRenderer.rendering = false;
}
MultipassBlockRenderer.layer = 0;
}
@Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId,
RenderBlocks renderer) {
boolean r = true;
MultipassBlockRenderer.layer = 0;
while (MultipassBlockRenderer.layer < ((IMultipassBlock) block).getNumberOfPasses()) {
r = renderer.renderStandardBlock(block, x, y, z);
MultipassBlockRenderer.layer++;
IMultipassBlock multipassBlock = (IMultipassBlock) block;
int passes = multipassBlock.getNumberOfPasses();
boolean rendered = true;
MultipassBlockRenderer.rendering = true;
try {
for (int pass = 0; pass < passes; ++pass) {
MultipassBlockRenderer.layer = pass;
rendered = renderer.renderStandardBlock(block, x, y, z);
}
return rendered;
} finally {
MultipassBlockRenderer.layer = 0;
MultipassBlockRenderer.rendering = false;
}
MultipassBlockRenderer.layer = 0;
return r;
}
@Override
@@ -60,8 +79,8 @@ public class MultipassBlockRenderer implements ISimpleBlockRenderingHandler {
return BinnieCore.multipassRenderID;
}
public void renderItem(Block block, RenderBlocks renderer, int meta) {
setColor(((IMultipassBlock) block).colorMultiplier(meta));
private void renderItem(Block block, IMultipassBlock multipassBlock, RenderBlocks renderer, int meta) {
setColor(multipassBlock.colorMultiplier(meta));
Tessellator tessellator = Tessellator.instance;
tessellator.startDrawingQuads();
tessellator.setNormal(0.0f, -1.0f, 0.0f);
Loaded 100 of 2039 files, more files were not shown because too many files have changed in this diff. Show more