Skip to content

Commit

Permalink
Add Collision Only object rendering (Invis walls)
Browse files Browse the repository at this point in the history
Fix #16
Also heavily works towards a possible implementation for #58
  • Loading branch information
SuperHackio committed Sep 3, 2024
1 parent 25d4e43 commit b94b5f0
Show file tree
Hide file tree
Showing 6 changed files with 688 additions and 1 deletion.
12 changes: 12 additions & 0 deletions data/specialrenderers.json
Original file line number Diff line number Diff line change
Expand Up @@ -764,6 +764,18 @@
]
}
]
},
{
"ClassName": "InvisiblePolygonObj",
"RendererType": "CollisionOnly"
},
{
"ClassName": "InvisiblePolygonObjGCapture",
"RendererType": "CollisionOnly"
},
{
"ClassName": "TransparentWall",
"RendererType": "CollisionOnly"
}
]
}
6 changes: 6 additions & 0 deletions src/whitehole/db/SpecialRenderers.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import whitehole.Whitehole;
import whitehole.rendering.BmdRenderer;
import whitehole.rendering.GLRenderer;
import whitehole.rendering.KclRenderer;
import static whitehole.rendering.RendererFactory.createDummyCubeRenderer;
import whitehole.rendering.special.*;
import whitehole.smg.object.AbstractObj;
Expand Down Expand Up @@ -52,6 +53,8 @@ public String tryGetAdditiveCacheKey(String objModelName, AbstractObj obj)
return ShapeModelRenderer.getAdditiveCacheKey(obj, renderinfo.rendererParams);
case "ModelByProperty":
return ModelByPropertyRenderer.getAdditiveCacheKey(obj, objModelName, renderinfo.rendererParams);
case "CollisionOnly":
return KclRenderer.getAdditiveCacheKey(obj, renderinfo.rendererParams);

case "PowerStar":
return PowerStarRenderer.getAdditiveCacheKey(obj, (Integer)renderinfo.getRenderParamByName("DefaultFrame"));
Expand Down Expand Up @@ -85,6 +88,9 @@ public GLRenderer tryGetSpecialRenderer(GLRenderer.RenderInfo info, String objMo
case "ModelByProperty":
result = new ModelByPropertyRenderer(info, objModelName, obj, renderinfo.rendererParams);
break;
case "CollisionOnly":
result = new KclRenderer(info, objModelName);
break;

case "PowerStar":
result = new PowerStarRenderer(info, objModelName, obj,
Expand Down
Loading

0 comments on commit b94b5f0

Please sign in to comment.