Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[Solved] Custom Entity Rendering


Nxs0000
 Share

Recommended Posts

Hey!

 

I just created a custom entity (extending EntityBase) with a custom model. My idea was to use them as block display, so they look like small floating blocks:

Here is an exemple of how it looks like initially:

1479755681-2016-11-21-19-55-37.png

1479755693-2016-11-21-19-55-45.png

And here is how it gets when you "put" a block in it:

1479755693-2016-11-21-19-56-09.png

 

So this looks pretty cool to me, but when there are multiple of them, the render is messing up:

1479755698-2016-11-21-19-56-14.png

It only happens with "empty" ones on "containing" ones. It render correctly when those entity are of the same type.

At first I thought it could be an age-based rendering, so the older entity would render first and the younger last, which could have explained why the renders are overlapping. But no matter the way I'm facing, where the older entity is, it always occure that way.

 

The way i change the rendering model may be the cause: In the "doRender" method in the EntityRender class, I choose a model depending on what the entity contains then i call the Model.render().

 

Plus, the entity that contains a block also act wierd with real blocks:

1479755706-2016-11-21-19-56-21.png

 

Does someone know what the issue is/are?

Link to comment
Share on other sites

Thanks for the reply

Here it is:

 

public class RenderFloatingBlock extends Render<EntityFloatingBlock>
{
    private static final ResourceLocation textures = new ResourceLocation(Main.MODID,"textures/entity/floatingblock.png");
    private ResourceLocation t = new ResourceLocation("");
    private ModelBase modelEmpty = new ModelFloatingEmpty();
    private ModelBase modelFull = new ModelFloatingFull();

    public RenderFloatingBlock(RenderManager rendermanager, ModelBase model, float shadowsize)
    {
        super(rendermanager);
    }

    @Override
    protected ResourceLocation getEntityTexture(EntityFloatingBlock entity)
    {
        return textures;
    }

    public void doRender(EntityFloatingBlock entity, double x, double y, double z, float entityYaw, float partialTicks)
    {
        GlStateManager.pushMatrix();
        GlStateManager.translate((float)x, (float)y-1.15, (float)z);
        
        
        if(entity.inv.getItem() == Item.getItemFromBlock(Blocks.glass)) // glass is a neutral block that represent the emptiness (have had the trouble with NullPointer when ItemStack was null)
        {
            // enable semi-transparent (not the cause of the problem: same result without it)
            GL11.glEnable(GL11.GL_BLEND);
            GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
            GL11.glColor4f(1.5f, 1.5f, 1.5f, 0.8f);

            this.bindTexture(textures);
            this.modelEmpty.render(entity, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F*1.4F);

            // disable transparent
            GL11.glDisable(GL11.GL_BLEND);
        }
        else
        {
            // Getting the texture from the contaigned block (almost works correctly >.<, cause... mutli-textured blocks ^^)
            String a = Block.getBlockFromItem(entity.getInv().getItem()).getRegistryName();
            String segments[] = a.split(":");
            t = new ResourceLocation(segments[0], "textures/blocks/"+segments[1]+".png");

            this.bindTexture(t);

            GlStateManager.translate((float)x, (float)y-1.35, (float)z);
            this.modelFull.render(entity, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F*1.4F);
        }
        GlStateManager.popMatrix();
        super.doRender(entity, x, y, z, entityYaw, partialTicks);
    }
}

 

Come to think of it. The issue may come from the the super.doRender() call.

I am probably doing something i should not ever do, but I'm new to rendering and have still to learn. Just tell me :/

Link to comment
Share on other sites

Get rid of that ridiculously weird texture getting stuff, and use

Minecraft#getRenderItem().renderModel(ItemStack item, ItemCameraTransforms.TransformType type)

instead. Pass

ItemCameraTransforms.TransformType.NONE

for the type and the item in your entity's inventory for the item stack.

Link to comment
Share on other sites

Ok, i found the issue (even if i don't really get why it makes the block disapearing in the floor)

Apparently, the translate method was creating the whole issue.

Here is my new doRender method:

public void doRender(EntityFloatingBlock entity, double x, double y, double z, float entityYaw, float partialTicks)
    {
        GlStateManager.pushMatrix();
        GlStateManager.translate((float)x, (float)y+0.25, (float)z);// works fine
        
        
        if(entity.inv.getItem() == Item.getItemFromBlock(Blocks.glass)
        {
            GL11.glEnable(GL11.GL_BLEND);
            GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
            GL11.glColor4f(1.5f, 1.5f, 1.5f, 0.8f);
            GlStateManager.scale(2.5, 2.5, 2.5);
            GlStateManager.translate((float)x, (float)y-2.8, (float)z);
            this.bindTexture(textures);
            this.modelEmpty.render(entity, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F*1.4F);
            GL11.glDisable(GL11.GL_BLEND);
        }
        else{
            //GlStateManager.translate((float)x, (float)y+0.05, (float)z); this one cause the overlap thing
            GlStateManager.scale(1.4, 1.4, 1.4);
            Minecraft.getMinecraft().getRenderItem().renderItem(entity.getInv(), ItemCameraTransforms.TransformType.NONE);
        }
        GlStateManager.popMatrix();
        super.doRender(entity, x, y, z, entityYaw, partialTicks);
    }

 

Thanks for your time and the help Silly511.

Have a nice day

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • client log: [20:17:55] [main/INFO]: Loading tweak class name optifine.OptiFineTweaker [20:17:55] [main/INFO]: Using primary tweak class name optifine.OptiFineTweaker [20:17:55] [main/INFO]: Loading tweak class name org.tlauncher.tweaker.Tweaker [20:17:55] [main/INFO]: Calling tweak class optifine.OptiFineTweaker [20:17:55] [main/INFO]: [OptiFine] OptiFineTweaker: acceptOptions [20:17:55] [main/INFO]: [OptiFine] OptiFineTweaker: injectIntoClassLoader [20:17:55] [main/INFO]: [OptiFine] OptiFine ClassTransformer [20:17:55] [main/INFO]: [OptiFine] OptiFine ZIP file: C:\Users\Lenovo\AppData\Roaming\.minecraft\libraries\optifine\OptiFine\1.17.1_HD_U_H2_pre1\OptiFine-1.17.1_HD_U_H2_pre1.jar [20:17:55] [main/INFO]: Calling tweak class org.tlauncher.tweaker.Tweaker [20:17:57] [main/INFO]: [OptiFine] OptiFineTweaker: getLaunchArguments [20:17:57] [main/INFO]: [OptiFine] OptiFineTweaker: getLaunchTarget [20:17:57] [main/INFO]: Launching wrapped minecraft {net.minecraft.client.main.Main} [20:18:10] [main/INFO]: [OptiFine] (Reflector) Field not found: World.tileEntitiesToBeRemoved [20:18:11] [main/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.eventbus.api.Event$Result [20:18:11] [main/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.extensions.IForgeEntity [20:18:11] [main/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fmllegacy.CrashReportExtender [20:18:13] [main/INFO]: [OptiFine] (Reflector) Method not present: afv.createOptional [20:18:24] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.ForgeHooksClient [20:18:26] [Render thread/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD' [20:18:26] [Render thread/INFO]: Setting user: Gelli [20:18:27] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.settings.KeyConflictContext [20:18:28] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: dvm.getKeyModifier [20:18:28] [Render thread/INFO]: Backend library: LWJGL version 3.2.2 build 10 [20:18:28] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraftforge.fml.loading.progress.EarlyProgressVisualization.handOffWindow [20:18:55] [Render thread/INFO]: [OptiFine]  [20:18:55] [Render thread/INFO]: [OptiFine] OptiFine_1.17.1_HD_U_H2_pre1 [20:18:55] [Render thread/INFO]: [OptiFine] Build: 20211104-233441 [20:18:55] [Render thread/INFO]: [OptiFine] OS: Windows 10 (amd64) version 10.0 [20:18:55] [Render thread/INFO]: [OptiFine] Java: 16.0.1, Microsoft [20:18:55] [Render thread/INFO]: [OptiFine] VM: OpenJDK 64-Bit Server VM (mixed mode), Microsoft [20:18:55] [Render thread/INFO]: [OptiFine] LWJGL: 3.3.0 Win32 WGL EGL OSMesa VisualC DLL [20:18:55] [Render thread/INFO]: [OptiFine] OpenGL: Intel(R) HD Graphics, version 3.2.0 - Build 10.18.10.4653, Intel [20:18:55] [Render thread/INFO]: [OptiFine] OpenGL Version: 3.2.0 [20:18:57] [Render thread/INFO]: [OptiFine] Maximum texture size: 8192x8192 [20:18:58] [VersionCheck/INFO]: [OptiFine] Checking for new version [20:18:59] [Render thread/INFO]: [Shaders] OpenGL Version: 3.2.0 - Build 10.18.10.4653 [20:18:59] [Render thread/INFO]: [Shaders] Vendor:  Intel [20:18:59] [Render thread/INFO]: [Shaders] Renderer: Intel(R) HD Graphics [20:18:59] [Render thread/INFO]: [Shaders] Capabilities:  2.0  2.1  3.0  3.2  -  [20:19:00] [Render thread/INFO]: [Shaders] GL_MAX_DRAW_BUFFERS: 8 [20:19:00] [Render thread/INFO]: [Shaders] GL_MAX_COLOR_ATTACHMENTS: 8 [20:19:00] [Render thread/INFO]: [Shaders] GL_MAX_TEXTURE_IMAGE_UNITS: 16 [20:19:00] [Render thread/INFO]: [Shaders] Load shaders configuration. [20:19:00] [Render thread/INFO]: [Shaders] No shaderpack loaded. [20:19:00] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.ModList [20:19:05] [VersionCheck/INFO]: [OptiFine] Version found: G9 [20:19:10] [Render thread/WARN]: [OptiFine] (Reflector) java.lang.ClassNotFoundException: sun.misc.SharedSecrets [20:19:10] [Render thread/WARN]: [OptiFine] (Reflector) java.lang.ClassNotFoundException: jdk.internal.misc.SharedSecrets [20:19:10] [Render thread/WARN]: [OptiFine] (Reflector) java.lang.ClassNotFoundException: sun.misc.VM [20:19:10] [Render thread/WARN]: [OptiFine] (Reflector) java.lang.reflect.InaccessibleObjectException: Unable to make public static long jdk.internal.misc.VM.maxDirectMemory() accessible: module java.base does not "exports jdk.internal.misc" to unnamed module @4b6d894d [20:19:11] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.ItemModelMesherForge [20:19:12] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.pipeline.ForgeBlockModelRenderer [20:19:16] [Render thread/INFO]: Narrator library for x64 successfully loaded [20:19:18] [Render thread/INFO]: Reloading ResourceManager: Default [20:19:18] [Render thread/INFO]: [OptiFine] *** Reloading textures *** [20:19:18] [Render thread/INFO]: [OptiFine] Resource packs: Default [20:19:18] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fmlclient.gui.screen.ModListScreen [20:19:19] [Worker-Main-4/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.ModelLoaderRegistry [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.gui.NotificationModUpdateScreen [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: end.canRenderInLayer [20:19:19] [Render thread/INFO]: [OptiFine] *** Reflector Forge *** [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: mods.betterfoliage.client.BetterFoliageClient [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fmllegacy.BrandingControl [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.capabilities.ICapabilityProvider [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.capabilities.CapabilityProvider [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fmlclient.ClientModLoader [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.world.ChunkDataEvent$Save [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.world.ChunkEvent$Load [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.world.ChunkEvent$Unload [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fmlclient.ClientHooks [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.GuiScreenEvent$DrawScreenEvent$Pre [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.GuiScreenEvent$DrawScreenEvent$Post [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.EntityRenderersEvent$AddLayers [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.entity.EntityLeaveWorldEvent [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.EntityViewRenderEvent$CameraSetup [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.EntityViewRenderEvent$FogColors [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.EntityViewRenderEvent$RenderFogEvent [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.entity.EntityJoinWorldEvent [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraftforge.eventbus.api.Event.isCanceled [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraftforge.eventbus.api.Event.getResult [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.eventbus.api.IEventBus [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.extensions.IForgeBlock [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: eny.getTexture [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraftforge.common.extensions.IForgeBlockState.getLightEmission [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraftforge.common.extensions.IForgeBlockState.getSoundType [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraftforge.common.extensions.IForgeBlockState.getStateAtViewpoint [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraftforge.common.extensions.IForgeBlockState.shouldDisplayFluidOverlay [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.extensions.IForgeFluid [20:19:19] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fluids.FluidAttributes [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Field not present: abd.currentlyLoading [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: atk.getTags [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.ForgeEventFactory [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: der.getTags [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.ForgeHooks [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.ForgeConfig [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.ForgeConfig$Client [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.ForgeConfigSpec [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.ForgeConfigSpec$ConfigValue [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: cmm.getWorldForge [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.extensions.IForgeItem [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.extensions.IForgeItemStack [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fmllegacy.ForgeI18n [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: dvm.setKeyConflictContext [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: dvm.setKeyModifierAndCode [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.registries.ForgeRegistryEntry [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: end.canRenderInLayer [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Constructor not present: abv, params: class abw, int, class java.lang.Object, boolean [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: abv.isForceTicks [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.extensions.IForgeBlockEntity [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: emx.getCloudRenderHandler [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: emx.getSkyRenderHandler [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: emx.getWeatherParticleRenderHandler [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: emx.getWeatherRenderHandler [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.settings.KeyModifier [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.pipeline.LightUtil [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.MinecraftForge [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.MinecraftForgeClient [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.ModContainer [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.ModLoader [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.entity.PartEntity [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.entity.PlaySoundAtEntityEvent [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RegisterShadersEvent [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderBlockOverlayEvent$OverlayType [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderGameOverlayEvent$BossInfo [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderItemInFrameEvent [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Pre [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Post [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderNameplateEvent [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraftforge.client.RenderProperties.getEffectRenderer [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraftforge.client.RenderProperties.getEffectRenderer [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.ScreenshotEvent [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fmllegacy.server.ServerLifecycleHooks [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Method not present: elz.updateSprite [20:19:20] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.world.WorldEvent$Load [20:19:20] [Render thread/INFO]: [OptiFine] *** Reflector Vanilla *** [20:19:22] [Worker-Main-5/INFO]: [OptiFine] Multitexture: false [20:19:31] [Realms Notification Availability checker #1/INFO]: Could not authorize you against Realms server: Invalid session id [20:19:34] [Worker-Main-6/INFO]: [OptiFine] Multitexture: false [20:19:43] [Worker-Main-4/INFO]: [OptiFine] Multitexture: false [20:19:43] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/00_glass_white/glass_pane_white.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/00_glass_white/glass_white.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/01_glass_orange/glass_orange.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/01_glass_orange/glass_pane_orange.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/02_glass_magenta/glass_magenta.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/02_glass_magenta/glass_pane_magenta.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/03_glass_light_blue/glass_light_blue.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/03_glass_light_blue/glass_pane_light_blue.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/04_glass_yellow/glass_pane_yellow.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/04_glass_yellow/glass_yellow.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/05_glass_lime/glass_lime.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/05_glass_lime/glass_pane_lime.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/06_glass_pink/glass_pane_pink.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/06_glass_pink/glass_pink.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/07_glass_gray/glass_gray.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/07_glass_gray/glass_pane_gray.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/08_glass_light_gray/glass_light_gray.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/08_glass_light_gray/glass_pane_light_gray.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/09_glass_cyan/glass_cyan.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/09_glass_cyan/glass_pane_cyan.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/10_glass_purple/glass_pane_purple.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/10_glass_purple/glass_purple.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/11_glass_blue/glass_blue.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/11_glass_blue/glass_pane_blue.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/12_glass_brown/glass_brown.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/12_glass_brown/glass_pane_brown.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/13_glass_green/glass_green.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/13_glass_green/glass_pane_green.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/14_glass_red/glass_pane_red.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/14_glass_red/glass_red.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/15_glass_black/glass_black.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/15_glass_black/glass_pane_black.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/20_glass/glass.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/20_glass/glass_pane.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/21_tinted_glass/tinted_glass.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/30_bookshelf/bookshelf.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/40_sandstone/sandstone.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] ConnectedTextures: optifine/ctm/default/41_red_sandstone/red_sandstone.properties [20:19:44] [Worker-Main-4/INFO]: [OptiFine] Multipass connected textures: false [20:19:44] [Worker-Main-4/INFO]: [OptiFine] BetterGrass: Parsing default configuration optifine/bettergrass.properties [20:20:16] [Worker-Main-4/INFO]: [OptiFine] Mipmap levels: 4 [20:20:19] [Worker-Main-7/INFO]: [OptiFine] Multitexture: false [20:20:20] [Worker-Main-4/INFO]: [OptiFine] Multitexture: false [20:20:21] [Worker-Main-4/INFO]: [OptiFine] Sprite size: 64 [20:20:21] [Worker-Main-4/INFO]: [OptiFine] Mipmap levels: 6 [20:20:21] [Worker-Main-4/WARN]: Unused frames in sprite minecraft:missingno: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] [20:20:21] [Worker-Main-4/INFO]: [OptiFine] Multitexture: false [20:20:22] [Worker-Main-4/INFO]: [OptiFine] Sprite size: 64 [20:20:22] [Worker-Main-4/INFO]: [OptiFine] Mipmap levels: 6 [20:20:22] [Worker-Main-4/WARN]: Unused frames in sprite minecraft:missingno: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] [20:20:22] [Worker-Main-4/INFO]: [OptiFine] Multitexture: false [20:20:22] [Worker-Main-4/INFO]: [OptiFine] Sprite size: 64 [20:20:22] [Worker-Main-4/INFO]: [OptiFine] Mipmap levels: 6 [20:20:22] [Worker-Main-4/WARN]: Unused frames in sprite minecraft:missingno: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] [20:20:22] [Worker-Main-4/INFO]: [OptiFine] Multitexture: false [20:20:22] [Worker-Main-4/INFO]: [OptiFine] Sprite size: 64 [20:20:22] [Worker-Main-4/INFO]: [OptiFine] Mipmap levels: 6 [20:20:22] [Worker-Main-4/WARN]: Unused frames in sprite minecraft:missingno: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] [20:20:22] [Worker-Main-4/INFO]: [OptiFine] Multitexture: false [20:20:22] [Worker-Main-4/INFO]: [OptiFine] Sprite size: 64 [20:20:22] [Worker-Main-4/INFO]: [OptiFine] Mipmap levels: 6 [20:20:22] [Worker-Main-4/WARN]: Unused frames in sprite minecraft:missingno: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] [20:20:22] [Worker-Main-4/INFO]: [OptiFine] Multitexture: false [20:20:23] [Worker-Main-4/INFO]: [OptiFine] Sprite size: 64 [20:20:23] [Worker-Main-4/INFO]: [OptiFine] Mipmap levels: 6 [20:20:23] [Worker-Main-4/WARN]: Unused frames in sprite minecraft:missingno: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] [20:20:30] [Render thread/INFO]: OpenAL initialized. [20:20:30] [Render thread/INFO]: Sound engine started [20:20:34] [Render thread/INFO]: Created: 1024x1024x4 minecraft:textures/atlas/blocks.png-atlas [20:20:34] [Render thread/INFO]: [OptiFine] Animated sprites: 45 [20:20:34] [Render thread/INFO]: Created: 256x128x4 minecraft:textures/atlas/signs.png-atlas [20:20:34] [Render thread/INFO]: [OptiFine] Animated sprites: 0 [20:20:34] [Render thread/INFO]: Created: 512x512x4 minecraft:textures/atlas/banner_patterns.png-atlas [20:20:34] [Render thread/INFO]: [OptiFine] Animated sprites: 0 [20:20:34] [Render thread/INFO]: Created: 512x512x4 minecraft:textures/atlas/shield_patterns.png-atlas [20:20:34] [Render thread/INFO]: [OptiFine] Animated sprites: 0 [20:20:34] [Render thread/INFO]: Created: 256x256x4 minecraft:textures/atlas/chest.png-atlas [20:20:34] [Render thread/INFO]: [OptiFine] Animated sprites: 0 [20:20:34] [Render thread/INFO]: Created: 512x256x4 minecraft:textures/atlas/beds.png-atlas [20:20:34] [Render thread/INFO]: [OptiFine] Animated sprites: 0 [20:20:34] [Render thread/INFO]: Created: 512x256x4 minecraft:textures/atlas/shulker_boxes.png-atlas [20:20:34] [Render thread/INFO]: [OptiFine] Animated sprites: 0 [20:20:45] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/particles.png-atlas [20:20:45] [Render thread/INFO]: [OptiFine] Animated sprites: 1 [20:20:45] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/paintings.png-atlas [20:20:45] [Render thread/INFO]: [OptiFine] Animated sprites: 0 [20:20:45] [Render thread/INFO]: Created: 128x128x0 minecraft:textures/atlas/mob_effects.png-atlas [20:20:45] [Render thread/INFO]: [OptiFine] Animated sprites: 0 [20:20:45] [Render thread/INFO]: [OptiFine] *** Reloading custom textures *** [20:20:49] [Render thread/WARN]: [OptiFine] Model renderer not found, model: creeper, name: armor [20:20:49] [Render thread/INFO]: [OptiFine] Disable Forge light pipeline [20:21:16] [Render thread/INFO]: Connecting to????????????????, 25565 [20:21:56] [Render thread/WARN]: Unknown custom packed identifier: minecraft:register [20:22:02] [Render thread/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD' [20:49:24] [Render thread/INFO]: Stopping! server: [21:36:02] [main/INFO]: ModLauncher running: args [--launchTarget, forgeserver, --fml.forgeVersion, 37.1.1, --fml.mcVersion, 1.17.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20210706.113038] [21:36:02] [main/INFO]: ModLauncher 9.0.7+91+master.8569cdf starting: java version 17.0.1 by Oracle Corporation [21:36:02] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.4 Source=union:/home/e357192/pliki/libraries/org/spongepowered/mixin/0.8.4/mixin-0.8.4.jar%2319! Service=ModLauncher Env=SERVER [21:36:02] [main/INFO]: Found mod file car-1.17.1-1.0.11.jar of type MOD with locator {mods folder locator at /home/e357192/pliki/mods} [21:36:03] [main/INFO]: Found mod file fmlcore-1.17.1-37.1.1.jar of type LIBRARY with locator net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@5357c287 [21:36:03] [main/INFO]: Found mod file javafmllanguage-1.17.1-37.1.1.jar of type LANGPROVIDER with locator net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@5357c287 [21:36:03] [main/INFO]: Found mod file mclanguage-1.17.1-37.1.1.jar of type LANGPROVIDER with locator net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@5357c287 [21:36:03] [main/INFO]: Found mod file server-1.17.1-20210706.113038-srg.jar of type MOD with locator net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@5357c287 [21:36:03] [main/INFO]: Found mod file forge-1.17.1-37.1.1-universal.jar of type MOD with locator net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@5357c287 [21:36:05] [main/INFO]: Successfully loaded Mixin Connector [de.maxhenkel.car.MixinConnector] [21:36:05] [main/INFO]: Launching target 'forgeserver' with arguments [] [21:36:12] [modloading-worker-0/INFO]: Forge mod loading, version 37.1.1, for MC 1.17.1 with MCP 20210706.113038 [21:36:12] [modloading-worker-0/INFO]: MinecraftForge v37.1.1 Initialized [21:36:13] [Forge Version Check/INFO]: [car] Starting version check at https://maxhenkel.de/update/car.json [21:36:14] [Forge Version Check/INFO]: [car] Found status: OUTDATED Current: 1.17.1-1.0.11 Target: 1.17.1-1.0.12 [21:36:14] [Forge Version Check/INFO]: [forge] Starting version check at https://files.minecraftforge.net/net/minecraftforge/forge/promotions_slim.json [21:36:20] [Forge Version Check/INFO]: [forge] Found status: UP_TO_DATE Current: 37.1.1 Target: null [21:36:23] [main/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD' [21:36:23] [main/WARN]: Assets URL 'union:/home/e357192/pliki/libraries/net/minecraft/server/1.17.1-20210706.113038/server-1.17.1-20210706.113038-srg.jar%2327!/assets/.mcassetsroot' uses unexpected schema [21:36:23] [main/WARN]: Assets URL 'union:/home/e357192/pliki/libraries/net/minecraft/server/1.17.1-20210706.113038/server-1.17.1-20210706.113038-srg.jar%2327!/data/.mcassetsroot' uses unexpected schema [21:36:24] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0] [21:36:24] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0] [21:36:24] [main/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498] [21:36:24] [main/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498] [21:36:24] [main/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0] [21:36:24] [main/INFO]: Reloading ResourceManager: Default, bukkit, forge-1.17.1-37.1.1-universal.jar, car-1.17.1-1.0.11.jar [21:36:26] [Worker-Main-2/INFO]: Loaded 9 recipes [21:36:27] [Worker-Main-2/INFO]: Loaded 1137 advancements [21:36:34] [main/INFO]: Injecting existing registry data into this CLIENT instance [21:36:39] [Server thread/INFO]: Starting minecraft server version 1.17.1 [21:36:39] [Server thread/INFO]: Loading properties [21:36:39] [Server thread/INFO]: Default game type: SURVIVAL [21:36:39] [Server thread/INFO]: Generating keypair [21:36:40] [Server thread/INFO]: Starting Minecraft server on 54.38.56.14:25565 [21:36:40] [Server thread/INFO]: Using epoll channel type [21:36:40] [Server thread/WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE! [21:36:40] [Server thread/WARN]: The server will make no attempt to authenticate usernames. Beware. [21:36:40] [Server thread/WARN]: While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose. [21:36:40] [Server thread/WARN]: To change this, set "online-mode" to "true" in the server.properties file. [21:36:40] [Server thread/INFO]: Preparing level "world" [21:36:40] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld [21:36:41] [Worker-Main-2/INFO]: Preparing spawn area: 0% [21:36:41] [Worker-Main-2/INFO]: Preparing spawn area: 0% [21:36:41] [Worker-Main-2/INFO]: Preparing spawn area: 0% [21:36:41] [Worker-Main-2/INFO]: Preparing spawn area: 0% [21:36:42] [Worker-Main-2/INFO]: Preparing spawn area: 0% [21:36:43] [Worker-Main-2/INFO]: Preparing spawn area: 0% [21:36:43] [Worker-Main-2/INFO]: Preparing spawn area: 0% [21:36:44] [Worker-Main-2/INFO]: Preparing spawn area: 2% [21:36:44] [Worker-Main-2/INFO]: Preparing spawn area: 7% [21:36:44] [Worker-Main-2/INFO]: Preparing spawn area: 18% [21:36:46] [Worker-Main-2/INFO]: Preparing spawn area: 26% [21:36:46] [Worker-Main-2/INFO]: Preparing spawn area: 26% [21:36:46] [Worker-Main-2/INFO]: Preparing spawn area: 36% [21:36:47] [Worker-Main-2/INFO]: Preparing spawn area: 75% [21:36:47] [Worker-Main-2/INFO]: Preparing spawn area: 86% [21:36:48] [Worker-Main-2/INFO]: Preparing spawn area: 95% [21:36:48] [Server thread/INFO]: Time elapsed: 8445 ms [21:36:48] [Server thread/INFO]: Done (8.629s)! For help, type "help" [21:36:48] [Server thread/INFO]: Starting GS4 status listener [21:36:48] [Server thread/INFO]: Thread Query Listener started [21:36:48] [Query Listener #1/INFO]: Query running on 54.38.56.14:25565 [21:36:52] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2001ms or 40 ticks behind [21:37:22] [Server thread/INFO]: Using new advancement loading for net.minecraft.server.PlayerAdvancements@58dc7d63 [21:37:22] [Server thread/INFO]: ddddddddddddd[/178.235.182.84:19231] logged in with entity id 1211 at (-248.5, 63.0, -214.5) [21:37:22] [Server thread/INFO]: ddddddddddddd joined the game [21:37:23] [Server thread/INFO]: ddddddddddddd lost connection: Disconnected [21:37:23] [Server thread/INFO]: ddddddddddddd left the game [21:38:02] [Server thread/INFO]: Using new advancement loading for net.minecraft.server.PlayerAdvancements@2ab97c21 [21:38:02] [Server thread/INFO]: ddddddddddddd[/178.235.182.84:4341] logged in with entity id 1214 at (-248.5, 63.0, -214.5) [21:38:02] [Server thread/INFO]: ddddddddddddd joined the game [21:38:03] [Server thread/INFO]: ddddddddddddd lost connection: Disconnected [21:38:03] [Server thread/INFO]: ddddddddddddd left the game [21:38:19] [Server thread/INFO]: Using new advancement loading for net.minecraft.server.PlayerAdvancements@56e6cc8d [21:38:19] [Server thread/INFO]: ddddddddddddd[/178.235.182.84:45321] logged in with entity id 1217 at (-248.5, 63.0, -214.5) [21:38:19] [Server thread/INFO]: ddddddddddddd joined the game [21:38:19] [Server thread/INFO]: ddddddddddddd lost connection: Disconnected [21:38:19] [Server thread/INFO]: ddddddddddddd left the game  
    • i re-made the player model with RenderPlayerEvent so i can modify the model, but the event is making a "double" of steve like a mirror, i dont know which steve is the real and which one is the fake but i need to remove or make invisible the one below i tried to use .Pre to make invisible the model this is how it looks without the bipedPART.showModel = false: https://imgur.com/a/fMuXsBR i tried to make the steve that is rotated down invisible but im doing the opposite(made invisible the one that is looking up or the correct one) and thats not what i want @SubscribeEvent public static void renderPre(RenderPlayerEvent.Pre event) { event.getRenderer().getEntityModel().bipedHead.showModel = false; event.getRenderer().getEntityModel().bipedBody.showModel = false; event.getRenderer().getEntityModel().bipedRightArm.showModel = false; event.getRenderer().getEntityModel().bipedLeftArm.showModel = false; event.getRenderer().getEntityModel().bipedRightLeg.showModel = false; event.getRenderer().getEntityModel().bipedLeftLeg.showModel = false; } @SubscribeEvent public static void renderPost(RenderPlayerEvent.Post event) { event.getRenderer().getEntityModel().bipedHead.showModel = true; event.getRenderer().getEntityModel().bipedBody.showModel = true; event.getRenderer().getEntityModel().bipedRightArm.showModel = true; event.getRenderer().getEntityModel().bipedLeftArm.showModel = true; event.getRenderer().getEntityModel().bipedRightLeg.showModel = true; event.getRenderer().getEntityModel().bipedLeftLeg.showModel = true; if(ModKeys.ability1Key.isKeyDown()) { PlayerEntity player = event.getPlayer(); GlStateManager.enableBlend(); PlayerModel<AbstractClientPlayerEntity> model = event.getRenderer().getEntityModel(); ModelRenderer head = model.bipedHead; ModelRenderer rightarm = model.bipedRightArm; ModelRenderer leftarm = model.bipedLeftArm; ModelRenderer body = model.bipedBody; ModelRenderer rightleg = model.bipedRightLeg; ModelRenderer leftleg = model.bipedLeftLeg; head.render(event.getMatrixStack(), event.getBuffers().getBuffer(RenderType.getEntitySolid(((AbstractClientPlayerEntity)player).getLocationSkin())), Minecraft.getInstance().getRenderManager().getPackedLight(player, 1f), OverlayTexture.NO_OVERLAY); rightarm.render(event.getMatrixStack(), event.getBuffers().getBuffer(RenderType.getEntitySolid(((AbstractClientPlayerEntity)player).getLocationSkin())), Minecraft.getInstance().getRenderManager().getPackedLight(player, 1f), OverlayTexture.NO_OVERLAY); leftarm.render(event.getMatrixStack(), event.getBuffers().getBuffer(RenderType.getEntitySolid(((AbstractClientPlayerEntity)player).getLocationSkin())), Minecraft.getInstance().getRenderManager().getPackedLight(player, 1f), OverlayTexture.NO_OVERLAY); body.render(event.getMatrixStack(), event.getBuffers().getBuffer(RenderType.getEntitySolid(((AbstractClientPlayerEntity)player).getLocationSkin())), Minecraft.getInstance().getRenderManager().getPackedLight(player, 1f), OverlayTexture.NO_OVERLAY); rightleg.render(event.getMatrixStack(), event.getBuffers().getBuffer(RenderType.getEntitySolid(((AbstractClientPlayerEntity)player).getLocationSkin())), Minecraft.getInstance().getRenderManager().getPackedLight(player, 1f), OverlayTexture.NO_OVERLAY); leftleg.render(event.getMatrixStack(), event.getBuffers().getBuffer(RenderType.getEntitySolid(((AbstractClientPlayerEntity)player).getLocationSkin())), Minecraft.getInstance().getRenderManager().getPackedLight(player, 1f), OverlayTexture.NO_OVERLAY); } }      
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.