Java 类net.minecraftforge.client.model.animation.Animation 实例源码
项目:Hard-Science
文件:ClientProxy.java
private static void refreshCamera()
{
Entity entity = Minecraft.getMinecraft().getRenderViewEntity();
if(entity == null) return;
float partialTicks = Animation.getPartialTickTime();
ICamera newCam = new Frustum();
double d0 = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * partialTicks;
double d1 = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * partialTicks;
double d2 = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * partialTicks;
newCam.setPosition(d0, d1, d2);
cameraX = d0;
cameraY = d1;
cameraZ = d2;
camera = newCam;
}
项目:CustomWorldGen
文件:ForgeHooksClient.java
public static RenderGameOverlayEvent.BossInfo bossBarRenderPre(ScaledResolution res, BossInfoLerping bossInfo, int x, int y, int increment)
{
RenderGameOverlayEvent.BossInfo evt = new RenderGameOverlayEvent.BossInfo(new RenderGameOverlayEvent(Animation.getPartialTickTime(), res),
BOSSINFO, bossInfo, x, y, increment);
MinecraftForge.EVENT_BUS.post(evt);
return evt;
}
项目:OpenBlocks
文件:TileEntityPaintMixerRenderer.java
@Override
public void renderTileEntityFast(TileEntityPaintMixer te, double x, double y, double z, float partialTick, int breakStage, float alpha, BufferBuilder renderer) {
if (te.hasPaint()) {
if (!te.hasCapability(CapabilityAnimation.ANIMATION_CAPABILITY, null)) { return; }
if (blockRenderer == null) blockRenderer = Minecraft.getMinecraft().getBlockRendererDispatcher();
final BlockPos pos = te.getPos();
final IBlockAccess world = MinecraftForgeClient.getRegionRenderCache(te.getWorld(), pos);
IBlockState state = world.getBlockState(pos);
if (state.getPropertyKeys().contains(Properties.StaticProperty)) {
state = state.withProperty(Properties.StaticProperty, false);
}
if (state instanceof IExtendedBlockState) {
state = state.getBlock().getExtendedState(state, world, pos); // difference between this and AnimationTESR
IExtendedBlockState exState = (IExtendedBlockState)state;
if (exState.getUnlistedNames().contains(Properties.AnimationProperty)) {
float time = Animation.getWorldTime(getWorld(), partialTick);
Pair<IModelState, Iterable<Event>> pair = te.getCapability(CapabilityAnimation.ANIMATION_CAPABILITY, null).apply(time);
IBakedModel model = blockRenderer.getBlockModelShapes().getModelForState(exState.getClean());
exState = exState.withProperty(Properties.AnimationProperty, pair.getLeft());
renderer.setTranslation(x - pos.getX(), y - pos.getY(), z - pos.getZ());
blockRenderer.getBlockModelRenderer().renderModel(world, model, exState, pos, renderer, false);
}
}
}
}
项目:CustomWorldGen
文件:FMLCommonHandler.java
public void onRenderTickStart(float timer)
{
Animation.setClientPartialTickTime(timer);
bus().post(new TickEvent.RenderTickEvent(Phase.START, timer));
}
项目:CustomWorldGen
文件:ForgeHooksClient.java
public static void bossBarRenderPost(ScaledResolution res)
{
MinecraftForge.EVENT_BUS.post(new RenderGameOverlayEvent.Post(new RenderGameOverlayEvent(Animation.getPartialTickTime(), res), BOSSINFO));
}
项目:OpenBlocks
文件:TileEntityProjectorRenderer.java
private void renderProjector(TileEntityProjector projector, float partialTickTime, double x, double y, double z) {
if (bakedSpinnerModel == null) return;
if (!projector.hasCapability(CapabilityAnimation.ANIMATION_CAPABILITY, null)) return;
if (blockModelRenderer == null) {
blockModelRenderer = Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelRenderer();
}
final BlockPos pos = projector.getPos();
final IBlockAccess world = MinecraftForgeClient.getRegionRenderCache(projector.getWorld(), pos);
final IBlockState state = world.getBlockState(pos);
if (state instanceof IExtendedBlockState) {
IExtendedBlockState exState = (IExtendedBlockState)state;
if (exState.getUnlistedNames().contains(Properties.AnimationProperty)) {
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder vb = tessellator.getBuffer();
bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
RenderHelper.disableStandardItemLighting();
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GlStateManager.enableBlend();
GlStateManager.disableCull();
if (Minecraft.isAmbientOcclusionEnabled()) {
GlStateManager.shadeModel(GL11.GL_SMOOTH);
} else {
GlStateManager.shadeModel(GL11.GL_FLAT);
}
vb.begin(GL11.GL_QUADS, DefaultVertexFormats.BLOCK);
float time = Animation.getWorldTime(getWorld(), partialTickTime);
final Pair<IModelState, Iterable<Event>> pair = projector.getCapability(CapabilityAnimation.ANIMATION_CAPABILITY, null).apply(time);
exState = exState.withProperty(Properties.AnimationProperty, pair.getLeft());
vb.setTranslation(x - pos.getX(), y - pos.getY(), z - pos.getZ());
blockModelRenderer.renderModel(world, bakedSpinnerModel, exState, pos, vb, false);
vb.setTranslation(0, 0, 0);
tessellator.draw();
RenderHelper.enableStandardItemLighting();
}
}
}
项目:OpenBlocks
文件:TileEntityProjector.java
private void updateLastChangeTime() {
lastChange.setValue(Animation.getWorldTime(getWorld(), Animation.getPartialTickTime()));
}