Skip to content

Commit 3debd9a

Browse files
committed
Updated to BTA 7.2-pre1!
1 parent c1e05a1 commit 3debd9a

File tree

14 files changed

+233
-1461
lines changed

14 files changed

+233
-1461
lines changed

fluids/gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
org.gradle.jvmargs=-Xmx2G
22

33
# Mod
4-
mod_version=1.1.0
4+
mod_version=1.1.1
55
mod_group=sunsetsatellite
66
mod_name=catalyst-fluids

fluids/src/main/java/sunsetsatellite/catalyst/fluids/impl/GuiFluid.java

+15-11
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
import net.minecraft.client.render.Lighting;
77
import net.minecraft.client.render.block.color.BlockColorDispatcher;
88
import net.minecraft.client.render.entity.ItemEntityRenderer;
9+
import net.minecraft.client.render.item.model.ItemModel;
10+
import net.minecraft.client.render.item.model.ItemModelDispatcher;
11+
import net.minecraft.client.render.tessellator.Tessellator;
912
import net.minecraft.core.block.Block;
1013
import net.minecraft.core.item.ItemStack;
1114
import net.minecraft.core.lang.I18n;
@@ -17,7 +20,6 @@
1720
import org.lwjgl.opengl.GL12;
1821
import sunsetsatellite.catalyst.core.util.NumberUtil;
1922
import sunsetsatellite.catalyst.fluids.interfaces.mixins.IPlayerController;
20-
import sunsetsatellite.catalyst.fluids.render.RenderFluid;
2123
import sunsetsatellite.catalyst.fluids.util.SlotFluid;
2224

2325

@@ -122,15 +124,18 @@ protected void drawFluidSlotInventory(SlotFluid slot1) {
122124
return;
123125
}
124126

125-
RenderFluid.drawFluidIntoGui(this.fontRenderer, this.mc.renderEngine, itemStack4.itemID,itemStack4.getMetadata(),itemStack4.getIconIndex(), i2, i3, 16, 16);
126-
ContainerFluid container = ((ContainerFluid) inventorySlots);
127-
if(slot1.getFluidStack().getLiquid() == Block.fluidWaterFlowing){
128-
int waterColor = BlockColorDispatcher.getInstance().getDispatch(Block.fluidWaterFlowing).getWorldColor(this.mc.theWorld,container.tile.x,container.tile.y,container.tile.z);
129-
Color c = new Color().setARGB(waterColor);
130-
c.setRGBA(c.getRed(),c.getGreen(),c.getBlue(),0x40);
131-
RenderFluid.drawFluidIntoGui(this.fontRenderer, this.mc.renderEngine, itemStack4.itemID,itemStack4.getMetadata(),itemStack4.getIconIndex(), i2, i3, 16, 16,c.value);
132-
}
133-
itemRender.renderItemOverlayIntoGUI(this.fontRenderer, this.mc.renderEngine, itemStack4, i2, i3, NumberUtil.format(slot1.getFluidStack().amount), 1.0F);
127+
ItemModel itemModel = ItemModelDispatcher.getInstance().getDispatch(slot1.getFluidStack().getLiquid().getDefaultStack().getItem());
128+
129+
itemModel.renderItemIntoGui(Tessellator.instance,this.fontRenderer, this.mc.renderEngine, itemStack4, i2, i3,1.0F);
130+
ContainerItemFluid container = ((ContainerItemFluid) inventorySlots);
131+
/*if(slot1.getFluidStack().getLiquid() == Block.fluidWaterFlowing){
132+
int waterColor = BlockColorDispatcher.getInstance().getDispatch(Block.fluidWaterFlowing).getWorldColor(this.mc.theWorld, (int) this.mc.thePlayer.x, (int) this.mc.thePlayer.y, (int) this.mc.thePlayer.z);
133+
Color c = new Color().setARGB(waterColor);
134+
c.setRGBA(c.getRed(),c.getGreen(),c.getBlue(),0x40);
135+
itemModel.renderItemIntoGui(Tessellator.instance,this.fontRenderer, this.mc.renderEngine, itemStack4, i2, i3,1.0F);
136+
}*/
137+
138+
itemModel.renderItemOverlayIntoGUI(Tessellator.instance,this.fontRenderer, this.mc.renderEngine, itemStack4, i2, i3,1.0F);
134139
}
135140
}
136141

@@ -181,5 +186,4 @@ public void init()
181186
super.init();
182187
}
183188
private InventoryPlayer inventoryPlayer;
184-
public ItemEntityRenderer itemRender = new ItemEntityRenderer();
185189
}

fluids/src/main/java/sunsetsatellite/catalyst/fluids/impl/GuiItemFluid.java

+13-7
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,12 @@
44
import net.minecraft.client.gui.GuiContainer;
55
import net.minecraft.client.gui.GuiTooltip;
66
import net.minecraft.client.render.Lighting;
7+
import net.minecraft.client.render.RenderBlocks;
78
import net.minecraft.client.render.block.color.BlockColorDispatcher;
89
import net.minecraft.client.render.entity.ItemEntityRenderer;
10+
import net.minecraft.client.render.item.model.ItemModel;
11+
import net.minecraft.client.render.item.model.ItemModelDispatcher;
12+
import net.minecraft.client.render.tessellator.Tessellator;
913
import net.minecraft.core.block.Block;
1014
import net.minecraft.core.item.ItemStack;
1115
import net.minecraft.core.lang.I18n;
@@ -16,7 +20,6 @@
1620
import org.lwjgl.opengl.GL11;
1721
import org.lwjgl.opengl.GL12;
1822
import sunsetsatellite.catalyst.fluids.interfaces.mixins.IPlayerController;
19-
import sunsetsatellite.catalyst.fluids.render.RenderFluid;
2023
import sunsetsatellite.catalyst.fluids.util.SlotFluid;
2124

2225

@@ -121,15 +124,19 @@ protected void drawFluidSlotInventory(SlotFluid slot1) {
121124
return;
122125
}
123126

124-
RenderFluid.drawFluidIntoGui(this.fontRenderer, this.mc.renderEngine, itemStack4.itemID,itemStack4.getMetadata(),itemStack4.getIconIndex(), i2, i3, 16, 16);
127+
ItemModel itemModel = ItemModelDispatcher.getInstance().getDispatch(slot1.getFluidStack().getLiquid().getDefaultStack().getItem());
128+
129+
itemModel.renderItemIntoGui(Tessellator.instance,this.fontRenderer, this.mc.renderEngine, itemStack4, i2, i3,1.0F);
125130
ContainerItemFluid container = ((ContainerItemFluid) inventorySlots);
126-
if(slot1.getFluidStack().getLiquid() == Block.fluidWaterFlowing){
131+
132+
/*if(slot1.getFluidStack().getLiquid() == Block.fluidWaterFlowing){
127133
int waterColor = BlockColorDispatcher.getInstance().getDispatch(Block.fluidWaterFlowing).getWorldColor(this.mc.theWorld, (int) this.mc.thePlayer.x, (int) this.mc.thePlayer.y, (int) this.mc.thePlayer.z);
128134
Color c = new Color().setARGB(waterColor);
129135
c.setRGBA(c.getRed(),c.getGreen(),c.getBlue(),0x40);
130-
RenderFluid.drawFluidIntoGui(this.fontRenderer, this.mc.renderEngine, itemStack4.itemID,itemStack4.getMetadata(),itemStack4.getIconIndex(), i2, i3, 16, 16,c.value);
131-
}
132-
itemRender.renderItemOverlayIntoGUI(this.fontRenderer, this.mc.renderEngine, itemStack4, i2, i3,1.0F);
136+
itemModel.renderItemIntoGui(Tessellator.instance,this.fontRenderer, this.mc.renderEngine, itemStack4, i2, i3,1.0F);
137+
}*/
138+
139+
itemModel.renderItemOverlayIntoGUI(Tessellator.instance,this.fontRenderer, this.mc.renderEngine, itemStack4, i2, i3,1.0F);
133140
}
134141
}
135142

@@ -180,5 +187,4 @@ public void init()
180187
super.init();
181188
}
182189
private InventoryPlayer inventoryPlayer;
183-
public ItemEntityRenderer itemRender = new ItemEntityRenderer();
184190
}

fluids/src/main/java/sunsetsatellite/catalyst/fluids/impl/gui/GuiMultiFluidTank.java

+28-6
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
import net.minecraft.client.gui.GuiTooltip;
77
import net.minecraft.client.render.block.color.BlockColorDispatcher;
88
import net.minecraft.client.render.entity.ItemEntityRenderer;
9+
import net.minecraft.client.render.item.model.ItemModel;
10+
import net.minecraft.client.render.item.model.ItemModelDispatcher;
11+
import net.minecraft.client.render.item.model.ItemModelStandard;
12+
import net.minecraft.client.render.tessellator.Tessellator;
913
import net.minecraft.core.block.Block;
1014
import net.minecraft.core.block.BlockFluid;
1115
import net.minecraft.core.block.entity.TileEntity;
@@ -18,7 +22,7 @@
1822
import sunsetsatellite.catalyst.CatalystFluids;
1923
import sunsetsatellite.catalyst.fluids.impl.containers.ContainerMultiFluidTank;
2024
import sunsetsatellite.catalyst.fluids.impl.tiles.TileEntityMassFluidItemContainer;
21-
import sunsetsatellite.catalyst.fluids.render.RenderFluid;
25+
import sunsetsatellite.catalyst.fluids.render.ItemModelFluid;
2226
import sunsetsatellite.catalyst.fluids.util.FluidLayer;
2327
import sunsetsatellite.catalyst.fluids.util.FluidStack;
2428

@@ -29,7 +33,6 @@ public class GuiMultiFluidTank extends GuiContainer {
2933

3034
public String name = "Multi Fluid Tank";
3135
public TileEntityMassFluidItemContainer tile;
32-
public ItemEntityRenderer itemRender = new ItemEntityRenderer();
3336
public ArrayList<FluidLayer> fluidLayers = new ArrayList<>();
3437
/*{
3538
try {
@@ -68,13 +71,21 @@ protected void drawFluidTank(int x, int y, int sizeX, int sizeY) {
6871
int j = (width - xSize) / 2;
6972
int k = (height - ySize) / 2;
7073
int fluidBarSize = (int) CatalystFluids.map(fluidStack.amount,0,tile.fluidCapacity,2,sizeY-3);
71-
RenderFluid.drawFluidIntoGui(fontRenderer, this.mc.renderEngine, fluid.id, 0, fluid.getBlockTextureFromSideAndMetadata(Side.BOTTOM,0), x, y+i-fluidBarSize-2, sizeX-2, fluidBarSize);
72-
if (fluidStack.getLiquid() == Block.fluidWaterFlowing && Minecraft.getMinecraft(Minecraft.class).gameSettings.biomeWater.value) {
74+
ItemModel itemModel = ItemModelDispatcher.getInstance().getDispatch(fluid.getDefaultStack().getItem());
75+
76+
if(itemModel instanceof ItemModelFluid){
77+
((ItemModelFluid) itemModel).renderItemIntoGui(Tessellator.instance,this.fontRenderer, this.mc.renderEngine, fluid.getDefaultStack(), x, y+i-fluidBarSize-2, sizeX-2, fluidBarSize, 1.0F, 1.0F);
78+
} else if(itemModel instanceof ItemModelStandard) {
79+
renderColoredQuad(Tessellator.instance, x, y+i-fluidBarSize-2, sizeX-2, fluidBarSize, ((ItemModelStandard) itemModel).getColor(fluid.getDefaultStack()), 1);
80+
}
81+
//RenderFluid.drawFluidIntoGui(fontRenderer, this.mc.renderEngine, fluid.id, 0, fluid.getBlockTextureFromSideAndMetadata(Side.BOTTOM,0), x, y+i-fluidBarSize-2, sizeX-2, fluidBarSize);
82+
/*if (fluidStack.getLiquid() == Block.fluidWaterFlowing && Minecraft.getMinecraft(Minecraft.class).gameSettings.biomeWater.value) {
7383
int waterColor = BlockColorDispatcher.getInstance().getDispatch(Block.fluidWaterFlowing).getWorldColor(this.mc.theWorld,tile.x,tile.y,tile.z);
7484
Color c = new Color().setARGB(waterColor);
7585
c.setRGBA(c.getRed(), c.getGreen(), c.getBlue(), 0x40);
76-
RenderFluid.drawFluidIntoGui(fontRenderer, this.mc.renderEngine, fluid.id, 0, fluid.getBlockTextureFromSideAndMetadata(Side.BOTTOM,0), x, y+i-fluidBarSize-2, sizeX-2, fluidBarSize, c.value);
77-
}
86+
itemModel.renderItemIntoGui(Tessellator.instance,this.fontRenderer, this.mc.renderEngine, fluid.getDefaultStack(), x, y-fluidBarSize-2,1.0F);
87+
//RenderFluid.drawFluidIntoGui(fontRenderer, this.mc.renderEngine, fluid.id, 0, fluid.getBlockTextureFromSideAndMetadata(Side.BOTTOM,0), x, y+i-fluidBarSize-2, sizeX-2, fluidBarSize, c.value);
88+
}*/
7889
fluidLayers.add(new FluidLayer(id,x,y+i-fluidBarSize-2,sizeX-2,fluidBarSize,fluidStack));
7990
id++;
8091

@@ -84,6 +95,17 @@ protected void drawFluidTank(int x, int y, int sizeX, int sizeY) {
8495
}
8596
}
8697

98+
private void renderColoredQuad(Tessellator tessellator, int x, int y, int width, int height, int colorRGB, int alpha) {
99+
float z = 0.0F;
100+
tessellator.startDrawingQuads();
101+
tessellator.setColorRGBA_I(colorRGB, alpha);
102+
tessellator.addVertex(x, y, 0.0);
103+
tessellator.addVertex(x, y + height, 0.0);
104+
tessellator.addVertex(x + width, y + height, 0.0);
105+
tessellator.addVertex(x + width, y, 0.0);
106+
tessellator.draw();
107+
}
108+
87109
public FluidLayer getFluidLayerAtPosition(int x, int y){
88110
if(!fluidLayers.isEmpty()){
89111
for (FluidLayer fluidLayer : fluidLayers) {

fluids/src/main/java/sunsetsatellite/catalyst/fluids/registry/FluidRegistry.java

+15
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package sunsetsatellite.catalyst.fluids.registry;
22

3+
import net.minecraft.client.render.item.model.ItemModelDispatcher;
34
import net.minecraft.core.block.BlockFluid;
45
import net.minecraft.core.data.registry.Registry;
56
import net.minecraft.core.item.Item;
7+
import net.minecraft.core.item.block.ItemBlock;
8+
import sunsetsatellite.catalyst.fluids.render.ItemModelFluid;
69

710
import java.util.ArrayList;
811
import java.util.List;
@@ -20,6 +23,18 @@ public List<Item> findContainers(BlockFluid fluid){
2023
return items;
2124
}
2225

26+
@Override
27+
public void register(String key, FluidRegistryEntry item) {
28+
super.register(key, item);
29+
if(key.split(":").length < 1){
30+
throw new IllegalArgumentException("Invalid or malformed key: " + key);
31+
}
32+
for (BlockFluid blockFluid : item.fluid) {
33+
ItemBlock itemBlock = (ItemBlock) Item.itemsList[blockFluid.id];
34+
ItemModelDispatcher.getInstance().addDispatch(new ItemModelFluid(itemBlock,key.split(":")[0]));
35+
}
36+
}
37+
2338
public List<Item> findFilledContainersWithContainer(BlockFluid fluid, Item container){
2439
List<Item> items = new ArrayList<>();
2540
for (FluidRegistryEntry fluidRegistryEntry : this) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package sunsetsatellite.catalyst.fluids.render;
2+
3+
import net.minecraft.client.Minecraft;
4+
import net.minecraft.client.render.FontRenderer;
5+
import net.minecraft.client.render.RenderEngine;
6+
import net.minecraft.client.render.item.model.ItemModelStandard;
7+
import net.minecraft.client.render.stitcher.IconCoordinate;
8+
import net.minecraft.client.render.tessellator.Tessellator;
9+
import net.minecraft.core.item.Item;
10+
import net.minecraft.core.item.ItemStack;
11+
import org.lwjgl.opengl.GL11;
12+
13+
public class ItemModelFluid extends ItemModelStandard {
14+
public ItemModelFluid(Item item, String namespace) {
15+
super(item, namespace);
16+
}
17+
18+
public void renderItemIntoGui(Tessellator tessellator, FontRenderer fontrenderer, RenderEngine renderengine, ItemStack itemStack, int x, int y, int height, int width, float brightness, float alpha) {
19+
if (itemStack != null) {
20+
Minecraft mc = Minecraft.getMinecraft(this);
21+
GL11.glEnable(3042);
22+
GL11.glBlendFunc(770, 771);
23+
GL11.glEnable(2884);
24+
IconCoordinate textureIndex = this.getIcon(mc.thePlayer, itemStack);
25+
GL11.glDisable(2896);
26+
textureIndex.parentAtlas.bindTexture();
27+
if (this.useColor) {
28+
int color = this.getColor(itemStack);
29+
float r = (float)(color >> 16 & 255) / 255.0F;
30+
float g = (float)(color >> 8 & 255) / 255.0F;
31+
float b = (float)(color & 255) / 255.0F;
32+
GL11.glColor4f(r * brightness, g * brightness, b * brightness, alpha);
33+
} else {
34+
GL11.glColor4f(brightness, brightness, brightness, alpha);
35+
}
36+
37+
this.renderTexturedQuad(tessellator, x, y, height, width, textureIndex,false,false);
38+
GL11.glEnable(2896);
39+
GL11.glEnable(2884);
40+
GL11.glDisable(3042);
41+
}
42+
}
43+
44+
protected void renderTexturedQuad(Tessellator tessellator, int x, int y, int height, int width, IconCoordinate icon, boolean flipX, boolean flipY) {
45+
final float z = 0.0F;
46+
double uMin = icon.getIconUMin();
47+
double uMax = icon.getIconUMax();
48+
double vMin = icon.getIconVMin();
49+
double vMax = icon.getIconVMax();
50+
if (flipX){
51+
double _uMin = uMin;
52+
uMin = uMax;
53+
uMax = _uMin;
54+
}
55+
if (flipY){
56+
double _vMin = vMin;
57+
vMin = vMax;
58+
vMax = _vMin;
59+
}
60+
tessellator.startDrawingQuads();
61+
tessellator.addVertexWithUV(x, y + height, z, uMin, vMax);
62+
tessellator.addVertexWithUV(x + width, y + height, z, uMax, vMax);
63+
tessellator.addVertexWithUV(x + width, y, z, uMax, vMin);
64+
tessellator.addVertexWithUV(x, y, z, uMin, vMin);
65+
tessellator.draw();
66+
}
67+
}

0 commit comments

Comments
 (0)