Jump to content
  • Home
  • Files
  • Docs
  • Merch
Topics
  • All Content

  • This Topic
  • This Forum

  • Advanced Search
  • Existing user? Sign In  

    Sign In



    • Not recommended on shared computers


    • Forgot your password?

  • Sign Up
  • All Activity
  • Home
  • Mod Developer Central
  • Modder Support
  • How to change weapons damage in Forge 1.6 without Enums
1.13 Update Notes for Mod Creators
Sign in to follow this  
Followers 0
tlr38usd

How to change weapons damage in Forge 1.6 without Enums

By tlr38usd, July 9, 2013 in Modder Support

  • Reply to this topic
  • Start new topic

Recommended Posts

tlr38usd    1

tlr38usd

tlr38usd    1

  • Stone Miner
  • tlr38usd
  • Members
  • 1
  • 93 posts
Posted July 9, 2013

I can't find out how to change weapon damage on my custom sword. I have it extending the item sword file because I want it to be enchantable, but I can't find a way to change the blue tooltip. I need to be able to change the weaponDamage field but I'm not sure how.

  • Quote

Share this post


Link to post
Share on other sites

diesieben07    6692

diesieben07

diesieben07    6692

  • Reality Controller
  • diesieben07
  • Forum Team
  • 6692
  • 45730 posts
Posted July 9, 2013

Just assign a new value to the field in the constructor of your Sword.

Or, depending on what you wanna achieve, change the damageVsEntity of your EnumToolMaterial.

  • Quote

Share this post


Link to post
Share on other sites

tlr38usd    1

tlr38usd

tlr38usd    1

  • Stone Miner
  • tlr38usd
  • Members
  • 1
  • 93 posts
Posted July 9, 2013

Just assign a new value to the field in the constructor of your Sword.

Or, depending on what you wanna achieve, change the damageVsEntity of your EnumToolMaterial.

 

How do I change the constructor? Also, I'm not using EnumToolMaterials.

  • Quote

Share this post


Link to post
Share on other sites

diesieben07    6692

diesieben07

diesieben07    6692

  • Reality Controller
  • diesieben07
  • Forum Team
  • 6692
  • 45730 posts
Posted July 9, 2013

How do I change the constructor?

If you don't know that, you are wrong here. Go learn java first, then start modding.
  • Quote

Share this post


Link to post
Share on other sites

Chibill    9

Chibill

Chibill    9

  • Dragon Slayer
  • Chibill
  • Forge Modder
  • 9
  • 584 posts
Posted July 9, 2013

^why are you rude in every topic you post in. P.S the constructor is the function that you call from your main mod class named the same as you tools class.

  • Quote

Share this post


Link to post
Share on other sites

diesieben07    6692

diesieben07

diesieben07    6692

  • Reality Controller
  • diesieben07
  • Forum Team
  • 6692
  • 45730 posts
Posted July 9, 2013

I'd overhaul your definition of rude.

  • Quote

Share this post


Link to post
Share on other sites

Chibill    9

Chibill

Chibill    9

  • Dragon Slayer
  • Chibill
  • Forge Modder
  • 9
  • 584 posts
Posted July 9, 2013

Really some people learn Java from mixing and they have a hard time doing it the other way around so just because you learn Java then started mixing does not mean everyone must learn Java first you are saying they MUST learn it first.

  • Quote

Share this post


Link to post
Share on other sites

diesieben07    6692

diesieben07

diesieben07    6692

  • Reality Controller
  • diesieben07
  • Forum Team
  • 6692
  • 45730 posts
Posted July 9, 2013

Learning java from modding results in threads like this where people are programming a mod and don't even know properly how to assign a value to a field. That is NOT good.

Learning java from modding might work, but only if you have a solid programming experience in other languages.

  • Quote

Share this post


Link to post
Share on other sites

tlr38usd    1

tlr38usd

tlr38usd    1

  • Stone Miner
  • tlr38usd
  • Members
  • 1
  • 93 posts
Posted July 9, 2013

Really some people learn Java from mixing and they have a hard time doing it the other way around so just because you learn Java then started mixing does not mean everyone must learn Java first you are saying they MUST learn it first.

 

Thank you for defending me Chibill.

 

Now, when you say change the constructor I thought you meant change something other than the enumtoolmaterial and I was confused because I didn't see everything.

 

This is the constructor I found in the minecraft src Item.java

public static Item swordIron = (new ItemSword(11, EnumToolMaterial.IRON)).setUnlocalizedName("swordIron").func_111206_d("iron_sword");

 

This is my constructor

battleAxes = new itemBattleAxe(idBase + weaponMaterials.weaponMats.length + i, weaponMaterials.weaponMats[i]).setUnlocalizedName(weaponMaterials.weaponMats[i].toolName + "Battleaxe");

 

This goes in a for loop that loops through all the weaponMats I have declared. I wanted to be able to remotely add and take away tool materials and I wanted my own variables (color, render passes, alternate textures etc.). So I went with that vs. the enumtoolmaterials.

 

I only ask questions when I have exhausted all other sources and I expect I will be pointed in the right direction, not have my methods insulted. I am learning java through modding, that was my plan all along, and unless you count HTML as a solid programming language I had no prior experience so I'm sorry if I'm not in touch with your precious "lingo".

 

I have made a small hack that works to an extent.

static EnumToolMaterial base = EnumHelper.addToolMaterial("IRON", 2, 250, 6.0F, 0, 14);

public weaponBase(int par1, weaponMaterials mat)
{

	super(par1, base);

	this.toolMaterial = mat;
	this.setCreativeTab(CreativeTabs.tabCombat);
	this.maxStackSize = 1;

	base = EnumHelper.addToolMaterial("BASE", toolMaterial.harvestLevel, toolMaterial.maxUses, toolMaterial.efficiencyOnProperMaterial, damageModifier + toolMaterial.getDamageVsEntity(), toolMaterial.enchantability);
}

 

This gives me the scaled damages I want but it is lightyears away from working soundly. I used to use getDamageVsEntity but that broke in the 1.6 update, so is there a new way to do it without using enums?

  • Quote

Share this post


Link to post
Share on other sites

diesieben07    6692

diesieben07

diesieben07    6692

  • Reality Controller
  • diesieben07
  • Forum Team
  • 6692
  • 45730 posts
Posted July 9, 2013
This is the constructor I found in the minecraft src Item.java

public static Item swordIron = (new ItemSword(11, EnumToolMaterial.IRON)).setUnlocalizedName("swordIron").func_111206_d("iron_sword");

 

This is my constructor

battleAxes = new itemBattleAxe(idBase + weaponMaterials.weaponMats.length + i, weaponMaterials.weaponMats[i]).setUnlocalizedName(weaponMaterials.weaponMats[i].toolName + "Battleaxe");

That's what I am talking about. That is NOT a constructor. That is the invocation of a constructor by using the new keyword.

You need to change the field in your constructor, as I said before.

  • Quote

Share this post


Link to post
Share on other sites

tlr38usd    1

tlr38usd

tlr38usd    1

  • Stone Miner
  • tlr38usd
  • Members
  • 1
  • 93 posts
Posted July 9, 2013

That's what I am talking about. That is NOT a constructor. That is the invocation of a constructor by using the new keyword.

You need to change the field in your constructor, as I said before.

 

public weaponBase(int par1, weaponMaterials mat)
{

	super(par1, base);

	this.toolMaterial = mat;
	this.setCreativeTab(CreativeTabs.tabCombat);
	this.maxStackSize = 1;

	base = EnumHelper.addToolMaterial("BASE", toolMaterial.harvestLevel, toolMaterial.maxUses, toolMaterial.efficiencyOnProperMaterial, damageModifier + toolMaterial.getDamageVsEntity(), toolMaterial.enchantability);
}

Am I constructing yet? =D

Also the "base" thingy is the cheat I'm using that sorta works.

  • Quote

Share this post


Link to post
Share on other sites

diesieben07    6692

diesieben07

diesieben07    6692

  • Reality Controller
  • diesieben07
  • Forum Team
  • 6692
  • 45730 posts
Posted July 9, 2013

That's indeed your constructor. and in there just assign the weaponDamage field to whatever value you want.

  • Quote

Share this post


Link to post
Share on other sites

tlr38usd    1

tlr38usd

tlr38usd    1

  • Stone Miner
  • tlr38usd
  • Members
  • 1
  • 93 posts
Posted July 9, 2013

That's indeed your constructor. and in there just assign the weaponDamage field to whatever value you want.

 

I did try that, but it is a private float. There is the "public Multimap func_111205_h()" method that uses the weaponDamage float, but I haven't done much research on it yet.

  • Quote

Share this post


Link to post
Share on other sites

diesieben07    6692

diesieben07

diesieben07    6692

  • Reality Controller
  • diesieben07
  • Forum Team
  • 6692
  • 45730 posts
Posted July 9, 2013

There is no such thing as inaccessible fields in java. Use reflection, make an access transformer, whatever you want.

  • Quote

Share this post


Link to post
Share on other sites

TheyCallMeDanger    1

TheyCallMeDanger

TheyCallMeDanger    1

  • Stone Miner
  • TheyCallMeDanger
  • Members
  • 1
  • 73 posts
Posted July 10, 2013

There is no such thing as inaccessible fields in java. Use reflection, make an access transformer, whatever you want.

 

OOOOOOoooooooooooooooooooo......................

You have no idea the can of worms you've just opened!!!!

Lol!

;)

 

Thanks!

 

 

  • Quote

Share this post


Link to post
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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.

  • Insert image from URL
×
  • Desktop
  • Tablet
  • Phone
Sign in to follow this  
Followers 0
Go To Topic Listing



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • Oliviafrostpaw
      [1.14.4] Injecting into Existing Loot Tables, Blocks

      By Oliviafrostpaw · Posted 10 minutes ago

      After some poking, the function is not firing whatsoever
    • RaphGamingz
      [1.14.4] Dimensions

      By RaphGamingz · Posted 1 hour ago

      Anyone?
    • RaphGamingz
      [1.14.4] Injecting into Existing Loot Tables, Blocks

      By RaphGamingz · Posted 1 hour ago

      Are you sure this is correct, shouldn’t it be  new ResourceLocation(“minecraft”,”grass”) And is the function firing?
    • mervinrasquinha
      Introducing Stonecage

      By mervinrasquinha · Posted 3 hours ago

      If you’re interested in a modpack with a little bit of tech, a little bit of magic, and a lot of adventure, I would love for you to try out my modpack Stonecage. Stonecage takes mods you might have seen before (and many you might not have), and adds a twist to them to make them fresh again. The main gimmick of the pack is that it makes stone unmineable, meaning you’ll have to explore caves and dungeons the way they were intended, and find solutions to problems you never knew existed. It aims to be a hardcore pack that’s more fair than most, and leaves you to seek combat and adventure on your own terms. While you may start out weak, you’ll find magical artifacts known as curios in your adventures that can be crafted into powerful baubles that will help you in combat and elsewhere. You’ll also find pieces of ancient machines that with research can be deciphered and put back together, bringing industry back to a world that has long been without it. The pack is heavily centered around researching these lost machines, and the research table will guide you through the modpack while giving you more freedom than a quest book would. With a small, curated list of mods, most computers will likely be able to run it, and the many, many lines of scripting keep these mods integrated into what feels like a cohesive whole. If this sounds like fun to you, I encourage you to check it out. If you do, I hope you have as much fun playing it as I did creating it.
    • Darth_Cobalt
      Forge 1.14.4 crashes.

      By Darth_Cobalt · Posted 4 hours ago

      Hi I just downloaded forge and every time i try to load it, it crashes. I have tried 1.14.4 - 28.1.0 and 1.14.4 - 28.1.106. It crashes with both versions. I couldn't figure out how to upload the crash files, could somebody explain how I can do that?
  • Topics

    • Oliviafrostpaw
      7
      [1.14.4] Injecting into Existing Loot Tables, Blocks

      By Oliviafrostpaw
      Started December 8

    • RaphGamingz
      1
      [1.14.4] Dimensions

      By RaphGamingz
      Started Yesterday at 07:45 AM

    • mervinrasquinha
      0
      Introducing Stonecage

      By mervinrasquinha
      Started 3 hours ago

    • Darth_Cobalt
      0
      Forge 1.14.4 crashes.

      By Darth_Cobalt
      Started 4 hours ago

    • leonardsores
      0
      Fun mod interactions

      By leonardsores
      Started 4 hours ago

  • Who's Online (See full list)

    • xerca
    • Oliviafrostpaw
    • Redstoneguy129
    • Raelsyl
  • All Activity
  • Home
  • Mod Developer Central
  • Modder Support
  • How to change weapons damage in Forge 1.6 without Enums
  • Theme
  • Contact Us
  • Discord

Copyright © 2019 ForgeDevelopment LLC · Ads by Curse Powered by Invision Community