Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
yor42 committed Dec 7, 2024
2 parents eaa5430 + a1d9702 commit 1284b8b
Show file tree
Hide file tree
Showing 15 changed files with 98 additions and 98 deletions.
19 changes: 9 additions & 10 deletions src/main/java/cn/academy/client/render/entity/RenderMarker.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
*
*/
@RegEntityRender(EntityMarker.class)
public class RenderMarker extends Render {
public class RenderMarker extends Render<EntityMarker> {

static final Tessellator t = Tessellator.instance;
final double[][] mulArray = { { 0, 0, 0 }, { 1, 0, 0 }, { 1, 0, 1 }, { 0, 0, 1 }, { 0, 1, 0 }, { 1, 1, 0 },
Expand All @@ -31,29 +31,28 @@ public RenderMarker(RenderManager renderManager) {
}

@Override
public void doRender(Entity ent, double x, double y, double z, float a, float b) {
EntityMarker marker = (EntityMarker) ent;
if (!marker.firstUpdated())
public void doRender(EntityMarker ent, double x, double y, double z, float a, float b) {
if (!ent.firstUpdated())
return;

Entity targ = marker.target;
Entity targ = ent.target;
float width, height;
if (targ != null) {
width = targ.width;
height = targ.height;
} else {
width = marker.width;
height = marker.height;
width = ent.width;
height = ent.height;
}

ShaderNotex.instance().useProgram();
GL11.glDisable(GL11.GL_TEXTURE_2D);
if (marker.ignoreDepth)
if (ent.ignoreDepth)
GL11.glDisable(GL11.GL_DEPTH_TEST);
GL11.glPushMatrix();

GL11.glTranslated(x - width / 2, y + 0.05 * Math.sin(GameTimer.getAbsTime() / 400.0), z - width / 2);
Colors.bindToGL(marker.color);
Colors.bindToGL(ent.color);
renderMark(width, height);

GL11.glPopMatrix();
Expand Down Expand Up @@ -90,7 +89,7 @@ protected void renderMark(float width, float height) {
}

@Override
protected ResourceLocation getEntityTexture(Entity var1) {
protected ResourceLocation getEntityTexture(EntityMarker var1) {
return null;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@
* @author KSkun
*/
@RegEntityRender(EntityCoinThrowing.class)
public class RendererCoinThrowing extends Render {
public class RendererCoinThrowing extends Render<EntityCoinThrowing> {

public RendererCoinThrowing(RenderManager manager) {
super(manager);
}

@Override
public void doRender(Entity var1, double x, double y, double z,
public void doRender(EntityCoinThrowing var1, double x, double y, double z,
float var8, float var9) {
EntityCoinThrowing etc = (EntityCoinThrowing) var1;
EntityCoinThrowing etc = var1;
EntityPlayer player = etc.player;
boolean fp = player == Minecraft.getMinecraft().player
&& Minecraft.getMinecraft().gameSettings.thirdPersonView == 0;
Expand Down Expand Up @@ -64,7 +64,7 @@ public void doRender(Entity var1, double x, double y, double z,
}

@Override
protected ResourceLocation getEntityTexture(Entity var1) {
protected ResourceLocation getEntityTexture(EntityCoinThrowing var1) {
return null;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,22 @@
*/
public class RendererList<T extends Entity> extends Render<T> {

List<Render> renderers = new ArrayList<>();
List<Render<T>> renderers = new ArrayList<>();

public RendererList(RenderManager rm, Render ...rs) {
public RendererList(RenderManager rm, Render<T> ...rs) {
super(rm);
renderers.addAll(Arrays.asList(rs));
}

public RendererList append(Render e) {
public RendererList<T> append(Render<T> e) {
renderers.add(e);
return this;
}

@Override
public void doRender(T ent, double x,
double y, double z, float a, float b) {
for(Render r : renderers)
for(Render<T> r : renderers)
r.doRender(ent, x, y, z, a, b);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

@SideOnly(Side.CLIENT)
@RegEntityRender(EntityMagHook.class)
public class RendererMagHook extends Render {
public class RendererMagHook extends Render<EntityMagHook> {

final ObjLegacyRender model = Resources.getModel("maghook"),
model_open = Resources.getModel("maghook_open");
Expand All @@ -27,9 +27,9 @@ public RendererMagHook(RenderManager renderManager) {
}

@Override
public void doRender(Entity ent, double x, double y, double z, float a,
public void doRender(EntityMagHook ent, double x, double y, double z, float a,
float b) {
EntityMagHook hook = (EntityMagHook) ent;
EntityMagHook hook = ent;
ObjLegacyRender realModel = model;
if (hook.isHit) {
realModel = model_open;
Expand All @@ -51,7 +51,7 @@ public void doRender(Entity ent, double x, double y, double z, float a,
}

@Override
protected ResourceLocation getEntityTexture(Entity var1) {
protected ResourceLocation getEntityTexture(EntityMagHook var1) {
return null;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package cn.academy.client.render.entity.ray;

import cn.academy.entity.EntityRayBase;
import cn.academy.entity.IRay;
import cn.lambdalib2.render.legacy.Tessellator;
import cn.lambdalib2.util.MathUtils;
Expand All @@ -20,7 +21,7 @@
* Renderer to draw glow texture
* @author WeAthFolD
*/
public abstract class RendererRayBaseGlow<T extends IRay> extends Render {
public abstract class RendererRayBaseGlow<T extends EntityRayBase &IRay> extends Render<T> {

{
this.shadowOpaque = 0;
Expand All @@ -31,17 +32,16 @@ public RendererRayBaseGlow(RenderManager renderManager) {
}

@Override
public void doRender(Entity entity, double x, double y, double z,
public void doRender(T entity, double x, double y, double z,
float yaw, float partialTicks) {
T ray = (T) entity;


Minecraft mc = Minecraft.getMinecraft();

glPushMatrix();

doTransform(ray);
doTransform(entity);

Vec3d position = ray.getRayPosition();
Vec3d position = entity.getRayPosition();
Vec3d relativePosition = VecUtils.subtract(position,
new Vec3d(x, y, y));
glTranslated(x, y, z);
Expand All @@ -50,11 +50,11 @@ public void doRender(Entity entity, double x, double y, double z,
//The ray viewing direction.
Vec3d dir = VecUtils.toDirVector(entity, partialTicks);
//Pick two far enough start and end point.
Vec3d start = VecUtils.multiply(dir, ray.getStartFix()),
end = VecUtils.add(start, VecUtils.multiply(dir, ray.getLength() - ray.getStartFix()));
Vec3d start = VecUtils.multiply(dir, entity.getStartFix()),
end = VecUtils.add(start, VecUtils.multiply(dir, entity.getLength() - entity.getStartFix()));

Vec3d upDir;
boolean firstPerson = ViewOptimize.isFirstPerson(ray);
boolean firstPerson = ViewOptimize.isFirstPerson(entity);
if(firstPerson) {
upDir = new Vec3d(0, 1, -0.5);
} else {
Expand Down Expand Up @@ -85,20 +85,20 @@ public void doRender(Entity entity, double x, double y, double z,
// GL11.glEnable(GL11.GL_TEXTURE_2D);
//DEBUG END

if(ray.needsViewOptimize()) {
if(entity.needsViewOptimize()) {
yaw = MathUtils.lerpDegree(entity.prevRotationYaw, entity.rotationYaw, partialTicks);
Vec3d vec = ViewOptimize.getFixVector(ray);
Vec3d vec = ViewOptimize.getFixVector(entity);
vec = vec.rotateYaw((float) ((270 - yaw) / 180 * Math.PI));
start = VecUtils.add(start, vec);

// Don't fix end to get accurate pointing direction
// end = VecUtils.add(end, vec);
}

doTransform(ray);
doTransform(entity);

//Now delegate to the render itself~
draw(ray, start, end, upDir);
draw(entity, start, end, upDir);

glPopMatrix();
}
Expand Down Expand Up @@ -136,7 +136,7 @@ protected void drawBoard(Vec3d start, Vec3d end, Vec3d upDir, double width) {
protected abstract void draw(T ray, Vec3d start, Vec3d end, Vec3d sideDir);

@Override
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
protected ResourceLocation getEntityTexture(T p_110775_1_) {
return null;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package cn.academy.client.render.entity.ray;

import cn.academy.client.render.entity.RendererList;
import cn.academy.entity.EntityRayBase;
import cn.academy.entity.IRay;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.Entity;
Expand All @@ -10,33 +11,33 @@
* @author WeAthFolD
*
*/
public class RendererRayComposite extends RendererList {
public class RendererRayComposite<T extends EntityRayBase&IRay> extends RendererList<T> {

public RendererRayGlow glow;
public RendererRayCylinder cylinderIn, cylinderOut;
public RendererRayGlow<T> glow;
public RendererRayCylinder<T> cylinderIn, cylinderOut;

public RendererRayComposite(RenderManager manager, String name) {
super(manager);
append(glow = RendererRayGlow.createFromName(manager, name));
append(cylinderIn = new RendererRayCylinder(manager, 0.05f));
append(cylinderOut = new RendererRayCylinder(manager, 0.08f));
append(cylinderIn = new RendererRayCylinder<>(manager, 0.05f));
append(cylinderOut = new RendererRayCylinder<>(manager, 0.08f));
cylinderIn.headFix = 0.98;
}

@Override
public void doRender(Entity ent, double x,
public void doRender(T ent, double x,
double y, double z, float a, float b) {
((IRay)ent).onRenderTick();
super.doRender(ent, x, y, z, a, b);
}

public void plainDoRender(Entity ent, double x,
public void plainDoRender(T ent, double x,
double y, double z, float a, float b) {
super.doRender(ent, x, y, z, a, b);
}

@Override
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
protected ResourceLocation getEntityTexture(T p_110775_1_) {
return null;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package cn.academy.client.render.entity.ray;

import cn.academy.entity.EntityRayBase;
import cn.academy.entity.IRay;
import cn.lambdalib2.render.legacy.GLSLMesh;
import cn.lambdalib2.render.legacy.ShaderNotex;
Expand All @@ -17,7 +18,7 @@
* Renderer to draw the concrete cylinder
* @author WeAthFolD
*/
public class RendererRayCylinder<T extends IRay> extends RendererRayBaseSimple {
public class RendererRayCylinder<T extends EntityRayBase&IRay> extends RendererRayBaseSimple<T> {

public double width = 0.08;

Expand Down Expand Up @@ -87,8 +88,8 @@ public class RendererRayCylinder<T extends IRay> extends RendererRayBaseSimple {
head.setQuads(faces.toArray(new Integer[]{}));
}
{ //Build the cylinder.
List<double[]> vertices = new ArrayList();
List<Integer> faces = new ArrayList();
List<double[]> vertices = new ArrayList<>();
List<Integer> faces = new ArrayList<>();

for(int j = 0; j < DIV; ++j) {
double[] p1 = new double[] {
Expand Down Expand Up @@ -133,20 +134,18 @@ public RendererRayCylinder(RenderManager renderManager, double width) {
}

@Override
protected void draw(Entity entity, double len) {
protected void draw(T entity, double len) {
if(RenderUtils.isInShadowPass())
return;

GL11.glEnable(GL11.GL_BLEND);
GL11.glPushMatrix();

IRay ray = (IRay) entity;


//HACK: Store the previous alpha
int oldA = color.getAlpha();
color.setAlpha((int) (color.getAlpha() * ray.getAlpha()) );
color.setAlpha((int) (color.getAlpha() * ((IRay) entity).getAlpha()) );

double width = this.width * ray.getWidth();
double width = this.width * ((IRay) entity).getWidth();

Colors.bindToGL(color);
GL11.glDisable(GL11.GL_LIGHTING);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package cn.academy.client.render.entity.ray;

import cn.academy.Resources;
import cn.academy.entity.EntityRayBase;
import cn.academy.entity.IRay;
import cn.lambdalib2.render.legacy.ShaderSimple;
import cn.lambdalib2.render.legacy.Tessellator;
import cn.lambdalib2.util.Colors;
import cn.lambdalib2.util.RenderUtils;
import cn.lambdalib2.util.VecUtils;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.Vec3d;
import org.lwjgl.opengl.GL20;
Expand All @@ -18,7 +20,7 @@
/**
* @author WeAthFolD
*/
public class RendererRayGlow<T extends IRay> extends RendererRayBaseGlow<T> {
public class RendererRayGlow<T extends EntityRayBase &IRay> extends RendererRayBaseGlow<T> {

public static final double DEFAULT_WIDTH = 0.9;

Expand Down Expand Up @@ -86,10 +88,10 @@ protected void draw(T ray, Vec3d start, Vec3d end, Vec3d dir) {
glAlphaFunc(GL_GEQUAL, 0.1f);
}

public static RendererRayGlow createFromName(RenderManager m, String name) {
public static <I extends EntityRayBase&IRay> RendererRayGlow<I> createFromName(RenderManager m, String name) {
try {
ResourceLocation[] mats = Resources.getRayTextures(name);
return new RendererRayGlow(m, mats[0], mats[1], mats[2]);
return new RendererRayGlow<>(m, mats[0], mats[1], mats[2]);
} catch(Exception e) {
e.printStackTrace();
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@
* See: https://mcforge.readthedocs.io/en/latest/rendering/teisr/
*/
public class BakedModelForTEISR implements IBakedModel {
private ResourceLocation _location;
private Matrix4f[] _transformMapping = new Matrix4f[TransformType.values().length];
private IBakedModel[] _modelMapping = new IBakedModel[TransformType.values().length];
private final ResourceLocation _location;
private final Matrix4f[] _transformMapping = new Matrix4f[TransformType.values().length];
private final IBakedModel[] _modelMapping = new IBakedModel[TransformType.values().length];

private Matrix4f _identityMatrix = new Matrix4f();
private final Matrix4f _identityMatrix = new Matrix4f();

public Runnable fiddleRuntime;

Expand Down
Loading

0 comments on commit 1284b8b

Please sign in to comment.