Jump to content

[] replacing the vainilla ItemEntity whit mi MItemEntity but only for this specific item


Recommended Posts

Posted

good days and sorry for asking for complicated stuff 

i got this red hot iron ingot item  that must be turned into a steel ingot item under certain conditions 

iron-edit.gif


☑ turn the item into steel when right click cauldron but only if there is water in it

☑ turn the item into steel when right click water block 

☐ turn the item into steel when dropped on water 


how i made this
first made custome MItemEntity extending vainilla ItemEntity but changing the code from the public void tick() {} method to ask if the entity is in water kill it and drop a normal  ItemEntity whit the basemmod:ingot_steel  item
#### there comes the question 
how i declare mi custme MItemEntity soo forges pick it up and also where i get the especial render ItemEntity use to display the contained itemstak ? 

this dont works 

	public class ModEntityTypes {
    public static DeferredRegister<EntityType<?>> ENTITY_TYPES = DeferredRegister.create(ForgeRegistries.ENTITIES, basemmod.MOD_ID);
	    
    public static final RegistryObject<EntityType<MItemEntity>> MITEMENTITY =
            ENTITY_TYPES.register("mitementity",
                    () -> EntityType.Builder.create(MItemEntity::new,
                                    EntityClassification.MISC).size(1f, 1f)
                            .build(new ResourceLocation(basemmod.MOD_ID, "mitementity").toString()));
   
	    public static void register(IEventBus eventBus) {
        ENTITY_TYPES.register(eventBus);
    }
}
	




the second thing is 
whats the name from the event that trigers when user drops and item  whit keyboard [Q] key ??

	    @SubscribeEvent
    public static void onItemDrop_orsomething(EntityLeaveWorldEvent event) {
        Entity entity = event.getEntity();
        World warudo = event.getWorld();
        if (entity instanceof ItemEntity) {
            ItemEntity item_e = (ItemEntity)entity;
            ItemStack itemStack = item_e.getItem();
                        
            if (itemStack.getItem() == MItems.INGOT_IRON_RED_HOT.get()) {
                item_e.kill();
                ItemStack dropstack = new ItemStack( MItems.INGOT_STEEL.get(), 1);                
	                MItemEntity drop = new MItemEntity(warudo, (double)(pos.getX() + 0.5F) , (double)(pos.getY() + 1.0F)  , (double)(pos.getZ() + 0.5F) , dropstack );
                warudo.addFreshEntity(drop);
            }
        }
    }
	



thanks for your time and help

 

Posted

Which version did you use since World is not a mojang name?

On 8/1/2022 at 5:31 AM, perromercenary00 said:
        World warudo = event.getWorld();

 

Guest
This topic is now closed to further replies.

Announcements



×
×
  • Create New...

Important Information

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