Gl и Scoreboard

16
0
Здравствуйте. У меня возникла проблема. Я хочу после проверки скорборда, если он равен 1, то сделать рендер сущности, к примеру свинки. И вот тут возникла проблема. Буду очень признателен, если кто-то поможет! ( как я понял после .getScore("scan")) == 1)) должно стоять GL11.glEnable(GL11.GL_DEPTH_TEST); , но вообще не могу понять, как это туда вставить)
Java:
package net.mcreator.test.procedure;

import net.mcreator.test.ElementsTestMod;


import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.event.ServerChatEvent;
import net.minecraftforge.common.MinecraftForge;

import net.minecraft.world.World;
import java.util.Map;
import java.awt.Event;
import net.minecraft.client.renderer.EntityRenderer;
import net.minecraft.entity.passive.EntityPig;
import net.minecraftforge.client.event.RenderLivingEvent.Pre;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.client.event.RenderLivingEvent.Post;
import net.minecraft.entity.EntityLivingBase;
import net.minecraftforge.client.event.RenderLivingEvent;
import net.minecraft.client.renderer.entity.RenderPig;
import org.lwjgl.opengl.GL11;
import net.minecraftforge.event.entity.EntityEvent;
import net.minecraft.entity.Entity;
import java.util.Map;
import net.minecraft.server.MinecraftServer;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.scoreboard.Scoreboard;
import net.minecraft.scoreboard.ScoreObjective;
import net.minecraft.scoreboard.Score;
import net.minecraft.entity.player.EntityPlayer;

@ElementsTestMod.ModElement.Tag
public class ProcedureGgg extends ElementsTestMod.ModElement {
    public ProcedureGgg(ElementsTestMod instance) {
        super(instance, 81);
    }
        public static void executeProcedure(Map<String, Object> dependencies) {
            if (dependencies.get("entity") == null) {
            System.err.println("Failed to load dependency entity for procedure Ggg!");
            return;
  }
          Entity entity = (Entity) dependencies.get("entity");
        int x = (int) dependencies.get("x");
        int y = (int) dependencies.get("y");
        int z = (int) dependencies.get("z");
        World world = (World) dependencies.get("world");
        if (((new Object() {
            public int getScore(String score) {
                if (entity instanceof EntityPlayer) {
                    Scoreboard _sc = ((EntityPlayer) entity).getWorldScoreboard();
                    ScoreObjective _so = _sc.getObjective(score);
                    if (_so != null) {
                        Score _scr = _sc.getOrCreateScore(((EntityPlayer) entity).getGameProfile().getName(), _so);
                        return _scr.getScorePoints();
                    }
                }
                return 0;
            }
        }.getScore("scan")) == 1)) {
        }
    }
          @SubscribeEvent
   public void onEntityRenderPre(RenderLivingEvent.Pre event) {
            Entity entity = event.getEntity(); {
            if (entity instanceof EntityPig)
             GL11.glDisable(GL11.GL_DEPTH_TEST);
             java.util.HashMap<String, Object> dependencies = new java.util.HashMap<>();
             this.executeProcedure(dependencies);
   }
   }   
          @SubscribeEvent         
   public void onEntityRenderPost(RenderLivingEvent.Post event) {
            Entity entity = event.getEntity(); {
            if (entity instanceof EntityPig)
             GL11.glEnable(GL11.GL_DEPTH_TEST);
             java.util.HashMap<String, Object> dependencies = new java.util.HashMap<>();
             this.executeProcedure(dependencies);
        }
   }
       @Override
    public void preInit(FMLPreInitializationEvent event) {
        MinecraftForge.EVENT_BUS.register(this);
    }
}
 
342
14
113
Прошу прощения, знание Java и OpenGL имеется?
Вопрос выглядит немного странно...
Лучше пояснить, в чём именно проблема, где нужно рисовать сущность.
 
16
0
К сожалению знания начальные. Я хочу сделать так, что бы сущностей было видно сквозь стены, на подобии эффекта свечения в майнкрафте, но только что бы только определенные игроки могли видеть сквозь стены. Я хочу это сделать с помощью Скорборда, т.к. это можно регулировать прямо в майнкрафте командой. То есть если в данном случаи скорборд scan =1 , то игрок должен видеть свинюшек сквозь стены, а если scan не соответствует 1, то он видит как обычно. А так сущности рисуются, но всегда, а хотелось бы только тогда, когда понадобится. ( нужно дял моего режима игры, там должен быть сканер, позволяющий видеть игроков сквозь стены и я хочу выдавать к примеру 60 очков к скорборду scan и по 1 отнимать каждый тик и пока значение больше 0, будут рендерится все игроки)
 
178
4
42
К сожалению знания начальные
С такими вопросами тебе не сюда. И вообще не в моддинг. Для начала нужно знать хотя бы Java, а уж потом понимать, как моды-то писать.
То, что описано в теме, можно переформулировать следующим образом: сущности за стеной должны рендериться полупрозрачными, когда они собственно за стеной. И нормальными, если смотришь напрямую. Задача не решается куском кода, по-моему здесь нужно переписывать несколько мест + вероятно, не обойдётся без миксинов/хуков. Без уверенной джавы, ну и теории по OpenGL, здесь тебе делать нечего.

Ишь, пришельцы из мира MCreator на слона замахиваются...
 
16
0
Извиняюсь за свой долгий ответ, нет, у меня все сейчас рендерится, рендер работает так, как нужно, мне просто хотелось бы сделать так, что бы рендерилось только у того, у кого нужный скорборд. К примеру как тут, если скорборд scan=1, то производить рендер, если другое значение, то код этого рендера не должен срабатывать. В примерах "инопланетной программы", к примеру если у человека к примеру скорборд scan=1 , то дается, опять же к примеру 1 хп, там это сделали 3 строками
Java:
        }.getScore("scan")) == 1)) {
            if (entity instanceof EntityPlayer)
                ((EntityPlayer) entity).addExperience((int) 1);
        }
, я думал, что можно такк же сделать, но для GL
 
Сверху