1212import gregtech .api .unification .material .info .MaterialIconSet ;
1313import gregtech .api .unification .material .properties .BlastProperty ;
1414import gregtech .api .unification .material .properties .DustProperty ;
15+ import gregtech .api .unification .material .properties .ExtraToolProperty ;
1516import gregtech .api .unification .material .properties .FluidPipeProperties ;
1617import gregtech .api .unification .material .properties .FluidProperty ;
1718import gregtech .api .unification .material .properties .GemProperty ;
1819import gregtech .api .unification .material .properties .IMaterialProperty ;
1920import gregtech .api .unification .material .properties .IngotProperty ;
2021import gregtech .api .unification .material .properties .ItemPipeProperties ;
2122import gregtech .api .unification .material .properties .MaterialProperties ;
23+ import gregtech .api .unification .material .properties .MaterialToolProperty ;
2224import gregtech .api .unification .material .properties .OreProperty ;
2325import gregtech .api .unification .material .properties .PolymerProperty ;
2426import gregtech .api .unification .material .properties .PropertyKey ;
2527import gregtech .api .unification .material .properties .RotorProperty ;
26- import gregtech .api .unification .material .properties .ToolProperty ;
2728import gregtech .api .unification .material .properties .WireProperties ;
2829import gregtech .api .unification .material .properties .WoodProperty ;
2930import gregtech .api .unification .material .registry .MaterialRegistry ;
@@ -637,7 +638,7 @@ public Builder dust() {
637638 * Will be created with no Burn Time (Furnace Fuel).
638639 *
639640 * @param harvestLevel The Harvest Level of this block for Mining.<br>
640- * If this Material also has a {@link ToolProperty }, this value will
641+ * If this Material also has a {@link MaterialToolProperty }, this value will
641642 * also be used to determine the tool's Mining Level.
642643 * @throws IllegalArgumentException If a {@link DustProperty} has already been added to this Material.
643644 */
@@ -649,7 +650,7 @@ public Builder dust(int harvestLevel) {
649650 * Add a {@link DustProperty} to this Material.
650651 *
651652 * @param harvestLevel The Harvest Level of this block for Mining.<br>
652- * If this Material also has a {@link ToolProperty }, this value will
653+ * If this Material also has a {@link MaterialToolProperty }, this value will
653654 * also be used to determine the tool's Mining Level.
654655 * @param burnTime The Burn Time (in ticks) of this Material as a Furnace Fuel.
655656 * @throws IllegalArgumentException If a {@link DustProperty} has already been added to this Material.
@@ -672,7 +673,7 @@ public Builder wood() {
672673 * Will be created with a Burn Time of 300 (Furnace Fuel).
673674 *
674675 * @param harvestLevel The Harvest Level of this block for Mining.<br>
675- * If this Material also has a {@link ToolProperty }, this value will
676+ * If this Material also has a {@link MaterialToolProperty }, this value will
676677 * also be used to determine the tool's Mining Level.
677678 */
678679 public Builder wood (int harvestLevel ) {
@@ -683,7 +684,7 @@ public Builder wood(int harvestLevel) {
683684 * Add a {@link WoodProperty} to this Material.
684685 *
685686 * @param harvestLevel The Harvest Level of this block for Mining.<br>
686- * If this Material also has a {@link ToolProperty }, this value will
687+ * If this Material also has a {@link MaterialToolProperty }, this value will
687688 * also be used to determine the tool's Mining Level.
688689 * @param burnTime The Burn Time (in ticks) of this Material as a Furnace Fuel.
689690 */
@@ -711,7 +712,7 @@ public Builder ingot() {
711712 * Will automatically add a {@link DustProperty} to this Material if it does not already have one.
712713 *
713714 * @param harvestLevel The Harvest Level of this block for Mining. 2 will make it require a iron tool.<br>
714- * If this Material also has a {@link ToolProperty }, this value will
715+ * If this Material also has a {@link MaterialToolProperty }, this value will
715716 * also be used to determine the tool's Mining level (-1). So 2 will make the tool harvest
716717 * diamonds.<br>
717718 * If this Material already had a Harvest Level defined, it will be overridden.
@@ -726,7 +727,7 @@ public Builder ingot(int harvestLevel) {
726727 * Will automatically add a {@link DustProperty} to this Material if it does not already have one.
727728 *
728729 * @param harvestLevel The Harvest Level of this block for Mining. 2 will make it require a iron tool.<br>
729- * If this Material also has a {@link ToolProperty }, this value will
730+ * If this Material also has a {@link MaterialToolProperty }, this value will
730731 * also be used to determine the tool's Mining level (-1). So 2 will make the tool harvest
731732 * diamonds.<br>
732733 * If this Material already had a Harvest Level defined, it will be overridden.
@@ -763,7 +764,7 @@ public Builder gem() {
763764 * Will automatically add a {@link DustProperty} to this Material if it does not already have one.
764765 *
765766 * @param harvestLevel The Harvest Level of this block for Mining.<br>
766- * If this Material also has a {@link ToolProperty }, this value will
767+ * If this Material also has a {@link MaterialToolProperty }, this value will
767768 * also be used to determine the tool's Mining level.<br>
768769 * If this Material already had a Harvest Level defined, it will be overridden.
769770 * @throws IllegalArgumentException If a {@link GemProperty} has already been added to this Material.
@@ -777,7 +778,7 @@ public Builder gem(int harvestLevel) {
777778 * Will automatically add a {@link DustProperty} to this Material if it does not already have one.
778779 *
779780 * @param harvestLevel The Harvest Level of this block for Mining.<br>
780- * If this Material also has a {@link ToolProperty }, this value will
781+ * If this Material also has a {@link MaterialToolProperty }, this value will
781782 * also be used to determine the tool's Mining level.<br>
782783 * If this Material already had a Harvest Level defined, it will be overridden.
783784 * @param burnTime The Burn Time (in ticks) of this Material as a Furnace Fuel.<br>
@@ -812,7 +813,7 @@ public Builder polymer() {
812813 * Will have a burn time of 0
813814 *
814815 * @param harvestLevel The Harvest Level of this block for Mining.<br>
815- * If this Material also has a {@link ToolProperty }, this value will
816+ * If this Material also has a {@link MaterialToolProperty }, this value will
816817 * also be used to determine the tool's Mining level.<br>
817818 * If this Material already had a Harvest Level defined, it will be overridden.
818819 * @throws IllegalArgumentException If an {@link PolymerProperty} has already been added to this Material.
@@ -929,10 +930,19 @@ public Builder element(Element element) {
929930
930931 /**
931932 * Replaced the old toolStats methods which took many parameters.
932- * Use {@link ToolProperty .Builder} instead to create a Tool Property.
933+ * Use {@link MaterialToolProperty .Builder} instead to create a Tool Property.
933934 */
934- public Builder toolStats (ToolProperty toolProperty ) {
935- properties .setProperty (PropertyKey .TOOL , toolProperty );
935+ public Builder toolStats (MaterialToolProperty materialToolProperty ) {
936+ properties .setProperty (PropertyKey .TOOL , materialToolProperty );
937+ return this ;
938+ }
939+
940+ /**
941+ * Use {@link ExtraToolProperty.Builder} to create a Tool Property Override.
942+ */
943+ public Builder overrideToolStats (String toolId , ExtraToolProperty .OverrideToolProperty toolProperty ) {
944+ properties .ensureSet (PropertyKey .EXTRATOOL );
945+ properties .getProperty (PropertyKey .EXTRATOOL ).setOverrideProperty (toolId , toolProperty );
936946 return this ;
937947 }
938948
0 commit comments