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

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