Skip to content

Commit

Permalink
Merge bowstrings and bindings into a single enum
Browse files Browse the repository at this point in the history
Nice thing about the new material stat loadables is we don't need unique class types for each stat type anymore, so don't do that
  • Loading branch information
KnightMiner committed Apr 26, 2024
1 parent 9dbbc3e commit 4d58e88
Show file tree
Hide file tree
Showing 20 changed files with 127 additions and 155 deletions.
Expand Up @@ -21,13 +21,12 @@
import slimeknights.tconstruct.library.client.book.sectiontransformer.materials.TierRangeMaterialSectionTransformer;
import slimeknights.tconstruct.library.client.book.sectiontransformer.materials.TieredMaterialSectionTransformer;
import slimeknights.tconstruct.shared.item.TinkerBookItem.BookType;
import slimeknights.tconstruct.tools.stats.BindingMaterialStats;
import slimeknights.tconstruct.tools.stats.BowstringMaterialStats;
import slimeknights.tconstruct.tools.stats.GripMaterialStats;
import slimeknights.tconstruct.tools.stats.HandleMaterialStats;
import slimeknights.tconstruct.tools.stats.HeadMaterialStats;
import slimeknights.tconstruct.tools.stats.LimbMaterialStats;
import slimeknights.tconstruct.tools.stats.SkullStats;
import slimeknights.tconstruct.tools.stats.StatlessMaterialStats;

import static slimeknights.tconstruct.library.TinkerBookIDs.ENCYCLOPEDIA_ID;
import static slimeknights.tconstruct.library.TinkerBookIDs.FANTASTIC_FOUNDRY_ID;
Expand Down Expand Up @@ -57,8 +56,8 @@ public static void initBook() {
BookLoader.registerPageType(ContentModifier.ID, ContentModifier.class);
BookLoader.registerPageType(TooltipShowcaseContent.ID, TooltipShowcaseContent.class);

TierRangeMaterialSectionTransformer.registerMaterialType(TConstruct.getResource("melee_harvest"), ContentMaterial::new, HeadMaterialStats.ID, HandleMaterialStats.ID, BindingMaterialStats.ID);
TierRangeMaterialSectionTransformer.registerMaterialType(TConstruct.getResource("ranged"), RangedMaterialContent::new, LimbMaterialStats.ID, GripMaterialStats.ID, BowstringMaterialStats.ID);
TierRangeMaterialSectionTransformer.registerMaterialType(TConstruct.getResource("melee_harvest"), ContentMaterial::new, HeadMaterialStats.ID, HandleMaterialStats.ID, StatlessMaterialStats.BINDING.getIdentifier());
TierRangeMaterialSectionTransformer.registerMaterialType(TConstruct.getResource("ranged"), RangedMaterialContent::new, LimbMaterialStats.ID, GripMaterialStats.ID, StatlessMaterialStats.BOWSTRING.getIdentifier());
TierRangeMaterialSectionTransformer.registerMaterialType(TConstruct.getResource("skull"), ContentMaterialSkull::new, SkullStats.ID);

// add transformers that load modifiers from tags
Expand Down
Expand Up @@ -5,9 +5,9 @@
import slimeknights.tconstruct.library.materials.definition.MaterialId;
import slimeknights.tconstruct.library.materials.definition.MaterialVariantId;
import slimeknights.tconstruct.library.materials.stats.MaterialStatsId;
import slimeknights.tconstruct.tools.stats.BindingMaterialStats;
import slimeknights.tconstruct.tools.stats.HandleMaterialStats;
import slimeknights.tconstruct.tools.stats.HeadMaterialStats;
import slimeknights.tconstruct.tools.stats.StatlessMaterialStats;

/**
* Content page for melee/harvest materials
Expand All @@ -31,7 +31,7 @@ protected MaterialStatsId getStatType(int index) {
return switch (index) {
case 0 -> HeadMaterialStats.ID;
case 1 -> HandleMaterialStats.ID;
case 2 -> BindingMaterialStats.ID;
case 2 -> StatlessMaterialStats.BINDING.getIdentifier();
default -> null;
};
}
Expand All @@ -43,6 +43,6 @@ protected String getTextKey(MaterialId material) {

@Override
protected boolean supportsStatType(MaterialStatsId statsId) {
return statsId.equals(HeadMaterialStats.ID) || statsId.equals(HandleMaterialStats.ID) || statsId.equals(BindingMaterialStats.ID);
return statsId.equals(HeadMaterialStats.ID) || statsId.equals(HandleMaterialStats.ID) || statsId.equals(StatlessMaterialStats.BINDING.getIdentifier());
}
}
Expand Up @@ -6,9 +6,9 @@
import slimeknights.tconstruct.library.materials.definition.MaterialVariantId;
import slimeknights.tconstruct.library.materials.stats.MaterialStatsId;
import slimeknights.tconstruct.library.utils.Util;
import slimeknights.tconstruct.tools.stats.BowstringMaterialStats;
import slimeknights.tconstruct.tools.stats.GripMaterialStats;
import slimeknights.tconstruct.tools.stats.LimbMaterialStats;
import slimeknights.tconstruct.tools.stats.StatlessMaterialStats;

import javax.annotation.Nullable;

Expand All @@ -31,7 +31,7 @@ protected MaterialStatsId getStatType(int index) {
return switch (index) {
case 0 -> LimbMaterialStats.ID;
case 1 -> GripMaterialStats.ID;
case 2 -> BowstringMaterialStats.ID;
case 2 -> StatlessMaterialStats.BOWSTRING.getIdentifier();
default -> null;
};
}
Expand All @@ -50,6 +50,6 @@ protected String getTextKey(MaterialId material) {

@Override
protected boolean supportsStatType(MaterialStatsId statsId) {
return statsId.equals(LimbMaterialStats.ID) || statsId.equals(GripMaterialStats.ID) || statsId.equals(BowstringMaterialStats.ID);
return statsId.equals(LimbMaterialStats.ID) || statsId.equals(GripMaterialStats.ID) || statsId.equals(StatlessMaterialStats.BOWSTRING.getIdentifier());
}
}
Expand Up @@ -22,9 +22,9 @@
import slimeknights.tconstruct.library.materials.definition.MaterialVariantId;
import slimeknights.tconstruct.library.materials.stats.IMaterialStats;
import slimeknights.tconstruct.library.materials.stats.MaterialStatsId;
import slimeknights.tconstruct.tools.stats.BindingMaterialStats;
import slimeknights.tconstruct.tools.stats.HandleMaterialStats;
import slimeknights.tconstruct.tools.stats.HeadMaterialStats;
import slimeknights.tconstruct.tools.stats.StatlessMaterialStats;

import javax.annotation.Nullable;
import java.util.HashMap;
Expand All @@ -38,7 +38,7 @@
* Section transformer to show a range of materials tiers in the book
*/
public class TierRangeMaterialSectionTransformer extends BookTransformer {
private static final Set<MaterialStatsId> MELEE_HARVEST = ImmutableSet.of(HeadMaterialStats.ID, HandleMaterialStats.ID, BindingMaterialStats.ID);
private static final Set<MaterialStatsId> MELEE_HARVEST = ImmutableSet.of(HeadMaterialStats.ID, HandleMaterialStats.ID, StatlessMaterialStats.BINDING.getIdentifier());
private static final ResourceLocation KEY = TConstruct.getResource("material_tier");

private static final Map<ResourceLocation,MaterialType> MATERIAL_TYPES = new HashMap<>();
Expand Down
Expand Up @@ -5,16 +5,16 @@
import slimeknights.tconstruct.library.materials.definition.IMaterial;
import slimeknights.tconstruct.library.materials.stats.IMaterialStats;
import slimeknights.tconstruct.library.materials.stats.MaterialStatsId;
import slimeknights.tconstruct.tools.stats.BindingMaterialStats;
import slimeknights.tconstruct.tools.stats.HandleMaterialStats;
import slimeknights.tconstruct.tools.stats.HeadMaterialStats;
import slimeknights.tconstruct.tools.stats.StatlessMaterialStats;

import java.util.Set;

/** @deprecated use {@link TierRangeMaterialSectionTransformer} */
@Deprecated
public class TieredMaterialSectionTransformer extends AbstractMaterialSectionTransformer {
private static final Set<MaterialStatsId> VISIBLE_STATS = ImmutableSet.of(HeadMaterialStats.ID, HandleMaterialStats.ID, BindingMaterialStats.ID);
private static final Set<MaterialStatsId> VISIBLE_STATS = ImmutableSet.of(HeadMaterialStats.ID, HandleMaterialStats.ID, StatlessMaterialStats.BINDING.getIdentifier());

private final int materialTier;
public TieredMaterialSectionTransformer(String sectionName, int materialTier, boolean detailed) {
Expand Down
Expand Up @@ -15,12 +15,12 @@
import slimeknights.tconstruct.library.materials.definition.MaterialId;
import slimeknights.tconstruct.library.materials.definition.MaterialVariantId;
import slimeknights.tconstruct.library.materials.stats.MaterialStatsId;
import slimeknights.tconstruct.tools.stats.BindingMaterialStats;
import slimeknights.tconstruct.tools.stats.GripMaterialStats;
import slimeknights.tconstruct.tools.stats.HandleMaterialStats;
import slimeknights.tconstruct.tools.stats.HeadMaterialStats;
import slimeknights.tconstruct.tools.stats.LimbMaterialStats;
import slimeknights.tconstruct.tools.stats.RepairKitStats;
import slimeknights.tconstruct.tools.stats.StatlessMaterialStats;

import javax.annotation.Nullable;
import java.util.HashMap;
Expand Down Expand Up @@ -151,7 +151,7 @@ public MaterialSpriteInfoBuilder statType(MaterialStatsId... statsId) {
public MaterialSpriteInfoBuilder meleeHarvest() {
statType(HeadMaterialStats.ID);
statType(HandleMaterialStats.ID);
statType(BindingMaterialStats.ID);
statType(StatlessMaterialStats.BINDING.getIdentifier());
statType(RepairKitStats.ID);
return this;
}
Expand Down
Expand Up @@ -7,12 +7,11 @@
import net.minecraft.resources.ResourceLocation;
import slimeknights.tconstruct.library.client.data.util.AbstractSpriteReader;
import slimeknights.tconstruct.library.materials.stats.MaterialStatsId;
import slimeknights.tconstruct.tools.stats.BindingMaterialStats;
import slimeknights.tconstruct.tools.stats.BowstringMaterialStats;
import slimeknights.tconstruct.tools.stats.GripMaterialStats;
import slimeknights.tconstruct.tools.stats.HandleMaterialStats;
import slimeknights.tconstruct.tools.stats.HeadMaterialStats;
import slimeknights.tconstruct.tools.stats.LimbMaterialStats;
import slimeknights.tconstruct.tools.stats.StatlessMaterialStats;

import javax.annotation.Nullable;
import java.util.ArrayList;
Expand Down Expand Up @@ -91,7 +90,7 @@ protected void addHandle(String name) {

/** Adds a sprite requiring extra stats */
protected void addBinding(String name) {
addPart(name, BindingMaterialStats.ID);
addPart(name, StatlessMaterialStats.BINDING.getIdentifier());
}

/** Adds a sprite requiring head stats */
Expand All @@ -101,7 +100,7 @@ protected void addLimb(String name) {

/** Adds a sprite requiring head stats */
protected void addBowstring(String name) {
addPart(name, BowstringMaterialStats.ID);
addPart(name, StatlessMaterialStats.BOWSTRING.getIdentifier());
}

/** Create a builder for tool sprites */
Expand Down Expand Up @@ -212,7 +211,7 @@ public ToolSpriteBuilder addHandle(String name) {

/** Adds a sprite requiring extra stats */
public ToolSpriteBuilder addBinding(String name) {
return addPart(name, BindingMaterialStats.ID);
return addPart(name, StatlessMaterialStats.BINDING.getIdentifier());
}

/** Adds a sprite requiring limb stats */
Expand All @@ -227,12 +226,12 @@ public ToolSpriteBuilder addGrip(String name) {

/** Adds a sprite requiring bowstring stats */
public ToolSpriteBuilder addBowstring(String name) {
return addPart(name, BowstringMaterialStats.ID);
return addPart(name, StatlessMaterialStats.BOWSTRING.getIdentifier());
}

/** Adds a breakable sprite requiring bowstring stats */
public ToolSpriteBuilder addBreakableBowstring(String name) {
return addBreakablePart(name, BowstringMaterialStats.ID);
return addBreakablePart(name, StatlessMaterialStats.BOWSTRING.getIdentifier());
}

/** Adds sprites for large parts as well */
Expand Down
Expand Up @@ -20,14 +20,13 @@
import slimeknights.tconstruct.library.materials.stats.UpdateMaterialStatsPacket;
import slimeknights.tconstruct.library.materials.traits.MaterialTraitsManager;
import slimeknights.tconstruct.library.materials.traits.UpdateMaterialTraitsPacket;
import slimeknights.tconstruct.tools.stats.BindingMaterialStats;
import slimeknights.tconstruct.tools.stats.BowstringMaterialStats;
import slimeknights.tconstruct.tools.stats.GripMaterialStats;
import slimeknights.tconstruct.tools.stats.HandleMaterialStats;
import slimeknights.tconstruct.tools.stats.HeadMaterialStats;
import slimeknights.tconstruct.tools.stats.LimbMaterialStats;
import slimeknights.tconstruct.tools.stats.RepairKitStats;
import slimeknights.tconstruct.tools.stats.SkullStats;
import slimeknights.tconstruct.tools.stats.StatlessMaterialStats;

import java.util.Collection;
import java.util.HashMap;
Expand Down Expand Up @@ -100,11 +99,11 @@ public MaterialRegistry() {
// melee harvest
registry.registerStatType(HeadMaterialStats.TYPE, MELEE_HARVEST);
registry.registerStatType(HandleMaterialStats.TYPE, MELEE_HARVEST);
registry.registerStatType(BindingMaterialStats.TYPE, MELEE_HARVEST);
registry.registerStatType(StatlessMaterialStats.BINDING.getType(), MELEE_HARVEST);
// ranged
registry.registerStatType(LimbMaterialStats.TYPE, RANGED);
registry.registerStatType(GripMaterialStats.TYPE, RANGED);
registry.registerStatType(BowstringMaterialStats.TYPE, RANGED);
registry.registerStatType(StatlessMaterialStats.BOWSTRING.getType(), RANGED);
// misc
registry.registerStatType(RepairKitStats.TYPE);
registry.registerStatType(SkullStats.TYPE);
Expand Down
Expand Up @@ -11,12 +11,11 @@
import slimeknights.tconstruct.library.materials.definition.IMaterial;
import slimeknights.tconstruct.library.tools.part.ToolPartItem;
import slimeknights.tconstruct.tools.item.RepairKitItem;
import slimeknights.tconstruct.tools.stats.BindingMaterialStats;
import slimeknights.tconstruct.tools.stats.BowstringMaterialStats;
import slimeknights.tconstruct.tools.stats.GripMaterialStats;
import slimeknights.tconstruct.tools.stats.HandleMaterialStats;
import slimeknights.tconstruct.tools.stats.HeadMaterialStats;
import slimeknights.tconstruct.tools.stats.LimbMaterialStats;
import slimeknights.tconstruct.tools.stats.StatlessMaterialStats;

import java.util.ArrayList;
import java.util.List;
Expand Down Expand Up @@ -50,9 +49,9 @@ public final class TinkerToolParts extends TinkerModule {
// bows
public static final ItemObject<ToolPartItem> bowLimb = ITEMS.register("bow_limb", () -> new ToolPartItem(PARTS_PROPS, LimbMaterialStats.ID));
public static final ItemObject<ToolPartItem> bowGrip = ITEMS.register("bow_grip", () -> new ToolPartItem(PARTS_PROPS, GripMaterialStats.ID));
public static final ItemObject<ToolPartItem> bowstring = ITEMS.register("bowstring", () -> new ToolPartItem(PARTS_PROPS, BowstringMaterialStats.ID));
public static final ItemObject<ToolPartItem> bowstring = ITEMS.register("bowstring", () -> new ToolPartItem(PARTS_PROPS, StatlessMaterialStats.BOWSTRING.getIdentifier()));
// other parts
public static final ItemObject<ToolPartItem> toolBinding = ITEMS.register("tool_binding", () -> new ToolPartItem(PARTS_PROPS, BindingMaterialStats.ID));
public static final ItemObject<ToolPartItem> toolBinding = ITEMS.register("tool_binding", () -> new ToolPartItem(PARTS_PROPS, StatlessMaterialStats.BINDING.getIdentifier()));
public static final ItemObject<ToolPartItem> toolHandle = ITEMS.register("tool_handle", () -> new ToolPartItem(PARTS_PROPS, HandleMaterialStats.ID));
public static final ItemObject<ToolPartItem> toughHandle = ITEMS.register("tough_handle", () -> new ToolPartItem(PARTS_PROPS, HandleMaterialStats.ID));
}

0 comments on commit 4d58e88

Please sign in to comment.