Skip to content

Commit 6b31f16

Browse files
committed
implement kinetic damage for electrum tools
1 parent 5c967f9 commit 6b31f16

File tree

19 files changed

+209
-28
lines changed

19 files changed

+209
-28
lines changed

src/generated/resources/.cache/86c4ba3fec62c329e6b7e74d87569e08181a0d37

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// 1.20.1 2024-08-28T12:15:19.5456297 Oreganized Item Tags
1+
// 1.20.1 2024-09-17T12:51:06.9601625 Oreganized Item Tags
22
3a2cbf8d34e9bde2e22d59d4437fa80361d53291 data/farmersdelight/tags/items/tools/knives.json
33
d8d286ea76e30a635512bc93d68815770003ff41 data/forge/tags/items/buckets/molten_lead.json
44
7a2d68d81bc5ee59f9a2f4ba68ddb39bfd9c875d data/forge/tags/items/glass.json
@@ -47,6 +47,7 @@ a4acb3623320f801e89e3451f8b7d9e2246f99d0 data/minecraft/tags/items/walls.json
4747
81fb1b18afaa14ae90800b23c32de565d1389bb3 data/oreganized/tags/items/crystal_glass.json
4848
f1dfddab1e3f2dec1e7ed1c3fbf9f6a7f261cf08 data/oreganized/tags/items/crystal_glass_panes.json
4949
bf2ad799074f5c44acee490bdf3d3ae81d56997b data/oreganized/tags/items/gargoyle_snack.json
50+
4d89056c908550931c1f2008f9817f5d3ff7aa68 data/oreganized/tags/items/has_kinetic_damage.json
5051
f7810c755845dc955112f7b0cedf68260ad693cc data/oreganized/tags/items/lead_source.json
5152
376b7c9ff449a4b98cb7b1f65b47d658c4e39428 data/oreganized/tags/items/lighter_than_lead.json
5253
3112fb4a1df2953e2c3572fa47f886bf8e5bd679 data/oreganized/tags/items/stone_types/glance.json

src/generated/resources/assets/oreganized/lang/en_us.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"advancements.story.melting_point.title": "Melting Point",
1212
"advancements.story.obtain_silver.description": "Smelt Raw Silver",
1313
"advancements.story.obtain_silver.title": "Every Stone has a Silver Lining",
14+
"attribute.oreganized.kinetic_damage": "Kinetic Damage",
1415
"block.oreganized.black_crystal_glass": "Black Crystal Glass",
1516
"block.oreganized.black_crystal_glass_pane": "Black Crystal Glass Pane",
1617
"block.oreganized.blue_crystal_glass": "Blue Crystal Glass",
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"values": [
3+
"oreganized:electrum_axe",
4+
"oreganized:electrum_hoe",
5+
"oreganized:electrum_knife",
6+
"oreganized:electrum_machete",
7+
"oreganized:electrum_pickaxe",
8+
"oreganized:electrum_shovel",
9+
"oreganized:electrum_sword"
10+
]
11+
}

src/main/java/galena/oreganized/Oreganized.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import galena.oreganized.data.ORegistries;
2323
import galena.oreganized.data.OSoundDefinitions;
2424
import galena.oreganized.data.OSpriteSourceProvider;
25+
import galena.oreganized.index.OAttributes;
2526
import galena.oreganized.index.OBlocks;
2627
import galena.oreganized.index.OEffects;
2728
import galena.oreganized.index.OEntityTypes;
@@ -138,6 +139,7 @@ public Oreganized() {
138139
OStructures.STRUCTURES,
139140
OFeatures.FEATURES,
140141
OPaintingVariants.PAINTING_VARIANTS,
142+
OAttributes.ATTRIBUTES,
141143
LOOT_MODIFIERS,
142144
};
143145

src/main/java/galena/oreganized/data/OItemTags.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,16 @@ protected void addTags(HolderLookup.Provider provider) {
104104
tag(SHIELDS_SE).add(OItems.ELECTRUM_SHIELD.get());
105105
tag(MACHETES).add(OItems.ELECTRUM_MACHETE.get());
106106

107+
tag(HAS_KINETIC_DAMAGE).add(
108+
OItems.ELECTRUM_AXE.get(),
109+
OItems.ELECTRUM_HOE.get(),
110+
OItems.ELECTRUM_KNIFE.get(),
111+
OItems.ELECTRUM_MACHETE.get(),
112+
OItems.ELECTRUM_PICKAXE.get(),
113+
OItems.ELECTRUM_SHOVEL.get(),
114+
OItems.ELECTRUM_SWORD.get()
115+
);
116+
107117
tag(OTags.Items.GARGOYLE_SNACK).addTags(INGOTS_SILVER);
108118
}
109119
}

src/main/java/galena/oreganized/data/OLang.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ protected void addTranslations() {
7777
add("death.attack.lead_bolt.item", "%1$s was shot %2$s using %3$s");
7878
add("death.attack.molten_lead", "%1$s refused to let go of the soaring hot metal");
7979

80+
add("attribute.oreganized.kinetic_damage", "Kinetic Damage");
81+
8082
/*
8183
Automatically create translations for blocks and items based on their registry name.
8284
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package galena.oreganized.index;
2+
3+
import galena.oreganized.Oreganized;
4+
import net.minecraft.world.entity.ai.attributes.Attribute;
5+
import net.minecraft.world.entity.ai.attributes.RangedAttribute;
6+
import net.minecraftforge.fml.common.Mod;
7+
import net.minecraftforge.registries.DeferredRegister;
8+
import net.minecraftforge.registries.ForgeRegistries;
9+
import net.minecraftforge.registries.RegistryObject;
10+
11+
@Mod.EventBusSubscriber(modid = Oreganized.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
12+
public class OAttributes {
13+
14+
public static final DeferredRegister<Attribute> ATTRIBUTES = DeferredRegister.create(ForgeRegistries.ATTRIBUTES, Oreganized.MOD_ID);
15+
16+
public static final RegistryObject<Attribute> KINETIC_DAMAGE = register("kinetic_damage", 0.0, 0.0, 30.0);
17+
18+
private static RegistryObject<Attribute> register(String name, double defaultValue, double min, double max) {
19+
return ATTRIBUTES.register(name, () -> new RangedAttribute("attribute.%s.%s".formatted(Oreganized.MOD_ID, name), defaultValue, min, max));
20+
}
21+
22+
}

src/main/java/galena/oreganized/index/OItemTiers.java

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,7 @@
99
public enum OItemTiers implements Tier {
1010
LEAD(0, 150, 7.0F, 1.5F, 8, () -> Ingredient.of(OTags.Items.INGOTS_LEAD)),
1111

12-
/*
13-
Electrum should be better than diamond but not the same as netherite
14-
in terms of toughness and durability, taking on some benefits
15-
from gold tools such as speed and enchantability instead.
16-
17-
Here's the tiers for diamond, gold and netherite for comparison.
18-
19-
DIAMOND(3, 1561, 8.0F, 3.0F, 10, () -> {
20-
return Ingredient.of(Items.DIAMOND);
21-
}),
22-
GOLD(0, 32, 12.0F, 0.0F, 22, () -> {
23-
return Ingredient.of(Items.GOLD_INGOT);
24-
}),
25-
NETHERITE(4, 2031, 9.0F, 4.0F, 15, () -> {
26-
return Ingredient.of(Items.NETHERITE_INGOT);
27-
});
28-
*/
29-
ELECTRUM(4,1561,11.0F,3.0F,18, () -> Ingredient.of(OTags.Items.INGOTS_ELECTRUM));
30-
12+
ELECTRUM(4,1561,8.0F,3.0F,14, () -> Ingredient.of(OTags.Items.INGOTS_ELECTRUM));
3113

3214
private final int level;
3315
private final int durability;

src/main/java/galena/oreganized/index/OItems.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,11 @@ public static Supplier<? extends Item> compat(String modid, Function<Item.Proper
6363
public static final RegistryObject<Item> BUSH_HAMMER = HELPER.createItem("bush_hammer", () -> new BushHammerItem(OItemTiers.LEAD, 2.5F, -2.8F, (new Item.Properties()).stacksTo(1)));
6464
public static final RegistryObject<Item> SCRIBE = HELPER.createItem("scribe", () -> new ScribeItem(new Item.Properties().durability(250)));
6565

66-
public static final RegistryObject<Item> ELECTRUM_SWORD = HELPER.createItem("electrum_sword", () -> new SwordItem(OItemTiers.ELECTRUM, 3, -2.2F, (new Item.Properties())));
67-
public static final RegistryObject<Item> ELECTRUM_SHOVEL = HELPER.createItem("electrum_shovel", () -> new ShovelItem(OItemTiers.ELECTRUM, 1.5F, -2.8F, (new Item.Properties())));
68-
public static final RegistryObject<Item> ELECTRUM_PICKAXE = HELPER.createItem("electrum_pickaxe", () -> new PickaxeItem(OItemTiers.ELECTRUM, 1, -2.6F, (new Item.Properties())));
69-
public static final RegistryObject<Item> ELECTRUM_AXE = HELPER.createItem("electrum_axe", () -> new AxeItem(OItemTiers.ELECTRUM, 6.0F, -2.8F, (new Item.Properties())));
70-
public static final RegistryObject<Item> ELECTRUM_HOE = HELPER.createItem("electrum_hoe", () -> new HoeItem(OItemTiers.ELECTRUM, 0, -2.8F, (new Item.Properties())));
66+
public static final RegistryObject<Item> ELECTRUM_SWORD = HELPER.createItem("electrum_sword", () -> new SwordItem(OItemTiers.ELECTRUM, 3, -2.4F, (new Item.Properties())));
67+
public static final RegistryObject<Item> ELECTRUM_SHOVEL = HELPER.createItem("electrum_shovel", () -> new ShovelItem(OItemTiers.ELECTRUM, 1.5F, -3.0F, (new Item.Properties())));
68+
public static final RegistryObject<Item> ELECTRUM_PICKAXE = HELPER.createItem("electrum_pickaxe", () -> new PickaxeItem(OItemTiers.ELECTRUM, 1, -2.8F, (new Item.Properties())));
69+
public static final RegistryObject<Item> ELECTRUM_AXE = HELPER.createItem("electrum_axe", () -> new AxeItem(OItemTiers.ELECTRUM, 5.0F, -3.0F, (new Item.Properties())));
70+
public static final RegistryObject<Item> ELECTRUM_HOE = HELPER.createItem("electrum_hoe", () -> new HoeItem(OItemTiers.ELECTRUM, -3, 0.0F, (new Item.Properties())));
7171

7272
public static final RegistryObject<Item> ELECTRUM_KNIFE = HELPER.createItem("electrum_knife", compat(FARMERS_DELIGHT_ID, it -> FarmersDelightCompat.KNIFE_FACTORY.apply(it), new Item.Properties()));
7373
public static final RegistryObject<Item> ELECTRUM_SHIELD = HELPER.createItem("electrum_shield", () -> new ShieldItem(new Item.Properties().durability(363)));

src/main/java/galena/oreganized/index/OParticleTypes.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import galena.oreganized.client.particle.LeadShrapnelParticle;
66
import galena.oreganized.client.particle.VengeanceParticleProvider;
77
import net.minecraft.client.Minecraft;
8+
import net.minecraft.client.particle.CritParticle;
89
import net.minecraft.client.particle.ParticleEngine;
910
import net.minecraft.core.particles.ParticleType;
1011
import net.minecraft.core.particles.SimpleParticleType;
@@ -26,6 +27,7 @@ public class OParticleTypes {
2627
public static final RegistryObject<SimpleParticleType> LANDING_LEAD = PARTICLES.register("landing_lead", () -> new SimpleParticleType(true));
2728
public static final RegistryObject<SimpleParticleType> LEAD_SHRAPNEL = PARTICLES.register( "lead_shrapnel", () -> new SimpleParticleType(true));
2829
public static final RegistryObject<SimpleParticleType> VENGEANCE = PARTICLES.register( "vengeance", () -> new SimpleParticleType(true));
30+
public static final RegistryObject<SimpleParticleType> KINETIC_HIT = PARTICLES.register( "kinetic_hit", () -> new SimpleParticleType(true));
2931

3032

3133
@SubscribeEvent
@@ -37,5 +39,6 @@ public static void registerParticleFactories(RegisterParticleProvidersEvent even
3739
engine.register(LANDING_LEAD.get(), CustomDrippingParticle.LeadLandProvider::new);
3840
engine.register(LEAD_SHRAPNEL.get(), LeadShrapnelParticle.Provider::new);
3941
engine.register(VENGEANCE.get(), VengeanceParticleProvider::new);
42+
engine.register(KINETIC_HIT.get(), CritParticle.DamageIndicatorProvider::new);
4043
}
4144
}

0 commit comments

Comments
 (0)