You are not logged in.

  • Login
Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

Dear visitor, welcome to Nitrado.net Prepaid Gameserver Community-Support - Archiv. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Harfe

User / Kunde

  • "Harfe" is male
  • "Harfe" started this thread

Posts: 177

Location: LeckMichStraße34 Stuttgart

Occupation: Hobbyloser Dev

  • Send private message

1

Tuesday, September 20th 2016, 2:49pm

[Minecraft-Mod-Programmieren] Tools and CreativeTabs

ItemTool Schwert/Pickaxe/Schaufel/Axt/Hoe

Zuallererst erstellt ihr in eurer Hauptklasse ein neues ToolMaterial:

Java source code

1
public static ToolMaterial uran = EnumHelper.addToolMaterial("uranium", 5, 500, 12, 13, 6);

Der EnumHelper wird oft nicht angezeigt aber er ist da :) (import net.minecraftforge.common.util.EnumHelper;)
Nun könnt ihr euch eure Klassen erstellen:
- UraniumSword extends ItemSword
- UraniumPickaxe extends ItemPickaxe
- UraniumAxe extends ItemTool
- UraniumShovel extends ItemSpade
- UraniumHoe extends ItemHoe
Wenn dies geschehen ist könnt ihr in den jeweiligen Klassen die jeweiligen Methoden anlegen

Java source code

1
this.setUnlocalizedName("UraniumSword");

Um dies dann geordnet zu speichern, erstellen wir uns erstmal ein neues package namens Util im src/main/java Ordner.Dazu erstellen wir einfach mal eine Neue Klasse namens Tabs in die dann alle unsere Creative Tabs kommen.

Java source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static CreativeTabs blocks = new CreativeTabs("blocks") {
		
		@Override
		public Item getTabIconItem() {
			return Item.getItemFromBlock(tutorial.uranium_ore);
		}
	};
	
public static CreativeTabs tools = new CreativeTabs("tools") {
		
		@Override
		public Item getTabIconItem() {
			return tutorial.uranium;
		}
	};


Die ItemAxe Klasse funktioniert bei Forge gerade leider nicht deswegen erstellen wir uns noch kurzmal in unserer UraniumAxe Klasse ein paar Sachen:

Java source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package tools;

import java.util.Set;

import com.google.common.collect.Sets;

import main.tutorial;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemTool;

public class UraniumAxe extends ItemTool {
	

	
	private static final Set<Block> EFFECTIVE_ON = Sets.newHashSet(new Block[] {Blocks.PLANKS, Blocks.BOOKSHELF, Blocks.LOG, Blocks.LOG2, Blocks.CHEST, Blocks.PUMPKIN, Blocks.LIT_PUMPKIN, Blocks.MELON_BLOCK, Blocks.LADDER, Blocks.WOODEN_BUTTON, Blocks.WOODEN_PRESSURE_PLATE});

          public UraniumAxe() {

        	  super(tutorial.uran, EFFECTIVE_ON);

              this.damageVsEntity = tutorial.uran.getDamageVsEntity();

              this.attackSpeed = -3.0F;

          }
}



Nun ziehen wir alle Texturen in unseres assets.MODID.textures.items package.
Dazu erstellen wir dann im assets.MODID.models.item package die normalen ItemName.json Dateien mit dem Inhalt:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
    "parent":"MODID:item/ItemModelBase",
    "textures": {
        "layer0":"MODID:items/uranium_sword"
    },
    "display": {
        "thirdperson": {
            "rotation": [ -90, 0, 0 ],
            "translation": [ 0, 1, -3 ],
            "scale": [ 0.55, 0.55, 0.55 ]
        },
        "firstperson": {
            "rotation": [ 0, -135, 25 ],
            "translation": [ 0, 4, 2 ],
            "scale": [ 1.7, 1.7, 1.7 ]
        }
    }
}

Jetzt legen wir von jedem Tool eine statische Variable in der Hauptklasse an.

Java source code

1
2
3
4
5
  public static Item uranium_sword = new UraniumSword();
    public static Item uranium_shovel = new UraniumShovel();
    public static Item uranium_hoe = new UraniumHoe();
    public static Item uranium_axe = new UraniumAxe();
    public static Item uranium_pickaxe = new UraniumPickaxe();

Nun können wir die Items wie immer in der Hauptklasse mit der Methode registerItem() registrieren.

Java source code

1
2
3
4
5
6
7
8
9
10
11
12
13
/**Items**/
    	
    	registerItem(uranium,"uranium",CreativeTabs.MATERIALS);
    	
    	registerItem(uranium_sword,"uranium_sword",Tabs.tools);
    	registerItem(uranium_pickaxe,"uranium_pickaxe",Tabs.tools);
    	registerItem(uranium_axe,"uranium_axe",Tabs.tools);
    	registerItem(uranium_shovel, "uranium_shovel", Tabs.tools);
    	registerItem(uranium_hoe,"uranium_hoe", Tabs.tools);
    	
        /**Blocks**/
    	
    	registerBlock(uranium_ore, "uranium_ore", Tabs.blocks);


Nun können wir Minecraft starten.

Wenn es bei euch geklappt hat sollte es wie auf dem Bild aussehen.






Ich werde dies alles wahrscheinlichh bei Gelegenheit ins Wiki übertragen :)

LG
Harfe aka. HeadBlasterTV

Harfe

User / Kunde

  • "Harfe" is male
  • "Harfe" started this thread

Posts: 177

Location: LeckMichStraße34 Stuttgart

Occupation: Hobbyloser Dev

  • Send private message

2

Sunday, October 2nd 2016, 5:43pm

Ich pack die tutorials auf ne Website http://support.headblastertv.bplaced.de/feed_modding.xml
So bleibt ihr aufm laufenden :)

This post has been edited 1 times, last edit by "Harfe" (Oct 2nd 2016, 6:47pm)


Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net