Jump to content

Turbo Pig

Members
  • Posts

    6
  • Joined

  • Last visited

Everything posted by Turbo Pig

  1. Ah, that was my problem. I was misreading the vanilla code and adding the attack tasks in the target tasks list. Thanks
  2. Simply put, my mob's attack AI is never called to execute (i.e. the shouldExecute method and, as a result, the startExecuting method, are never called). Essentially, the mob starts executing its EntityAINearestAttackableTarget task, but then never reaches its EntityAIAttackMelee task. The shouldExecute method in the attack task is never called once the target-finding task is executed, but is called a few times before. By removing the target-finding task, the mob does attempt to execute the attack task. However, without a target, the task naturally fails the shouldExecute check. What is going wrong? I have copied the skeleton's AI tasks (as seen in the class below) to see if my implementation of the AI tasks was at fault, but it made no difference. I have thought of changing the priority of the attack task to precede the target-finding task, but vanilla mobs all have their attack tasks afterwards. Why is it different in this case? Entity Class: public class EntityTestMob extends EntityMob { public EntityTestMob(World world) { super(world); this.setSize(0.6f, 1.99f); } @Override protected void initEntityAI() { this.tasks.addTask(1, new EntityAISwimming(this)); this.tasks.addTask(2, new EntityAIRestrictSun(this)); this.tasks.addTask(3, new EntityAIFleeSun(this, 1)); this.tasks.addTask(3, new EntityAIAvoidEntity(this, EntityWolf.class, 6f, 1, 1.2)); this.tasks.addTask(5, new EntityAIWanderAvoidWater(this, 1)); this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPig.class, 8f)); this.tasks.addTask(6, new EntityAILookIdle(this)); this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, new Class[0])); this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPig.class, true)); this.targetTasks.addTask(3, new EntityAIAttackMelee(this, 1, false)); } @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.FOLLOW_RANGE).setBaseValue(32); this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.25); this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(3); } } Note: The AI targets pigs so I can test if it works while still in creative mode. Changing its target to the player makes no difference.
  3. Try setting your PATH system variable to where you installed your JDK. Solution is from this thread.
  4. The build.gradle dependencies are working with IntelliJ. Switching to IDEA seems to be the right idea Thank you!
  5. Drats. Fortunately I already have IDEA already installed, and it appears to have Gradle support. Hopefully this fixes the problem, thanks! Interestingly enough, I have found that adding the JARs through the Eclipse GUI was sufficient (albeit, not for Botania... but perhaps that is a different issue). Correct me if I'm wrong, but I have heard that Forge automatically includes JARs found in the /libs folder. Based on this, assuming I'm using Gradle-compatible IDE, will I have to include dependencies in the /libs folder as well? Or is adding the dependencies via build.gradle sufficient? Thanks for your patience, I don't know much about Gradle.
  6. My IDE is Eclipse, if that makes any difference. I've been adding dependent mods to the dev environment by adding the JAR as a library (Build Path > Configure Build Path...). This has worked fine for most mods. However, attempting to add Botania in this manner results in a crash, so I have been prompted to add my dependencies through build.gradle. Here is the contents my build.gradle file, using Tinker's Construct as an example: buildscript { repositories { jcenter() maven { url = "http://files.minecraftforge.net/maven" } } dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT' } } apply plugin: 'net.minecraftforge.gradle.forge' //Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. version = "0.3" group = "turbopig.mod.tinkegration" archivesBaseName = "tinkegration" sourceCompatibility = targetCompatibility = '1.8' // Need this here so eclipse task generates correctly. compileJava { sourceCompatibility = targetCompatibility = '1.8' } minecraft { version = "1.12.2-14.23.1.2578" runDir = "run" mappings = "snapshot_20171003" makeObfSourceJar = false } repositories { maven { name 'DVS1 Maven FS' url 'http://dvs1.progwml6.com/files/maven' } } dependencies { deobfCompile "slimeknights.mantle:Mantle:1.12-1.3.1.22" deobfCompile "slimeknights:TConstruct:1.12-2.8.1.51" } processResources { // this will ensure that this task is redone when the versions change. inputs.property "version", project.version inputs.property "mcversion", project.minecraft.version // replace stuff in mcmod.info, nothing else from(sourceSets.main.resources.srcDirs) { include 'mcmod.info' // replace version and mcversion expand 'version':project.version, 'mcversion':project.minecraft.version } // copy everything else except the mcmod.info from(sourceSets.main.resources.srcDirs) { exclude 'mcmod.info' } } Running setupDecompWorkspace seems to download the dependencies, yet I cannot access the mods through my own code. Specifically, "The import slimeknights cannot be resolved." I have tried: Deleting the build folder, and running setupDecompWorkspace again Running cleanCache, then setupDecompWorkspace --refresh-dependencies The above two, together What is going wrong? Thanks
×
×
  • Create New...

Important Information

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