3 Commits
Author SHA1 Message Date
Jenny 86e640ab32 0.15.0 2025-08-17 11:39:19 +02:00
Jenny 958364907d change map color & entity size of TNTs for vanilla parity 2025-06-14 14:11:28 +02:00
Jenny 45937ee33d 1.20.6 port 2025-02-12 16:47:18 +01:00
13 changed files with 74 additions and 68 deletions

No files matched your search

+3 -7
View File
@@ -14,7 +14,7 @@ base {
} }
java { java {
toolchain.languageVersion = JavaLanguageVersion.of(17) toolchain.languageVersion = JavaLanguageVersion.of(21)
} }
minecraft { minecraft {
@@ -77,12 +77,6 @@ minecraft {
// You can set various levels here. // You can set various levels here.
// Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
property 'forge.logging.console.level', 'debug' property 'forge.logging.console.level', 'debug'
mods {
"${mod_id}" {
source sourceSets.main
}
}
} }
client { client {
@@ -136,6 +130,8 @@ repositories {
dependencies { dependencies {
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
implementation('net.sf.jopt-simple:jopt-simple:5.0.4') { version { strictly '5.0.4' } }
} }
// This block of code expands all declared replace properties in the specified resource targets. // This block of code expands all declared replace properties in the specified resource targets.
+6 -6
View File
@@ -1,13 +1,13 @@
# CreateCoredumpOnCrash only works on jdk9+ # CreateCoredumpOnCrash only works on jdk9+
org.gradle.jvmargs=-Xmx3G -XX:-CreateCoredumpOnCrash org.gradle.jvmargs=-Xmx3G -XX:-CreateCoredumpOnCrash
org.gradle.daemon=false org.gradle.daemon=false
minecraft_version=1.20.3 minecraft_version=1.20.6
minecraft_version_range=[1.20.3,1.20.4] minecraft_version_range=[1.20.6]
forge_version=49.0.2 forge_version=50.1.0
forge_version_range=[49,) forge_version_range=[50,)
loader_version_range=[49,) loader_version_range=[50,)
mapping_channel=parchment mapping_channel=parchment
mapping_version=2023.12.31-1.20.3 mapping_version=2024.06.16-1.20.6
mod_id=enhancedexplosives mod_id=enhancedexplosives
mod_name=Enhanced Explosives mod_name=Enhanced Explosives
@@ -39,6 +39,11 @@ public class baseArrow extends AbstractArrow {
return ItemStack.EMPTY; return ItemStack.EMPTY;
} }
@Override
protected ItemStack getDefaultPickupItem() {
return ItemStack.EMPTY;
}
protected Vec3 particlePos(double dist) { protected Vec3 particlePos(double dist) {
Double speed = getDeltaMovement().length(); Double speed = getDeltaMovement().length();
return new Vec3( return new Vec3(
@@ -102,9 +102,10 @@ public abstract class basePrimedTNT extends Entity implements TraceableEntity {
return MovementEmission.NONE; return MovementEmission.NONE;
} }
protected void defineSynchedData() { @Override
this.entityData.define(DATA_FUSE_ID, 80); protected void defineSynchedData(SynchedEntityData.@NotNull Builder builder) {
this.entityData.define(DATA_POWER_ID, 4.0f); builder.define(DATA_FUSE_ID, 80);
builder.define(DATA_POWER_ID, 4.0f);
} }
protected void addAdditionalSaveData(CompoundTag pCompound) { protected void addAdditionalSaveData(CompoundTag pCompound) {
@@ -6,11 +6,14 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.network.syncher.SynchedEntityData;
import net.minecraft.world.entity.*; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.Vec3;
import org.jetbrains.annotations.NotNull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.List; import java.util.List;
@@ -83,9 +86,9 @@ public class blackHolePrimedTNT extends basePrimedTNT {
} }
@Override @Override
protected void defineSynchedData() { protected void defineSynchedData(SynchedEntityData.@NotNull Builder builder) {
this.entityData.define(DATA_SPEED_ID, 4.0f); builder.define(DATA_SPEED_ID, 4.0f);
super.defineSynchedData(); super.defineSynchedData(builder);
} }
@Override @Override
@@ -14,6 +14,7 @@ import net.minecraft.world.entity.projectile.Projectile;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.Vec3;
import org.jetbrains.annotations.NotNull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@@ -72,9 +73,9 @@ public class claymorePrimedTNT extends basePrimedTNT {
} }
@Override @Override
protected void defineSynchedData() { protected void defineSynchedData(SynchedEntityData.@NotNull Builder builder) {
this.entityData.define(DATA_PCOUNT_ID, 16); builder.define(DATA_PCOUNT_ID, 16);
super.defineSynchedData(); super.defineSynchedData(builder);
} }
@Override @Override
@@ -16,6 +16,7 @@ import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.Vec3;
import org.jetbrains.annotations.NotNull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
@@ -116,9 +117,9 @@ public class homingPrimedTNT extends basePrimedTNT {
} }
@Override @Override
protected void defineSynchedData() { protected void defineSynchedData(SynchedEntityData.@NotNull Builder builder) {
this.entityData.define(DATA_SPEED_ID, 4.0f); builder.define(DATA_SPEED_ID, 4.0f);
super.defineSynchedData(); super.defineSynchedData(builder);
} }
@Override @Override
@@ -13,6 +13,7 @@ import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.Vec3;
import org.jetbrains.annotations.NotNull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.List; import java.util.List;
@@ -86,9 +87,9 @@ public class repulsivePrimedTNT extends basePrimedTNT {
} }
@Override @Override
protected void defineSynchedData() { protected void defineSynchedData(SynchedEntityData.@NotNull Builder builder) {
this.entityData.define(DATA_SPEED_ID, 4.0f); builder.define(DATA_SPEED_ID, 4.0f);
super.defineSynchedData(); super.defineSynchedData(builder);
} }
@Override @Override
@@ -11,7 +11,6 @@ import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List; import java.util.List;
@@ -23,12 +22,12 @@ public abstract class ArrowAbstract extends ArrowItem {
} }
@Override @Override
public void appendHoverText(@NotNull ItemStack pStack, @Nullable Level pLevel, @NotNull List<Component> pTooltipComponents, @NotNull TooltipFlag pIsAdvanced) { public void appendHoverText(@NotNull ItemStack pStack, @NotNull TooltipContext pContext, @NotNull List<Component> pTooltipComponents, @NotNull TooltipFlag pTooltipFlag) {
String key = String.format("tooltip.%s.%s", MODID, this); String key = String.format("tooltip.%s.%s", MODID, this);
MutableComponent toolTip = Component.translatable(key); MutableComponent toolTip = Component.translatable(key);
if (!toolTip.getString().equals(key)) { if (!toolTip.getString().equals(key)) {
pTooltipComponents.add(toolTip.withStyle(ChatFormatting.DARK_BLUE)); pTooltipComponents.add(toolTip.withStyle(ChatFormatting.DARK_BLUE));
super.appendHoverText(pStack, pLevel, pTooltipComponents, pIsAdvanced); super.appendHoverText(pStack, pContext, pTooltipComponents, pTooltipFlag);
} }
} }
@@ -7,10 +7,8 @@ import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List; import java.util.List;
@@ -22,12 +20,12 @@ public class BlockItemTooltip extends BlockItem {
} }
@Override @Override
public void appendHoverText(@NotNull ItemStack pStack, @Nullable Level pLevel, @NotNull List<Component> pTooltipComponents, @NotNull TooltipFlag pIsAdvanced) { public void appendHoverText(@NotNull ItemStack pStack, @NotNull TooltipContext pContext, @NotNull List<Component> pTooltipComponents, @NotNull TooltipFlag pTooltipFlag) {
String key = String.format("tooltip.%s.%s", MODID, this); String key = String.format("tooltip.%s.%s", MODID, this);
MutableComponent toolTip = Component.translatable(key); MutableComponent toolTip = Component.translatable(key);
if (!toolTip.getString().equals(key)) { if (!toolTip.getString().equals(key)) {
pTooltipComponents.add(toolTip.withStyle(ChatFormatting.DARK_BLUE)); pTooltipComponents.add(toolTip.withStyle(ChatFormatting.DARK_BLUE));
super.appendHoverText(pStack, pLevel, pTooltipComponents, pIsAdvanced); super.appendHoverText(pStack, pContext, pTooltipComponents, pTooltipFlag);
} }
} }
} }
@@ -13,7 +13,6 @@ import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List; import java.util.List;
@@ -43,12 +42,12 @@ public class Dynamite extends Item {
} }
@Override @Override
public void appendHoverText(@NotNull ItemStack pStack, @Nullable Level pLevel, @NotNull List<Component> pTooltipComponents, @NotNull TooltipFlag pIsAdvanced) { public void appendHoverText(@NotNull ItemStack pStack, @NotNull TooltipContext pContext, @NotNull List<Component> pTooltipComponents, @NotNull TooltipFlag pTooltipFlag) {
String key = String.format("tooltip.%s.%s", MODID, this); String key = String.format("tooltip.%s.%s", MODID, this);
MutableComponent toolTip = Component.translatable(key); MutableComponent toolTip = Component.translatable(key);
if (!toolTip.getString().equals(key)) { if (!toolTip.getString().equals(key)) {
pTooltipComponents.add(toolTip.withStyle(ChatFormatting.DARK_BLUE)); pTooltipComponents.add(toolTip.withStyle(ChatFormatting.DARK_BLUE));
super.appendHoverText(pStack, pLevel, pTooltipComponents, pIsAdvanced); super.appendHoverText(pStack, pContext, pTooltipComponents, pTooltipFlag);
} }
} }
} }
@@ -1,16 +1,18 @@
package com.jenny.enhancedexplosives.items; package com.jenny.enhancedexplosives.items;
import com.jenny.enhancedexplosives.entities.arrows.baseArrow;
import com.jenny.enhancedexplosives.entities.entities; import com.jenny.enhancedexplosives.entities.entities;
import net.minecraft.core.Direction;
import net.minecraft.core.Position; import net.minecraft.core.Position;
import net.minecraft.core.dispenser.AbstractProjectileDispenseBehavior; import net.minecraft.core.dispenser.BlockSource;
import net.minecraft.core.dispenser.DefaultDispenseItemBehavior;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.entity.projectile.Projectile;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.ProjectileItem;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.DispenserBlock; import net.minecraft.world.level.block.DispenserBlock;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.ForgeRegistries;
@@ -33,26 +35,38 @@ public class items {
} }
public static void registerDispenser() { public static void registerDispenser() {
class ArrowDispenseBehaviour extends AbstractProjectileDispenseBehavior { class ArrowDispenseBehaviour extends DefaultDispenseItemBehavior {
private final EntityType<? extends baseArrow> arrowType; private final ArrowAbstract.DispenseConfig dispenseConfig;
private final EntityType<? extends Entity> arrowType;
public ArrowDispenseBehaviour(EntityType<? extends baseArrow> arrow) { public ArrowDispenseBehaviour(@NotNull ProjectileItem arrowItem, EntityType<? extends Entity> arrow) {
this.dispenseConfig = arrowItem.createDispenseConfig();
this.arrowType = arrow; this.arrowType = arrow;
} }
@Override @Override
protected @NotNull Projectile getProjectile(@NotNull Level pLevel, @NotNull Position pPosition, @NotNull ItemStack pStack) { public @NotNull ItemStack execute(@NotNull BlockSource pBlockSource, @NotNull ItemStack pItem) {
baseArrow arrow = arrowType.create(pLevel); Level level = pBlockSource.level();
assert arrow != null; Direction dir = pBlockSource.state().getValue(DispenserBlock.FACING);
arrow.setPos(pPosition.x(), pPosition.y(), pPosition.z()); Position pos = this.dispenseConfig.positionFunction().getDispensePosition(pBlockSource, dir);
arrow.pickup = AbstractArrow.Pickup.ALLOWED;
return arrow; Entity arrowEntity = arrowType.create(level);
assert arrowEntity != null;
arrowEntity.setPos(new Vec3(pos.x(), pos.y(), pos.z()));
arrowEntity.setDeltaMovement(dir.getStepX(), dir.getStepY(), dir.getStepZ());
level.addFreshEntity(arrowEntity);
pItem.shrink(1);
return pItem;
} }
} }
DispenserBlock.registerBehavior(TNT_ARROW.get(), new ArrowDispenseBehaviour(entities.ARROW_TNT.get())); DispenserBlock.registerBehavior(TNT_ARROW.get(), new ArrowDispenseBehaviour(
DispenserBlock.registerBehavior(CONCUSSIVE_ARROW.get(), new ArrowDispenseBehaviour(entities.ARROW_CONCUSSIVE.get())); (ArrowAbstract) TNT_ARROW.get(), entities.ARROW_TNT.get()));
DispenserBlock.registerBehavior(CARPET_ARROW.get(), new ArrowDispenseBehaviour(entities.ARROW_CARPET.get())); DispenserBlock.registerBehavior(CONCUSSIVE_ARROW.get(), new ArrowDispenseBehaviour(
DispenserBlock.registerBehavior(TUNNEL_ARROW.get(), new ArrowDispenseBehaviour(entities.ARROW_TUNNEL.get())); (ArrowAbstract) TNT_ARROW.get(), entities.ARROW_CONCUSSIVE.get()));
DispenserBlock.registerBehavior(CARPET_ARROW.get(), new ArrowDispenseBehaviour(
(ArrowAbstract) CARPET_ARROW.get(), entities.ARROW_CARPET.get()));
DispenserBlock.registerBehavior(TUNNEL_ARROW.get(), new ArrowDispenseBehaviour(
(ArrowAbstract) TUNNEL_ARROW.get(), entities.ARROW_TUNNEL.get()));
} }
} }
-12
View File
@@ -21,16 +21,4 @@ modId = "minecraft"
mandatory = true mandatory = true
versionRange = "${minecraft_version_range}" versionRange = "${minecraft_version_range}"
ordering = "NONE" ordering = "NONE"
side = "BOTH"
[[dependencies."${mod_id}"]]
modId = "gbook"
mandatory = false
versionRange = "[1.7.3,)"
ordering = "BEFORE"
side = "BOTH"
[[dependencies."${mod_id}"]]
modId = "patchouli"
mandatory = false
versionRange = "[1.0.6,)"
ordering = "BEFORE"
side = "BOTH" side = "BOTH"