Skip to content

Commit

Permalink
add trinkets dependency. Template items
Browse files Browse the repository at this point in the history
  • Loading branch information
DaFuqs committed Feb 2, 2022
1 parent 77454ff commit 95e7c41
Show file tree
Hide file tree
Showing 13 changed files with 204 additions and 4 deletions.
8 changes: 8 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ repositories {
name = "Patchouli" // https://github.com/Vazkii/Patchouli
url = 'https://maven.blamejared.com'
}
maven {
name = "Ladysnake Libs"
url = "https://ladysnake.jfrog.io/artifactory/mods"
}
maven { url 'https://maven.wispforest.io/' } // owo lib
maven { url "https://jitpack.io" }
mavenCentral() // incubus core
Expand Down Expand Up @@ -49,6 +53,10 @@ dependencies {
modCompileOnly "me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}"
modRuntimeOnly "me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}"

// https://github.com/emilyploszaj/trinkets
// https://maven.terraformersmc.com/releases/dev/emi/trinkets/
modImplementation "dev.emi:trinkets:${project.trinkets_version}"

// still breaks outside of dev env still currently.
//modImplementation include("com.github.devs-immortal:Incubus-Core:${project.incubus_core_version}")

Expand Down
1 change: 1 addition & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@ patchouli_version=1.18.1-64-FABRIC
enchantment_descriptions_mc_version=1.18.1
enchantment_descriptions_mod_version=9.0.12
owo_version=0.3.14
trinkets_version=3.2.0
incubus_core_version=1.7.indev4
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package de.dafuqs.spectrum.items.trinkets;

import com.google.common.collect.Multimap;
import de.dafuqs.spectrum.SpectrumCommon;
import dev.emi.trinkets.api.SlotAttributes;
import dev.emi.trinkets.api.SlotReference;
import dev.emi.trinkets.api.TrinketItem;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.attribute.EntityAttribute;
import net.minecraft.entity.attribute.EntityAttributeModifier;
import net.minecraft.entity.attribute.EntityAttributes;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;

import java.util.UUID;

public class BlueTearstoneRingItem extends SpectrumTrinketItem {

private final Identifier UNLOCK_IDENTIFIER = new Identifier(SpectrumCommon.MOD_ID, "midgame/spectrum_midgame");

public BlueTearstoneRingItem(Settings settings) {
super(settings);
}

@Override
protected Identifier getUnlockIdentifier() {
return UNLOCK_IDENTIFIER;
}

public Multimap<EntityAttribute, EntityAttributeModifier> getModifiers(ItemStack stack, SlotReference slot, LivingEntity entity, UUID uuid) {
Multimap<EntityAttribute, EntityAttributeModifier> modifiers = super.getModifiers(stack, slot, entity, uuid);

// +25% movement speed
modifiers.put(EntityAttributes.GENERIC_MOVEMENT_SPEED, new EntityAttributeModifier(uuid, "spectrum:movement_speed", 0.25, EntityAttributeModifier.Operation.MULTIPLY_TOTAL));

return modifiers;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package de.dafuqs.spectrum.items.trinkets;

import com.google.common.collect.Multimap;
import de.dafuqs.spectrum.SpectrumCommon;
import dev.emi.trinkets.api.SlotAttributes;
import dev.emi.trinkets.api.SlotReference;
import dev.emi.trinkets.api.TrinketItem;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.attribute.EntityAttribute;
import net.minecraft.entity.attribute.EntityAttributeModifier;
import net.minecraft.entity.attribute.EntityAttributes;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;

import java.util.UUID;

public class RedTearstoneRingItem extends SpectrumTrinketItem {

private final Identifier UNLOCK_IDENTIFIER = new Identifier(SpectrumCommon.MOD_ID, "midgame/spectrum_midgame");

public RedTearstoneRingItem(Settings settings) {
super(settings);
}

@Override
protected Identifier getUnlockIdentifier() {
return UNLOCK_IDENTIFIER;
}

public Multimap<EntityAttribute, EntityAttributeModifier> getModifiers(ItemStack stack, SlotReference slot, LivingEntity entity, UUID uuid) {
Multimap<EntityAttribute, EntityAttributeModifier> modifiers = super.getModifiers(stack, slot, entity, uuid);

// +20% movement speed
modifiers.put(EntityAttributes.GENERIC_MOVEMENT_SPEED, new EntityAttributeModifier(uuid, "spectrum:movement_speed", 0.2, EntityAttributeModifier.Operation.MULTIPLY_TOTAL));

return modifiers;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package de.dafuqs.spectrum.items.trinkets;

import de.dafuqs.spectrum.Support;
import dev.emi.trinkets.api.SlotReference;
import dev.emi.trinkets.api.TrinketItem;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;

public abstract class SpectrumTrinketItem extends TrinketItem {

public SpectrumTrinketItem(Settings settings) {
super(settings);
}

@Override
public boolean canEquip(ItemStack stack, SlotReference slot, LivingEntity entity) {
if(entity instanceof PlayerEntity playerEntity) {
if(Support.hasAdvancement(playerEntity, getUnlockIdentifier())) {
return super.canEquip(stack, slot, entity);
}
}
return false;
}

protected abstract Identifier getUnlockIdentifier();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package de.dafuqs.spectrum.items.trinkets;

import com.google.common.collect.Multimap;
import de.dafuqs.spectrum.SpectrumCommon;
import dev.emi.trinkets.api.SlotReference;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.attribute.EntityAttribute;
import net.minecraft.entity.attribute.EntityAttributeModifier;
import net.minecraft.entity.attribute.EntityAttributes;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;

import java.util.UUID;

public class SpeedBootsItem extends SpectrumTrinketItem {

private final Identifier UNLOCK_IDENTIFIER = new Identifier(SpectrumCommon.MOD_ID, "midgame/spectrum_midgame");

public SpeedBootsItem(Settings settings) {
super(settings);
}

@Override
protected Identifier getUnlockIdentifier() {
return UNLOCK_IDENTIFIER;
}

public Multimap<EntityAttribute, EntityAttributeModifier> getModifiers(ItemStack stack, SlotReference slot, LivingEntity entity, UUID uuid) {
Multimap<EntityAttribute, EntityAttributeModifier> modifiers = super.getModifiers(stack, slot, entity, uuid);

// +25% movement speed
modifiers.put(EntityAttributes.GENERIC_MOVEMENT_SPEED, new EntityAttributeModifier(uuid, "spectrum:movement_speed", 0.25, EntityAttributeModifier.Operation.MULTIPLY_TOTAL));

return modifiers;
}

}
18 changes: 15 additions & 3 deletions src/main/java/de/dafuqs/spectrum/registries/SpectrumItems.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
import de.dafuqs.spectrum.items.item_frame.InvisibleItemFrameItem;
import de.dafuqs.spectrum.items.magic_items.*;
import de.dafuqs.spectrum.items.tools.*;
import de.dafuqs.spectrum.items.trinkets.BlueTearstoneRingItem;
import de.dafuqs.spectrum.items.trinkets.RedTearstoneRingItem;
import de.dafuqs.spectrum.items.trinkets.SpeedBootsItem;
import de.dafuqs.spectrum.sound.SpectrumSoundEvents;
import io.wispforest.owo.itemgroup.OwoItemSettings;
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
Expand All @@ -24,7 +27,6 @@
import net.minecraft.util.Identifier;
import net.minecraft.util.Rarity;
import net.minecraft.util.registry.Registry;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;

import static de.dafuqs.spectrum.registries.SpectrumFluids.LIQUID_CRYSTAL;
Expand Down Expand Up @@ -202,6 +204,10 @@ public class SpectrumItems {
public static final Item BOTTOMLESS_BUNDLE = new BottomlessBundleItem(generalItemSettingsSingle);
public static final Item KNOWLEDGE_GEM = new KnowledgeGemItem(generalUncommonItemSettingsSingle, 10000);

// Trinkets
public static final Item RED_TEARSTONE_RING = new RedTearstoneRingItem(generalUncommonItemSettingsSingle);
public static final Item BLUE_TEARSTONE_RING = new BlueTearstoneRingItem(generalUncommonItemSettingsSingle);
public static final Item SPEED_BOOTS = new SpeedBootsItem(generalUncommonItemSettingsSingle);

private static void register(String name, Item item) {
Registry.register(Registry.ITEM, new Identifier(SpectrumCommon.MOD_ID, name), item);
Expand All @@ -223,6 +229,7 @@ public static void register() {
registerDecayBottles();
registerPreEnchantedTools();
registerMagicalTools();
registerTrinkets();
registerFluidBuckets();

register("crafting_tablet", CRAFTING_TABLET);
Expand Down Expand Up @@ -353,6 +360,12 @@ public static void registerMagicalTools() {
register("end_portal_cracker", END_PORTAL_CRACKER);
}

public static void registerTrinkets() {
register("red_tearstone_ring", RED_TEARSTONE_RING);
register("blue_tearstone_ring", BLUE_TEARSTONE_RING);
register("speed_boots", SPEED_BOOTS);
}

public static void registerFluidBuckets() {
register("liquid_crystal_bucket", LIQUID_CRYSTAL_BUCKET);
register("mud_bucket", MUD_BUCKET);
Expand Down Expand Up @@ -510,8 +523,7 @@ public static void registerFuelRegistry() {
FuelRegistry.INSTANCE.add(SpectrumBlocks.WHITE_PLANK_SLAB.asItem(), 150);
FuelRegistry.INSTANCE.add(SpectrumBlocks.YELLOW_PLANK_SLAB.asItem(), 150);
}

@Contract(pure = true)

public static Item getGemstoneShard(@NotNull GemstoneColor gemstoneColor) {
switch (gemstoneColor) {
case CYAN -> {
Expand Down
4 changes: 4 additions & 0 deletions src/main/resources/assets/spectrum/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -1021,6 +1021,10 @@
"item.spectrum.bedrock_dust": "Bedrock Dust",
"item.spectrum.midnight_aberration": "Midnight Aberration",

"item.spectrum.red_tearstone_ring": "Red Tearstone Ring",
"item.spectrum.blue_tearstone_ring": "Blue Tearstone Ring",
"item.spectrum.speed_boots": "Seven-League Boots",

"item.spectrum.crafting_tablet": "Crafting Tablet",
"item.spectrum.crafting_tablet.tooltip.no_recipe": "Add items to the crafting grid to set a recipe",
"item.spectrum.crafting_tablet.tooltip.crafting_recipe": "Press use to craft",
Expand Down
10 changes: 10 additions & 0 deletions src/main/resources/data/trinkets/entities/spectrum.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"entities": [
"player"
],
"slots": [
"feet/shoes",
"hand/ring",
"offhand/ring"
]
}
6 changes: 6 additions & 0 deletions src/main/resources/data/trinkets/tags/items/feet/shoes.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"spectrum:speed_boots"
]
}
7 changes: 7 additions & 0 deletions src/main/resources/data/trinkets/tags/items/hand/ring.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"spectrum:red_tearstone_ring",
"spectrum:blue_tearstone_ring"
]
}
7 changes: 7 additions & 0 deletions src/main/resources/data/trinkets/tags/items/offhand/ring.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"spectrum:red_tearstone_ring",
"spectrum:blue_tearstone_ring"
]
}
3 changes: 2 additions & 1 deletion src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@
"java": ">=17",
"cloth-config": ">=6.0.0",
"patchouli": "*",
"owo": ">=0.3.11"
"owo": ">=0.3.11",
"trinkets": ">=3.2.0"
},
"suggests": {
"colored_lights": ">=1.0.3",
Expand Down

0 comments on commit 95e7c41

Please sign in to comment.