Skip to content

Commit

Permalink
feat: ported to 1.20.6
Browse files Browse the repository at this point in the history
  • Loading branch information
MichaelHillcox committed Jun 10, 2024
1 parent bf48202 commit d625eb5
Show file tree
Hide file tree
Showing 111 changed files with 555 additions and 627 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
- name: Set up JDK
uses: actions/setup-java@v2
with:
java-version: '17'
java-version: '21'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
- name: Set up JDK
uses: actions/setup-java@v2
with:
java-version: '17'
java-version: '21'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
Expand Down
4 changes: 2 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Just Hammers Changelog

## [84.0.0]
## [20.6.0]

### Changed

- Ported to 1.20.4
- Ported to 1.20.6
44 changes: 22 additions & 22 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
id "architectury-plugin" version "3.4.151"
id "dev.architectury.loom" version "1.4.373" apply false
id "architectury-plugin" version "3.4-SNAPSHOT"
id "dev.architectury.loom" version "1.6-SNAPSHOT" apply false
id "me.modmuss50.mod-publish-plugin" version "0.4.5"
}

Expand Down Expand Up @@ -50,7 +50,7 @@ allprojects {

tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
options.release = 17
options.release = 21
}

java {
Expand All @@ -70,11 +70,11 @@ publishMods {
modLoaders.add("fabric")
}

def forgeOptions = publishOptions {
file = project.provider { project(":forge").tasks.remapJar }.flatMap { it.archiveFile }
displayName = "[FORGE][${minecraft_version}] ${project.name} ${mod_version}"
modLoaders.add("forge")
}
// def forgeOptions = publishOptions {
// file = project.provider { project(":forge").tasks.remapJar }.flatMap { it.archiveFile }
// displayName = "[FORGE][${minecraft_version}] ${project.name} ${mod_version}"
// modLoaders.add("forge")
// }

def neoForge = publishOptions {
file = project.provider { project(":neoforge").tasks.remapJar }.flatMap { it.archiveFile }
Expand Down Expand Up @@ -104,12 +104,12 @@ publishMods {
}
}

curseforge("curseforgeForge") {
from(curseForgeOptions, forgeOptions)
requires {
slug = "architectury-api"
}
}
// curseforge("curseforgeForge") {
// from(curseForgeOptions, forgeOptions)
// requires {
// slug = "architectury-api"
// }
// }

curseforge("curseforgeNeoForge") {
from(curseForgeOptions, neoForge)
Expand All @@ -129,12 +129,12 @@ publishMods {
}
}

modrinth("modrinthForge") {
from(modrinthOptions, forgeOptions)
requires {
slug = "architectury-api"
}
}
// modrinth("modrinthForge") {
// from(modrinthOptions, forgeOptions)
// requires {
// slug = "architectury-api"
// }
// }

modrinth("modrinthNeoforge") {
from(modrinthOptions, neoForge)
Expand All @@ -144,9 +144,9 @@ publishMods {
}

github {
file = project.provider { project(":forge").tasks.remapJar }.flatMap { it.archiveFile }
// file = project.provider { project(":forge").tasks.remapJar }.flatMap { it.archiveFile }
additionalFiles.from project.provider { project(":fabric").tasks.remapJar }.flatMap { it.archiveFile }
additionalFiles.from project.provider { project(":neoforge").tasks.remapJar }.flatMap { it.archiveFile }
file = project.provider { project(":neoforge").tasks.remapJar }.flatMap { it.archiveFile }

announcementTitle = "[${minecraft_version}] Just Hammers ${mod_version}"

Expand Down
2 changes: 0 additions & 2 deletions common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ loom {
accessWidenerPath = file("src/main/resources/justhammers.accesswidener")
}

sourceSets.main.resources.srcDirs += file("src/generated/resources")

dependencies {
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
modApi "dev.architectury:architectury:${rootProject.architectury_version}"
Expand Down

This file was deleted.

This file was deleted.

89 changes: 46 additions & 43 deletions common/src/main/java/pro/mikey/justhammers/HammerItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,14 @@
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.item.*;
import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.structure.BoundingBox;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.HitResult;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.HashSet;
Expand All @@ -31,18 +33,19 @@
public class HammerItem extends PickaxeItem {
private final int depth;
private final int radius;
private TagKey<Block> blocks;

public HammerItem(Tier tier, int radius, int depth, int level) {
super(tier, 1, -2.8f, HammerItems.DEFAULT_PROPERTIES.durability(computeDurability(tier, level)));
super(new WrappedTier(tier, computeDurability(tier, level)),
HammerItems.DEFAULT_PROPERTIES
.durability(computeDurability(tier, level))
.attributes(PickaxeItem.createAttributes(tier, 1, -2.8f)));

this.blocks = BlockTags.MINEABLE_WITH_PICKAXE;
this.depth = depth;
this.radius = radius;
}

@Override
public void appendHoverText(ItemStack itemStack, @Nullable Level level, List<Component> list, TooltipFlag tooltipFlag) {
public void appendHoverText(ItemStack itemStack, TooltipContext tooltipContext, List<Component> list, TooltipFlag tooltipFlag) {
list.add(Component.translatable("justhammers.tooltip.size", this.radius, this.radius, this.depth).withStyle(ChatFormatting.GRAY));

int damage = itemStack.getDamageValue();
Expand Down Expand Up @@ -106,30 +109,8 @@ public float getDestroySpeed(ItemStack itemStack, BlockState blockState) {
return super.getDestroySpeed(itemStack, blockState);
}

// Called on fabric
@Override
public boolean isCorrectToolForDrops(BlockState blockState) {
return actualIsCorrectToolForDrops(blockState);
}

// Called on Forge
public boolean isCorrectToolForDrops(ItemStack stack, BlockState state) {
return actualIsCorrectToolForDrops(state);
}

public boolean actualIsCorrectToolForDrops(BlockState state) {
int i = this.getTier().getLevel();
if (i < 3 && state.is(BlockTags.NEEDS_DIAMOND_TOOL)) {
return false;
} else if (i < 2 && state.is(BlockTags.NEEDS_IRON_TOOL)) {
return false;
} else {
return (i >= 1 || !state.is(BlockTags.NEEDS_STONE_TOOL)) && state.is(this.blocks);
}
}

public void causeAoe(Level level, BlockPos pos, BlockState state, ItemStack hammer, LivingEntity livingEntity) {
if (!(livingEntity instanceof ServerPlayer player)) return;
if (!(livingEntity instanceof ServerPlayer)) return;

if (level.isClientSide || state.getDestroySpeed(level, pos) == 0.0F) {
return;
Expand All @@ -147,18 +128,6 @@ public void causeAoe(Level level, BlockPos pos, BlockState state, ItemStack hamm
}

this.findAndBreakNearBlocks(blockHitResult, pos, hammer, level, livingEntity);

// If the hammer is within 5% of durability remaining, warn the player
if (hammer.getDamageValue() >= hammer.getMaxDamage() * 0.95) {
if (!hammer.getOrCreateTag().contains("has_been_warned")) {
player.sendSystemMessage(Component.translatable("justhammers.tooltip.durability_warning").withStyle(ChatFormatting.RED), true);
hammer.getOrCreateTag().putBoolean("has_been_warned", true);
}
} else {
if (hammer.getOrCreateTag().contains("has_been_warned")) {
hammer.getOrCreateTag().remove("has_been_warned");
}
}
}

public void findAndBreakNearBlocks(BlockHitResult pick, BlockPos blockPos, ItemStack hammerStack, Level level, LivingEntity livingEntity) {
Expand Down Expand Up @@ -189,7 +158,8 @@ public void findAndBreakNearBlocks(BlockHitResult pick, BlockPos blockPos, ItemS
}

// Skips any blocks that require a higher tier hammer
if (!actualIsCorrectToolForDrops(targetState)) {
var incorrectBlocksForDrops = this.getTier().getIncorrectBlocksForDrops();
if (targetState.is(incorrectBlocksForDrops)) {
continue;
}

Expand All @@ -214,9 +184,7 @@ public void findAndBreakNearBlocks(BlockHitResult pick, BlockPos blockPos, ItemS
}

if (damage != 0 && !player.isCreative()) {
hammerStack.hurtAndBreak(damage, livingEntity, (livingEntityx) -> {
livingEntityx.broadcastBreakEvent(EquipmentSlot.MAINHAND);
});
hammerStack.hurtAndBreak(damage, livingEntity, EquipmentSlot.MAINHAND);
}
}

Expand Down Expand Up @@ -250,4 +218,39 @@ public int getDepth() {
public int getRadius() {
return radius;
}

private record WrappedTier(
Tier tier,
int durability
) implements Tier {
@Override
public int getUses() {
return durability;
}

@Override
public float getSpeed() {
return tier.getSpeed();
}

@Override
public float getAttackDamageBonus() {
return tier.getAttackDamageBonus();
}

@Override
public @NotNull TagKey<Block> getIncorrectBlocksForDrops() {
return tier.getIncorrectBlocksForDrops();
}

@Override
public int getEnchantmentValue() {
return tier.getEnchantmentValue();
}

@Override
public @NotNull Ingredient getRepairIngredient() {
return tier.getRepairIngredient();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@ public static void render(ClientLevel world, Camera camera, float v, PoseStack p

// Get the block at the pos
var block = world.getBlockState(blockPos);
if (!hammer.actualIsCorrectToolForDrops(block) || block.is(HammerTags.HAMMER_NO_SMASHY)) {
var incorrectFor = hammer.getTier().getIncorrectBlocksForDrops();
if (block.is(incorrectFor) || block.is(HammerTags.HAMMER_NO_SMASHY)) {
return;
}

Expand Down
Loading

0 comments on commit d625eb5

Please sign in to comment.