Jump to content

ben_mkiv

Members
  • Posts

    9
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

ben_mkiv's Achievements

Tree Puncher

Tree Puncher (2/8)

2

Reputation

  1. Do you use IDEA? Then rightclick the gradle button on the right of the window, and in the gradle tab press the refresh button on the top left.
  2. first translate to world origin 0,0,0 GlStateManager.translate(-player.posX, -player.posY, -player.posZ); then translate to the entity position GlStateManager.translate(entity.posX, entity.posY, entity.posZ); but you should combine them to one translate call, like GlStateManager.translate(entity.posX - player.posX, entity.posY - player.posY, entity.posZ - player.posZ);
  3. GL11.glMultMatrix(getRenderMatrix().asDoubleBuffer()); as Laike_Endaril already noticed. Is your source available somewhere? I did something a while back for Wavefront Object Models, but never finished it. And would be interested in some working solution for rigged Meshs, as my Rig was just based on an hand written XML File for now. Also im curious about how you solve Collision Detection ? (you might want to switch over to some other Matrix4f class like https://github.com/TheCBProject/CodeChickenLib/blob/master/src/main/java/codechicken/lib/vec/Matrix4.java, as LWJGL code isnt available on serverside)
  4. So my problem with this is that my Capability is used to attach a OpenComputers machine to Mobs for example. Which will be used on like 1-2 Mobs for each user, while every other mob has to get the capability handler assigned even when never using it. maybe capabilities are the wrong tool for that, but i dont know how else to attach custom data to a mob
  5. but to expose a capability it has to be attached on entity registration, doesn't it?
  6. well its kinda lot of code... actually i'm attaching the capabilities to every EntityLiving/EntityMinecart by catching the attachCapability event. every capability has a wrapper around it which is able to attach/detach the capability. so i dont see any place to optimize here except of adding a wrapper around all capabilities so that i end up with one capability... but even those wrappers already used are annoying me its just that multiplayer server hold tons of entities cached and i would like to keep my overhead at the possible minimum. And Capabilities would be a great Tool for me if i could just add/remove them on the fly to a entity. @dieSieben07 also while you are reading this thread anyways, thanks for all the questions you answered before on the forums, that helped a lot to get started with modding minecraft well thats one of my capabilities, the attaching/detaching is managed within the capability provider public class authorityCapability implements ICapabilitySerializable<NBTBase> { @CapabilityInject(IauthorityCapability.class) public static Capability<IauthorityCapability> AUTHORITY = null; private authorityProvider instance = null; public static void register(){ CapabilityManager.INSTANCE.register(IauthorityCapability.class, new authorityStorage(), authorityProvider.class); MinecraftForge.EVENT_BUS.register(new eventHandler()); capabilities.register(AUTHORITY);} public authorityCapability(Entity e){ instance = new authorityProvider(e); } public boolean hasCapability(Capability<?> capability, @Nullable EnumFacing facing) { return capability.equals(AUTHORITY); } @Nullable public <T> T getCapability(Capability<T> capability, @Nullable EnumFacing facing) { if(!capability.equals(AUTHORITY)) return null; return AUTHORITY.<T> cast(instance); } @Override public NBTBase serializeNBT(){ if(instance == null) return new NBTTagCompound(); return AUTHORITY.getStorage().writeNBT(AUTHORITY, instance, null); } @Override public void deserializeNBT(NBTBase nbt){ if(instance != null) AUTHORITY.getStorage().readNBT(AUTHORITY, instance, null, nbt); } public static class eventHandler { private static final ResourceLocation KEY = new ResourceLocation(OpenEntity.MODID, "authorityCapability"); @SubscribeEvent public void StartTracking(PlayerEvent.StartTracking event){ if(!event.getTarget().hasCapability(AUTHORITY, null)) return; if(!event.getTarget().getCapability(AUTHORITY, null).isAttached()) return; event.getTarget().getCapability(AUTHORITY, null).syncToClient(event.getEntityPlayer()); } @SubscribeEvent public void attachCapability(AttachCapabilitiesEvent<Entity> event) { Entity entity = event.getObject(); if (!giveCapToEntity(entity)) return; if(entity.hasCapability(AUTHORITY, null)) return; //Logger.getLogger(OpenEntity.MODID).info("adding cap INVENTORY " + entity.world.isRemote); event.addCapability(KEY, new authorityCapability(entity)); } @SubscribeEvent public void onDeath(LivingDeathEvent event) { if(event.getEntity().hasCapability(AUTHORITY, null)) event.getEntity().getCapability(AUTHORITY, null).detach(null); } public static boolean giveCapToEntity(Entity e){ if(e instanceof EntityCreature) return true; if(e instanceof EntityMinecart) return true; return false; } } }
  7. Hello, i'm writing a mod which adds a set of different Capabilities for Entities. Actually i'm giving any Entity my capabilities on registration, which creates a lot of unnecessary overhead. Please add some Method to add/remove Capabilities from Entities on the fly. Thanks
  8. Hi, please add a event (like the LivingDeathEvent for EntityLivings) which fires when a minecart gets destroyed/killed it should probably fire in net.minecraft.entity.item.EntityMinecart as first call in the killMinecart Method (before setDead()!) public void killMinecart(DamageSource source) My Mod adds different Capabilities to Minecarts and Entities and i want to catch the kill Event to drop their Inventories when they get killed/destroyed. (which works fine with the LivingDeathEvent for Mobs)
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.