Jump to content

looking for 1.7 tutorial for mobs


Ewe Loon

Recommended Posts

I have a tutorial on custom entities that might help. It uses animal entities as main examples, but a lot of the information should help for hostile mobs as well.  http://jabelarminecraft.blogspot.com/p/creating-custom-entities.html

 

Also, specifically for animation I have: http://jabelarminecraft.blogspot.com/p/complex-entity-models-including.html

 

And for AI I have: http://jabelarminecraft.blogspot.com/p/complex-entity-models-including.html

 

Anyway, maybe useful to you.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

as you will see by the edit time of my first post, i found your tutorial while you where typing the reply,

firstly let me say thankyou, its a good tutorial, but, the details about accessing the texture is a bit hard to understand (at least i couldnt figure it out)

 

 

the package for my main class is

package me.el.mcFarms;

 

the name of my main class is "McFarms"

 

it is registered as

@Mod(modid = "McFarms", name="McFarms", version="1.7.2-v1" )

 

in /Minecraft/src/main/resources/ i have a package "assets.textures.entity.bork"

in that package i have "bork.png"

 

in package "me.el.mcFarms.entities.bork" my render class is

public class RenderBork extends RenderLiving{

 

this dosnt work

texture = new ResourceLocation("textures/entity/bork/bork.png");

i get  [06:58:35] [Client thread/WARN]: Failed to load texture: minecraft:textures/entity/bork/bork.png

i tried

texture = new ResourceLocation("McFarms:textures/entity/bork/bork.png");

but get [07:02:24] [Client thread/WARN]: Failed to load texture: mcfarms:textures/entity/bork/bork.png

what should the path be ???

 

 

 

Link to comment
Share on other sites

Firstly, the package should be assets.modid.textures.entity.bork, make sure everything is lowercase or it won't work.

Secondly use either ResourceLocation("modid:textures/entity/bork/bork.png") or ResourceLocation("modid", "textures/entity/bork/bork.png")

 

Thirdly, it is better practice to define your modid as a "static final String" in you mod's base class in case you want to use it again (you will!), if you do so, replace the (modid = "McFarms") to (modid = McFarms.modid (or whatever you named your variable)) in the @Mod annotation

 

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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Faced with this problem, I want to put the build on the server, but it as I realized a lot of client mods, most of them I removed, but still have a lot of errors. Help please, I sit a whole day to solve the problem, perhaps there are some other problems, crash log attached  https://pastebin.com/vh0647bG
    • Im trying to transfer mod from modpack to my server,i deleted some mod that only work in client,but i can't find zume. https://pastebin.com/CsnrMvup
    • What structures are you trying to make your custom item generate in?
    • Ok, I removed the littletiles mod and the server was opened, my problem was solved, thank you very much again.
    • The code is written by a neural network, but no matter how much I try to do damage or fire effect, either everything stops working, or the particles stop pointing at creatures. package net.tndax.thaumcraft.item.custom; import net.minecraft.core.Holder; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResultHolder; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.damagesource.DamageSource; import java.util.List; import net.minecraft.world.damagesource.DamageType; public class ProtectiveItem extends Item { public ProtectiveItem(Properties pProperties) { super(pProperties); } @Override public InteractionResultHolder<ItemStack> use(Level level, Player player, InteractionHand hand) { if (level.isClientSide()) { new Thread(() -> { double radius = 2.0; // Радиус вращения double heightOffset = 1.5; // Высота вращения частиц относительно игрока int duration = 20000; // Продолжительность эффекта в миллисекундах int steps = 200; // Количество шагов в одном круге (увеличено для большей плотности частиц) long startTime = System.currentTimeMillis(); while (System.currentTimeMillis() - startTime < duration) { for (int step = 0; step < steps; step++) { try { Thread.sleep(5); // Время между шагами уменьшено для увеличения скорости } catch (InterruptedException e) { e.printStackTrace(); } double angle = 2 * Math.PI * step / steps; for (int i = 0; i < 5; i++) { // Добавляем несколько частиц с небольшими смещениями double offset = i * 0.1; double randomFactorX = Math.sin(Math.toRadians(step * 7 % 360 + offset)); double randomFactorY = Math.sin(Math.toRadians(step * 13 % 360 + offset)); double randomFactorZ = Math.sin(Math.toRadians(step * 17 % 360 + offset)); double x = player.getX() + radius * Math.cos(angle) * randomFactorX; double y = player.getY() + heightOffset + radius * Math.sin(angle) * randomFactorY; double z = player.getZ() + radius * Math.sin(angle) * randomFactorZ; level.addParticle(ParticleTypes.FLAME, x, y, z, 0, 0, 0); } // Проверяем наличие сущностей в радиусе 5 блоков List<Entity> nearbyEntities = level.getEntities(player, player.getBoundingBox().inflate(10), entity -> entity instanceof LivingEntity && entity != player); if (!nearbyEntities.isEmpty()) { Entity target = nearbyEntities.get(0); // Берём первую ближайшую сущность double targetX = target.getX(); double targetY = target.getY() + target.getEyeHeight(); double targetZ = target.getZ(); // Направляем частицы к цели for (int i = 0; i < 20; i++) { double t = i / 20.0; double particleX = player.getX() + t * (targetX - player.getX()); double particleY = player.getY() + heightOffset + t * (targetY - (player.getY() + heightOffset)); double particleZ = player.getZ() + t * (targetZ - player.getZ()); level.addParticle(ParticleTypes.FLAME, particleX, particleY, particleZ, 0, 0, 0); try { Thread.sleep(5); // Пауза между частицами } catch (InterruptedException e) { e.printStackTrace(); } } // Возвращаем частицы обратно к игроку for (int i = 0; i < 20; i++) { double t = i / 20.0; double particleX = targetX + t * (player.getX() - targetX); double particleY = targetY + t * (player.getY() + heightOffset - targetY); double particleZ = targetZ + t * (player.getZ() - targetZ); level.addParticle(ParticleTypes.FLAME, particleX, particleY, particleZ, 0, 0, 0); try { Thread.sleep(5); // Пауза между частицами } catch (InterruptedException e) { e.printStackTrace(); } } } } } }).start(); } return new InteractionResultHolder<>(InteractionResult.SUCCESS, player.getItemInHand(hand)); } }  
  • Topics

×
×
  • Create New...

Important Information

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