Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions dependencies.gradle
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
// Add your dependencies here

dependencies {
devOnlyNonPublishable("com.github.GTNewHorizons:NotEnoughItems:2.8.31-GTNH:dev")
api("com.github.GTNewHorizons:GTNHLib:0.8.32:dev")
devOnlyNonPublishable("com.github.GTNewHorizons:NotEnoughItems:2.8.40-GTNH:dev")

compileOnly("com.github.GTNewHorizons:ForestryMC:4.11.2:api") {transitive = false}
compileOnly("com.github.GTNewHorizons:Botania:1.13.4-GTNH:dev") {transitive = false}
compileOnly("com.github.GTNewHorizons:Botania:1.13.6-GTNH:dev") {transitive = false}
compileOnly("com.github.GTNewHorizons:Mantle:0.5.1:dev") {transitive = false}
compileOnly("com.github.GTNewHorizons:TinkersConstruct:1.14.6-GTNH:dev") {transitive = false}
compileOnly("com.github.GTNewHorizons:BloodMagic:1.8.5") {transitive = false}
compileOnly("com.github.GTNewHorizons:TinkersConstruct:1.14.15-GTNH:dev") {transitive = false}
compileOnly("com.github.GTNewHorizons:BloodMagic:1.8.7") {transitive = false}
compileOnly("com.github.GTNewHorizons:CraftTweaker:3.4.2:dev") {transitive = false}
compileOnly("com.github.GTNewHorizons:Hodgepodge:2.7.11:dev") {transitive = false}
compileOnly("com.github.GTNewHorizons:GT5-Unofficial:5.09.52.97:dev") {transitive = false}
compileOnly("com.github.GTNewHorizons:Hodgepodge:2.7.25:dev") {transitive = false}
compileOnly("com.github.GTNewHorizons:GT5-Unofficial:5.09.52.140:dev") {transitive = false}

compileOnly("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev") {transitive = false}
compileOnly("curse.maven:cofh-lib-220333:2388748") {transitive = false}
compileOnly("curse.maven:cofh-core-69162:2388751") {transitive = false}
compileOnly("curse.maven:witchery-69673:2234410") {transitive = false}

runtimeOnly("com.github.GTNewHorizons:GTNHLib:0.7.7:dev")
runtimeOnly("com.github.GTNewHorizons:GTNHLib:0.8.32:dev")
}
1 change: 0 additions & 1 deletion src/main/java/fox/spiteful/avaritia/Avaritia.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ public class Avaritia {
@SidedProxy(serverSide = "fox.spiteful.avaritia.CommonProxy", clientSide = "fox.spiteful.avaritia.ClientProxy")
public static CommonProxy proxy;

public static final boolean isHodgepodgeLoaded = Loader.isModLoaded("hodgepodge");
public static final boolean isDreamCraftLoaded = Loader.isModLoaded("dreamcraft");

public static CreativeTabs tab = new CreativeTabs("avaritia") {
Expand Down
3 changes: 0 additions & 3 deletions src/main/java/fox/spiteful/avaritia/ClientProxy.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import fox.spiteful.avaritia.render.LudicrousRenderEvents;
import fox.spiteful.avaritia.render.RenderGapingVoid;
import fox.spiteful.avaritia.render.RenderHeavenArrow;
import fox.spiteful.avaritia.render.ShaderHelper;

public class ClientProxy extends CommonProxy {

Expand Down Expand Up @@ -67,8 +66,6 @@ public void makeThingsPretty() {
LudicrousRenderEvents fancyevents = new LudicrousRenderEvents();
MinecraftForge.EVENT_BUS.register(fancyevents);
FMLCommonHandler.instance().bus().register(fancyevents);

ShaderHelper.initShaders();
}

@Override
Expand Down
33 changes: 3 additions & 30 deletions src/main/java/fox/spiteful/avaritia/render/CosmicItemRenderer.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ public class CosmicItemRenderer implements IItemRenderer {

@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
// return type != ItemRenderType.INVENTORY;
return true;
}

Expand All @@ -33,7 +32,6 @@ public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRe
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
Minecraft mc = Minecraft.getMinecraft();
this.processLightLevel(type, item, data);
// ShaderHelper.useShader(ShaderHelper.testShader, this.shaderCallback);
switch (type) {
case ENTITY: {
GL11.glPushMatrix();
Expand All @@ -44,11 +42,7 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) {

break;
}
case EQUIPPED: {
render(item, data[1] instanceof EntityPlayer ? (EntityPlayer) data[1] : null);
break;
}
case EQUIPPED_FIRST_PERSON: {
case EQUIPPED, EQUIPPED_FIRST_PERSON: {
render(item, data[1] instanceof EntityPlayer ? (EntityPlayer) data[1] : null);
break;
}
Expand Down Expand Up @@ -80,7 +74,7 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) {

IIcon cosmicicon = icri.getMaskTexture(item, null);

GL11.glColor4d(1, 1, 1, 1);
GL11.glColor4f(1, 1, 1, 1);

float minu = cosmicicon.getMinU();
float maxu = cosmicicon.getMaxU();
Expand Down Expand Up @@ -113,9 +107,6 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
default:
break;
}
// ShaderHelper.releaseShader();

// Lumberjack.log(Level.INFO, light+"");
}

public void render(ItemStack item, EntityPlayer player) {
Expand All @@ -128,22 +119,16 @@ public void render(ItemStack item, EntityPlayer player) {
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glColor4f(1F, 1F, 1F, 1F);
// ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(),
// scale);

float r, g, b;
IIcon icon;
float f, f1, f2, f3;
float scale = 1F / 16F;

// Lumberjack.log(Level.INFO, "passes: "+passes);

final Tessellator tess = Tessellator.instance;
for (int i = 0; i < passes; i++) {
icon = this.getStackIcon(item, i, player);

// Lumberjack.log(Level.INFO, "icon "+i+": "+icon);

f = icon.getMinU();
f1 = icon.getMaxU();
f2 = icon.getMinV();
Expand Down Expand Up @@ -203,18 +188,7 @@ public void processLightLevel(ItemRenderType type, ItemStack item, Object... dat
}
break;
}
case EQUIPPED: {
EntityLivingBase ent = (EntityLivingBase) (data[1]);
if (ent != null) {
CosmicRenderShenanigans.setLightFromLocation(
ent.worldObj,
MathHelper.floor_double(ent.posX),
MathHelper.floor_double(ent.posY),
MathHelper.floor_double(ent.posZ));
}
break;
}
case EQUIPPED_FIRST_PERSON: {
case EQUIPPED, EQUIPPED_FIRST_PERSON: {
EntityLivingBase ent = (EntityLivingBase) (data[1]);
if (ent != null) {
CosmicRenderShenanigans.setLightFromLocation(
Expand All @@ -231,7 +205,6 @@ public void processLightLevel(ItemRenderType type, ItemStack item, Object... dat
}
default: {
CosmicRenderShenanigans.setLightLevel(1.0f);
return;
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,102 +4,39 @@
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.world.World;

import org.lwjgl.opengl.ARBShaderObjects;
import com.gtnewhorizon.gtnhlib.client.renderer.postprocessing.shaders.UniversiumShader;
import com.gtnewhorizon.gtnhlib.client.renderer.shader.ShaderProgram;

public class CosmicRenderShenanigans {

public static final ShaderCallback shaderCallback;

public static float[] lightlevel = new float[3];
public static boolean inventoryRender = false;
public static float cosmicOpacity = 1.0f;

static {
shaderCallback = new ShaderCallback() {

@Override
public void call(int shader) {
Minecraft mc = Minecraft.getMinecraft();

float yaw = 0;
float pitch = 0;
float scale = 1.0f;

if (!inventoryRender) {
yaw = (float) ((mc.thePlayer.rotationYaw * 2 * Math.PI) / 360.0);
pitch = -(float) ((mc.thePlayer.rotationPitch * 2 * Math.PI) / 360.0);
} else {
scale = 25.0f;
}

int time2 = ARBShaderObjects.glGetUniformLocationARB(shader, "time2");
ARBShaderObjects.glUniform1fARB(time2, mc.thePlayer.ticksExisted);

int x = ARBShaderObjects.glGetUniformLocationARB(shader, "yaw");
ARBShaderObjects.glUniform1fARB(x, yaw);

int z = ARBShaderObjects.glGetUniformLocationARB(shader, "pitch");
ARBShaderObjects.glUniform1fARB(z, pitch);

int l = ARBShaderObjects.glGetUniformLocationARB(shader, "lightlevel");
ARBShaderObjects.glUniform3fARB(l, lightlevel[0], lightlevel[1], lightlevel[2]);

int lightmix = ARBShaderObjects.glGetUniformLocationARB(shader, "lightmix");
ARBShaderObjects.glUniform1fARB(lightmix, 0.2f);

int uvs = ARBShaderObjects.glGetUniformLocationARB(shader, "cosmicuvs");
ARBShaderObjects.glUniformMatrix2ARB(uvs, false, LudicrousRenderEvents.cosmicUVs);

int s = ARBShaderObjects.glGetUniformLocationARB(shader, "externalScale");
ARBShaderObjects.glUniform1fARB(s, scale);

int o = ARBShaderObjects.glGetUniformLocationARB(shader, "opacity");
ARBShaderObjects.glUniform1fARB(o, cosmicOpacity);
}
};
}

public static void useShader() {
ShaderHelper.useShader(ShaderHelper.cosmicShader, shaderCallback);
final UniversiumShader shader = UniversiumShader.getInstance();
if (inventoryRender) {
shader.setRenderInInventory();
}
if (cosmicOpacity != 1.0f) {
shader.setCosmicOpacity(cosmicOpacity);
}
shader.use();
}

public static void releaseShader() {
ShaderHelper.releaseShader();
ShaderProgram.unbind();
}

public static void setLightFromLocation(World world, int x, int y, int z) {
if (world == null) {
setLightLevel(1.0f);
return;
}

int coord = world.getLightBrightnessForSkyBlocks(x, y, z, 0);

int[] map = Minecraft.getMinecraft().entityRenderer.lightmapColors;
if (map == null) {
setLightLevel(1.0f);
return;
}

int mx = (coord % 65536) / 16;
int my = (coord / 65536) / 16;

int lightcolour = map[Math.max(0, Math.min(map.length - 1, my * 16 + mx))];

setLightLevel(
((lightcolour >> 16) & 0xFF) / 256.0f,
((lightcolour >> 8) & 0xFF) / 256.0f,
((lightcolour) & 0xFF) / 256.0f);
UniversiumShader.getInstance().setLightFromLocation(world, x, y, z);
}

public static void setLightLevel(float level) {
setLightLevel(level, level, level);
UniversiumShader.getInstance().setLightLevel(level);
}

public static void setLightLevel(float r, float g, float b) {
lightlevel[0] = Math.max(0.0f, Math.min(1.0f, r));
lightlevel[1] = Math.max(0.0f, Math.min(1.0f, g));
lightlevel[2] = Math.max(0.0f, Math.min(1.0f, b));
UniversiumShader.getInstance().setLightLevel(r, g, b);
}

public static void bindItemTexture() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;

import com.gtnewhorizon.gtnhlib.client.renderer.postprocessing.shaders.UniversiumShader;

import fox.spiteful.avaritia.items.ItemFracturedOre;
import fox.spiteful.avaritia.items.ItemFracturedOre.NameStack;

Expand Down Expand Up @@ -265,7 +267,7 @@ public void render(ItemStack item) {

GL11.glDisable(GL11.GL_BLEND);

if (!CosmicRenderShenanigans.inventoryRender) {
if (!UniversiumShader.isRenderingInInventory()) {
mc.entityRenderer.enableLightmap(0.0);
GL11.glEnable(GL11.GL_LIGHTING);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,46 +1,19 @@
package fox.spiteful.avaritia.render;

import java.nio.FloatBuffer;

import net.minecraft.util.IIcon;
import net.minecraftforge.client.event.GuiScreenEvent;
import net.minecraftforge.client.event.TextureStitchEvent;

import org.lwjgl.BufferUtils;
import org.lwjgl.opengl.GL11;

import com.mitchej123.hodgepodge.textures.IPatchedTextureAtlasSprite;

import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent.Phase;
import cpw.mods.fml.common.gameevent.TickEvent.RenderTickEvent;
import fox.spiteful.avaritia.Avaritia;

public class LudicrousRenderEvents {

private static final int cosmicCount = 10;
public static final String[] cosmicTextures = new String[cosmicCount];

static {
for (int i = 0; i < cosmicCount; i++) {
cosmicTextures[i] = "avaritia:cosmic" + i;
}
}

public static final FloatBuffer cosmicUVs = BufferUtils.createFloatBuffer(4 * cosmicTextures.length);
public static final IIcon[] cosmicIcons = new IIcon[cosmicTextures.length];

@SubscribeEvent
public void letsMakeAQuilt(TextureStitchEvent.Pre event) {
if (event.map.getTextureType() != 1) {
return;
}

for (int i = 0; i < cosmicTextures.length; i++) {
IIcon icon = event.map.registerIcon(cosmicTextures[i]);
cosmicIcons[i] = icon;
}

ModelArmorInfinity.overlayIcon = event.map.registerIcon("avaritia:infinity_armor_mask");
ModelArmorInfinity.invulnOverlayIcon = event.map.registerIcon("avaritia:infinity_armor_mask2");
ModelArmorInfinity.wingOverlayIcon = event.map.registerIcon("avaritia:infinity_armor_wingmask");
Expand All @@ -59,31 +32,4 @@ public void weMadeAQuilt(TextureStitchEvent.Post event) {
ModelArmorInfinity.armorModel.rebuildOverlay();
ModelArmorInfinity.legModel.rebuildOverlay();
}

@SubscribeEvent
public void pushTheCosmicFancinessToTheLimit(RenderTickEvent event) {
if (event.phase == Phase.START) {
for (IIcon icon : cosmicIcons) {
if (Avaritia.isHodgepodgeLoaded
&& icon instanceof IPatchedTextureAtlasSprite patchedTextureAtlasSprite) {
patchedTextureAtlasSprite.markNeedsAnimationUpdate();
}
cosmicUVs.put(icon.getMinU());
cosmicUVs.put(icon.getMinV());
cosmicUVs.put(icon.getMaxU());
cosmicUVs.put(icon.getMaxV());
}
cosmicUVs.flip();
}
}

@SubscribeEvent
public void makeCosmicStuffLessDumbInGUIs(GuiScreenEvent.DrawScreenEvent.Pre event) {
CosmicRenderShenanigans.inventoryRender = true;
}

@SubscribeEvent
public void finishMakingCosmicStuffLessDumbInGUIs(GuiScreenEvent.DrawScreenEvent.Post event) {
CosmicRenderShenanigans.inventoryRender = false;
}
}
Loading