Thread Safe (#112)

This commit is contained in:
Jason Mitchell authored and GitHub committed 2024-03-10 20:11:36 +01:00
1 parent 2a6cd9ffe9
commit 84430a2887
20 files changed
+62 -13

No files matched your search

+1
View File
@@ -1,6 +1,7 @@
// Add your dependencies here
dependencies {
compileOnlyApi('com.github.GTNewHorizons:Angelica:1.0.0-alpha31:api')
api("com.github.GTNewHorizons:Mantle:0.4.1:dev")
api("com.github.GTNewHorizons:ForgeMultipart:1.4.7:dev")
implementation("com.github.GTNewHorizons:NotEnoughItems:2.5.4-GTNH:dev")
+5 -4
View File
@@ -33,7 +33,7 @@ channel = stable
mappingsVersion = 12
# Defines other MCP mappings for dependency deobfuscation.
remoteMappings = https://raw.githubusercontent.com/MinecraftForge/FML/1.7.10/conf/
remoteMappings = https\://raw.githubusercontent.com/MinecraftForge/FML/1.7.10/conf/
# Select a default username for testing your mod. You can always override this per-run by running
# `./gradlew runClient --username=AnotherPlayer`, or configuring this command in your IDE.
@@ -61,6 +61,9 @@ gradleTokenModId = GRADLETOKEN_MODID
# [DEPRECATED] Mod name replacement token.
gradleTokenModName =
# [DEPRECATED] Mod Group replacement token.
gradleTokenGroupName =
# [DEPRECATED]
# Multiple source files can be defined here by providing a comma-separated list: Class1.java,Class2.java,Class3.java
# public static final String VERSION = "GRADLETOKEN_VERSION";
@@ -123,7 +126,7 @@ includeWellKnownRepositories = true
usesMavenPublishing = true
# Maven repository to publish the mod to.
# mavenPublishUrl = https://nexus.gtnewhorizons.com/repository/releases/
# mavenPublishUrl = https\://nexus.gtnewhorizons.com/repository/releases/
# Publishing to Modrinth requires you to set the MODRINTH_TOKEN environment variable to your current Modrinth API token.
#
@@ -187,5 +190,3 @@ curseForgeRelations =
# This is meant to be set in $HOME/.gradle/gradle.properties.
# ideaCheckSpotlessOnBuild = true
# Non-GTNH properties
gradleTokenGroupName =
+1 -1
View File
@@ -17,7 +17,7 @@ pluginManagement {
}
plugins {
id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.8'
id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.15'
}
@@ -7,10 +7,13 @@ import net.minecraft.world.IBlockAccess;
import org.lwjgl.opengl.GL11;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import tconstruct.util.ItemHelper;
@ThreadSafeISBRH(perThread = false)
public class DryingRackRender implements ISimpleBlockRenderingHandler {
public static int model = RenderingRegistry.getNextAvailableRenderId();
@@ -64,7 +67,7 @@ public class DryingRackRender implements ISimpleBlockRenderingHandler {
}
public static void renderStandardInvBlock(RenderBlocks renderblocks, Block block, int meta) {
Tessellator tessellator = Tessellator.instance;
final Tessellator tessellator = Tessellator.instance;
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1F, 0.0F);
@@ -91,7 +91,6 @@ public class LavaTankBlock extends BlockContainer {
@Override
public boolean canRenderInPass(int pass) {
TankRender.renderPass = pass;
return true;
}
@@ -13,6 +13,8 @@ import net.minecraftforge.fluids.FluidTankInfo;
import org.lwjgl.opengl.GL11;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import tconstruct.client.BlockSkinRenderHelper;
@@ -21,6 +23,7 @@ import tconstruct.smeltery.logic.CastingChannelLogic;
/**
* @author BluSunrize
*/
@ThreadSafeISBRH(perThread = false)
public class BlockRenderCastingChannel implements ISimpleBlockRenderingHandler {
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
@@ -6,6 +6,8 @@ import net.minecraft.item.ItemStack;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.fluids.Fluid;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import tconstruct.TConstruct;
@@ -17,6 +19,7 @@ import tconstruct.smeltery.logic.CastingTableLogic;
import tconstruct.smeltery.logic.FaucetLogic;
import tconstruct.util.ItemHelper;
@ThreadSafeISBRH(perThread = false)
public class CastingBlockRender implements ISimpleBlockRenderingHandler {
public static int searedModel = RenderingRegistry.getNextAvailableRenderId();
@@ -10,10 +10,13 @@ import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import tconstruct.smeltery.blocks.GlassPaneConnected;
@ThreadSafeISBRH(perThread = false)
public class PaneConnectedRender implements ISimpleBlockRenderingHandler {
public static int model = RenderingRegistry.getNextAvailableRenderId();
@@ -4,10 +4,13 @@ import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.world.IBlockAccess;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import tconstruct.util.ItemHelper;
@ThreadSafeISBRH(perThread = false)
public class PaneRender implements ISimpleBlockRenderingHandler {
public static int model = RenderingRegistry.getNextAvailableRenderId();
@@ -8,6 +8,8 @@ import net.minecraft.world.IBlockAccess;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import mantle.world.CoordTuple;
@@ -16,6 +18,7 @@ import tconstruct.library.crafting.Smeltery;
import tconstruct.smeltery.logic.SmelteryLogic;
import tconstruct.util.ItemHelper;
@ThreadSafeISBRH(perThread = false)
public class SmelteryRender implements ISimpleBlockRenderingHandler {
public static int smelteryModel = RenderingRegistry.getNextAvailableRenderId();
@@ -40,8 +43,8 @@ public class SmelteryRender implements ISimpleBlockRenderingHandler {
public boolean renderSmeltery(IBlockAccess world, int x, int y, int z, Block block, int modelID,
RenderBlocks renderer) {
boolean ret = renderer.renderStandardBlock(block, x, y, z);
SmelteryLogic logic = (SmelteryLogic) world.getTileEntity(x, y, z);
if (logic.validStructure) {
final SmelteryLogic logic = (SmelteryLogic) world.getTileEntity(x, y, z);
if (logic != null && logic.validStructure) {
CoordTuple from = logic.minPos;
CoordTuple to = logic.maxPos;
@@ -5,21 +5,24 @@ import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.init.Blocks;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.client.ForgeHooksClient;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
import org.lwjgl.opengl.GL11;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import tconstruct.client.BlockSkinRenderHelper;
import tconstruct.smeltery.logic.LavaTankLogic;
import tconstruct.util.ItemHelper;
@ThreadSafeISBRH(perThread = false)
public class TankRender implements ISimpleBlockRenderingHandler {
public static int tankModelID = RenderingRegistry.getNextAvailableRenderId();
public static int renderPass = 0;
@Override
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
@@ -38,9 +41,9 @@ public class TankRender implements ISimpleBlockRenderingHandler {
RenderBlocks renderer) {
if (modelID == tankModelID) {
// Liquid
if (renderPass == 0) {
if (ForgeHooksClient.getWorldRenderPass() == 0) {
LavaTankLogic logic = (LavaTankLogic) world.getTileEntity(x, y, z);
if (logic.containsFluid()) {
if (logic != null && logic.containsFluid()) {
FluidStack liquid = logic.tank.getFluid();
renderer.setRenderBounds(0.001, 0.001, 0.001, 0.999, logic.getFluidAmountScaled(), 0.999);
Fluid fluid = liquid.getFluid();
@@ -84,7 +87,7 @@ public class TankRender implements ISimpleBlockRenderingHandler {
}
private void renderDoRe(RenderBlocks renderblocks, Block block, int meta) {
Tessellator tessellator = Tessellator.instance;
final Tessellator tessellator = Tessellator.instance;
GL11.glTranslatef(-0.5F, 0.5F, -0.5F);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1F, 0.0F);
@@ -4,9 +4,12 @@ import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.world.IBlockAccess;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
@ThreadSafeISBRH(perThread = false)
public class BattlesignRender implements ISimpleBlockRenderingHandler {
public static int battlesignModelID = RenderingRegistry.getNextAvailableRenderId();
@@ -4,9 +4,12 @@ import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.world.IBlockAccess;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
@ThreadSafeISBRH(perThread = false)
public class FrypanRender implements ISimpleBlockRenderingHandler {
public static int frypanModelID = RenderingRegistry.getNextAvailableRenderId();
@@ -7,10 +7,13 @@ import net.minecraft.world.IBlockAccess;
import org.lwjgl.opengl.GL11;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import tconstruct.tools.TinkerTools;
@ThreadSafeISBRH(perThread = false)
public class TableRender implements ISimpleBlockRenderingHandler {
public static int model = RenderingRegistry.getNextAvailableRenderId();
@@ -4,10 +4,13 @@ import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.world.IBlockAccess;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import tconstruct.util.ItemHelper;
@ThreadSafeISBRH(perThread = false)
public class BarricadeRender implements ISimpleBlockRenderingHandler {
public static int model;
@@ -4,10 +4,13 @@ import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.world.IBlockAccess;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import tconstruct.util.ItemHelper;
@ThreadSafeISBRH(perThread = false)
public class OreberryRender implements ISimpleBlockRenderingHandler {
public static int model = RenderingRegistry.getNextAvailableRenderId();
@@ -7,9 +7,12 @@ import net.minecraft.world.IBlockAccess;
import org.lwjgl.opengl.GL11;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
@ThreadSafeISBRH(perThread = false)
public class PunjiRender implements ISimpleBlockRenderingHandler {
public static int model = RenderingRegistry.getNextAvailableRenderId();
@@ -7,6 +7,8 @@ import net.minecraftforge.common.util.ForgeDirection;
import org.lwjgl.opengl.GL11;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import tconstruct.mechworks.landmine.Helper;
@@ -16,6 +18,7 @@ import tconstruct.mechworks.landmine.Helper;
* @author fuj1n
*
*/
@ThreadSafeISBRH(perThread = false)
public class RenderLandmine implements ISimpleBlockRenderingHandler {
public static int model = RenderingRegistry.getNextAvailableRenderId();
@@ -7,10 +7,13 @@ import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import tconstruct.util.ItemHelper;
@ThreadSafeISBRH(perThread = false)
public class SlimeChannelRender implements ISimpleBlockRenderingHandler {
public static int model = RenderingRegistry.getNextAvailableRenderId();
@@ -4,6 +4,8 @@ import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.world.IBlockAccess;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import tconstruct.client.BlockSkinRenderHelper;
@@ -11,6 +13,7 @@ import tconstruct.util.ItemHelper;
import tconstruct.world.TinkerWorld;
import tconstruct.world.blocks.SlimePad;
@ThreadSafeISBRH(perThread = false)
public class SlimePadRender implements ISimpleBlockRenderingHandler {
public static int model = RenderingRegistry.getNextAvailableRenderId();