Handle clicking through transparent blocks.
This commit is contained in:
parent
91d94cc249
commit
e5e42d4f88
@ -80,6 +80,7 @@ public class Panel extends JPanel implements Runnable {
|
||||
SigRenderer.depthBuffer = new float[width*height];
|
||||
SigRenderer.depthBuffer_tri = new Triangle[width*height];
|
||||
SigRenderer.translucencyBuffer = new boolean[width*height];
|
||||
SigRenderer.depthBuffer_noTransparency = new float[width*height];
|
||||
}
|
||||
/**
|
||||
* Do your draws in here !!
|
||||
@ -101,6 +102,7 @@ public class Panel extends JPanel implements Runnable {
|
||||
SigRenderer.depthBuffer[x+y*width]=0;
|
||||
SigRenderer.depthBuffer_tri[x+y*width]=null;
|
||||
SigRenderer.translucencyBuffer[x+y*width]=false;
|
||||
SigRenderer.depthBuffer_noTransparency[x+y*width]=0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -223,6 +225,7 @@ public class Panel extends JPanel implements Runnable {
|
||||
} else {
|
||||
tt.unmodifiedTri.nextRenderTime2=System.currentTimeMillis()+200;
|
||||
}
|
||||
SigRenderer.temp_request=SigRenderer.request;
|
||||
DrawUtils.TexturedTriangle(p,
|
||||
(int)tt.A.x,(int)tt.A.y,tt.T.u,tt.T.v,tt.T.w,
|
||||
(int)tt.B.x,(int)tt.B.y,tt.U.u,tt.U.v,tt.U.w,
|
||||
|
@ -51,6 +51,7 @@ public class SigRenderer implements KeyListener,MouseListener,MouseMotionListene
|
||||
|
||||
public static float[] depthBuffer;
|
||||
public static Triangle[] depthBuffer_tri;
|
||||
public static float[] depthBuffer_noTransparency;
|
||||
public static boolean[] translucencyBuffer;
|
||||
|
||||
public static HashMap<TextureType,Texture> blockTextures = new HashMap<TextureType,Texture>();
|
||||
@ -59,6 +60,7 @@ public class SigRenderer implements KeyListener,MouseListener,MouseMotionListene
|
||||
aHeld=false,sHeld=false,dHeld=false,wHeld=false;
|
||||
|
||||
public static MouseEvent request;
|
||||
public static MouseEvent temp_request;
|
||||
public static MouseHandler answer;
|
||||
public static MouseHandler tempAnswer = null;
|
||||
|
||||
|
@ -92,10 +92,15 @@ public class DrawUtils {
|
||||
tex_u=(1.0f-t)*tex_su+t*tex_eu;
|
||||
tex_v=(1.0f-t)*tex_sv+t*tex_ev;
|
||||
tex_w=(1.0f-t)*tex_sw+t*tex_ew;
|
||||
if (tex_w>SigRenderer.depthBuffer[i*SigRenderer.SCREEN_WIDTH+j]) {
|
||||
if (SigRenderer.request!=null&&j==SigRenderer.request.getX()&&i==SigRenderer.request.getY()) {
|
||||
SigRenderer.tempAnswer=new MouseHandler(SigRenderer.request,ref.b);
|
||||
if (SigRenderer.temp_request!=null) {
|
||||
if (tex_w>SigRenderer.depthBuffer_noTransparency[i*SigRenderer.SCREEN_WIDTH+j]) {
|
||||
SigRenderer.depthBuffer_noTransparency[i*SigRenderer.SCREEN_WIDTH+j]=tex_w;
|
||||
if (j==SigRenderer.temp_request.getX()&&i==SigRenderer.temp_request.getY()) {
|
||||
SigRenderer.tempAnswer=new MouseHandler(SigRenderer.temp_request,ref.b);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (tex_w>SigRenderer.depthBuffer[i*SigRenderer.SCREEN_WIDTH+j]) {
|
||||
int col = texture.getColor(tex_u/tex_w,tex_v/tex_w,colorMult/255f);
|
||||
if (((col&0xFF000000)>>>24)!=0) {
|
||||
if (((col&0xFF000000)>>>24)!=255) {
|
||||
@ -163,10 +168,15 @@ public class DrawUtils {
|
||||
tex_u=(1.0f-t)*tex_su+t*tex_eu;
|
||||
tex_v=(1.0f-t)*tex_sv+t*tex_ev;
|
||||
tex_w=(1.0f-t)*tex_sw+t*tex_ew;
|
||||
if (tex_w>SigRenderer.depthBuffer[i*SigRenderer.SCREEN_WIDTH+j]) {
|
||||
if (SigRenderer.request!=null&&j==SigRenderer.request.getX()&&i==SigRenderer.request.getY()) {
|
||||
SigRenderer.tempAnswer=new MouseHandler(SigRenderer.request,ref.b);
|
||||
if (SigRenderer.temp_request!=null) {
|
||||
if (tex_w>SigRenderer.depthBuffer_noTransparency[i*SigRenderer.SCREEN_WIDTH+j]) {
|
||||
SigRenderer.depthBuffer_noTransparency[i*SigRenderer.SCREEN_WIDTH+j]=tex_w;
|
||||
if (j==SigRenderer.temp_request.getX()&&i==SigRenderer.temp_request.getY()) {
|
||||
SigRenderer.tempAnswer=new MouseHandler(SigRenderer.temp_request,ref.b);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (tex_w>SigRenderer.depthBuffer[i*SigRenderer.SCREEN_WIDTH+j]) {
|
||||
int col = texture.getColor(tex_u/tex_w,tex_v/tex_w,colorMult/255f);
|
||||
if (((col&0xFF000000)>>>24)!=0) {
|
||||
if (((col&0xFF000000)>>>24)!=255) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user