Skip to content

Commit 7db426e

Browse files
committed
added new item namely, Exalter, that can change the obsidian block to an crying obsidian
1 parent 0f4db03 commit 7db426e

File tree

7 files changed

+72
-0
lines changed

7 files changed

+72
-0
lines changed

src/main/java/crystallized/modid/item/ModItemGroups.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import crystallized.modid.CrystallizedMod;
44
import crystallized.modid.block.ModBlocks;
5+
import crystallized.modid.item.custom.ExalterItem;
56
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup;
67
import net.minecraft.item.ItemGroup;
78
import net.minecraft.item.ItemStack;
@@ -19,6 +20,8 @@ public class ModItemGroups {
1920
.entries((displayContext, entries) -> {
2021
entries.add(ModItems.CRYSTALLIZED_INGOT);
2122
entries.add(ModItems.RAW_CRYSTALLIZED);
23+
24+
entries.add(ModItems.EXALTER);
2225
})
2326
.build());
2427

src/main/java/crystallized/modid/item/ModItems.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package crystallized.modid.item;
22

33
import crystallized.modid.CrystallizedMod;
4+
import crystallized.modid.item.custom.ExalterItem;
45
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents;
56
import net.minecraft.item.Item;
67
import net.minecraft.item.ItemGroups;
@@ -15,6 +16,9 @@ public class ModItems {
1516
new Item.Settings().registryKey(RegistryKey.of(RegistryKeys.ITEM, Identifier.of(CrystallizedMod.MOD_ID, "crystallized_ingot")))));
1617
public static final Item RAW_CRYSTALLIZED = registerItem("raw_crystallized", new Item(
1718
new Item.Settings().registryKey(RegistryKey.of(RegistryKeys.ITEM, Identifier.of(CrystallizedMod.MOD_ID, "raw_crystallized")))));
19+
public static final Item EXALTER = registerItem("exalter", new ExalterItem(
20+
new Item.Settings().maxDamage(16).registryKey(RegistryKey.of(RegistryKeys.ITEM, Identifier.of(CrystallizedMod.MOD_ID, "exalter")))));
21+
1822

1923

2024
private static Item registerItem(String name, Item item) {
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package crystallized.modid.item.custom;
2+
3+
import net.minecraft.block.Block;
4+
import net.minecraft.block.Blocks;
5+
import net.minecraft.entity.EquipmentSlot;
6+
import net.minecraft.item.Item;
7+
import net.minecraft.item.ItemUsageContext;
8+
import net.minecraft.server.network.ServerPlayerEntity;
9+
import net.minecraft.server.world.ServerWorld;
10+
import net.minecraft.sound.SoundCategory;
11+
import net.minecraft.sound.SoundEvents;
12+
import net.minecraft.util.ActionResult;
13+
import net.minecraft.world.World;
14+
15+
import java.util.Map;
16+
17+
public class ExalterItem extends Item {
18+
private static final Map<Block, Block> EXALTER_MAP =
19+
Map.ofEntries(
20+
Map.entry(Blocks.OBSIDIAN, Blocks.CRYING_OBSIDIAN)
21+
22+
23+
);
24+
25+
public ExalterItem(Settings settings) {
26+
super(settings);
27+
}
28+
29+
@Override
30+
public ActionResult useOnBlock(ItemUsageContext context) {
31+
World world = context.getWorld();
32+
Block clickBlock = world.getBlockState(context.getBlockPos()).getBlock();
33+
34+
if(EXALTER_MAP.containsKey(clickBlock)) {
35+
if(!world.isClient()) {
36+
world.setBlockState(context.getBlockPos(), EXALTER_MAP.get(clickBlock).getDefaultState());
37+
38+
39+
context.getStack().damage(1, ((ServerWorld) world), ((ServerPlayerEntity) context.getPlayer()),
40+
item -> {
41+
assert context.getPlayer() != null;
42+
context.getPlayer().sendEquipmentBreakStatus(item, EquipmentSlot.MAINHAND);
43+
});
44+
45+
world.playSound(null, context.getBlockPos(), SoundEvents.BLOCK_BELL_USE, SoundCategory.BLOCKS);
46+
}
47+
}
48+
49+
return ActionResult.SUCCESS;
50+
}
51+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"model": {
3+
"type": "minecraft:model",
4+
"model": "crystallized-mod:item/exalter"
5+
}
6+
}

src/main/resources/assets/crystallized-mod/lang/en_us.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
"item.crystallized-mod.crystallized_ingot": "Crystallized Ingot",
33
"item.crystallized-mod.raw_crystallized": "Raw Crystallized",
44

5+
"item.crystallized-mod.exalter": "Exalter",
6+
57
"item.crystallized-mod.crystallized_block": "Crystallized Block",
68
"item.crystallized-mod.crystallized_ore": "Crystallized Ore",
79

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "minecraft:item/generated",
3+
"textures": {
4+
"layer0": "crystallized-mod:item/exalter"
5+
}
6+
}
274 Bytes
Loading

0 commit comments

Comments
 (0)