Merge branch 'main' into mechanical-hammer

This commit is contained in:
thedarkcolour 2024-01-14 18:56:15 -08:00
commit e34894bdf5
10 changed files with 61 additions and 5 deletions

View File

@ -5,7 +5,7 @@ plugins {
id 'org.spongepowered.mixin' version '0.7.+'
}
version = '1.14'
version = '1.15'
group = 'thedarkcolour.exdeorum'
base {
archivesName = 'exdeorum'
@ -139,6 +139,12 @@ repositories {
includeModule("maven.modrinth", "embeddium")
}
}
maven {
url "https://cursemaven.com"
content {
includeGroup "curse.maven"
}
}
}
dependencies {
@ -169,6 +175,7 @@ dependencies {
// testing
//implementation fg.deobf("curse.maven:allthecompressed-514045:4938351")
//implementation fg.deobf("curse.maven:inventorysorter-240633:4655091")
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.2'

View File

@ -1,3 +1,12 @@
## Ex Deorum 1.16
- Added Mechanical Hammer, a machine that uses FE to hammer blocks automatically. Uses 20 FE a tick by default and takes 200 ticks (10 seconds) to hammer an item with a hammer that has no efficiency.
## Ex Deorum 1.15
- Fixed not being able to enchant sieve meshes in the Enchanting Table.
- Fixed Barrels not rendering their contents properly
- Fixed Inventory Sorter by voxcpw voiding items when middle clicking slots in the Mechanical Sieve GUI.
- Improved appearance of witch water to better match water so that the transformation animation looks smoother.
## Ex Deorum 1.14
- Added Mechanical Sieve, a machine that uses FE to sift blocks automatically. Uses 40 FE a tick by default and takes 100 ticks to sift an item with no efficiency enchantment.
- Added `by_hand_only` boolean field to Sieve recipes, which allows modpack makers to add sieve drops that don't drop from the Mechanical Sieve.

View File

@ -22,6 +22,7 @@ import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.tags.FluidTags;
@ -129,6 +130,28 @@ public class BarrelBlockEntity extends EBlockEntity {
this.b = nbt.getShort("b");
}
@Override
public void writeVisualData(FriendlyByteBuf buffer) {
buffer.writeItem(this.item.getStackInSlot(0));
buffer.writeFluidStack(this.tank.getFluid());
buffer.writeShort(this.compost);
buffer.writeFloat(this.progress);
buffer.writeShort(this.r);
buffer.writeShort(this.g);
buffer.writeShort(this.b);
}
@Override
public void readVisualData(FriendlyByteBuf buffer) {
this.item.setStackInSlot(0, buffer.readItem());
this.tank.setFluid(buffer.readFluidStack());
this.compost = buffer.readShort();
this.progress = buffer.readFloat();
this.r = buffer.readShort();
this.g = buffer.readShort();
this.b = buffer.readShort();
}
public boolean isBrewing() {
return this.tank.getFluidAmount() == 1000 && this.progress != 0.0f && !isBurning();
}

View File

@ -81,10 +81,10 @@ public class BarrelRenderer implements BlockEntityRenderer<BarrelBlockEntity> {
if (barrel.isBrewing()) {
float progress = barrel.progress;
// Transition between water color and witch water color (1F0C4C)
r = (int) Mth.lerp(progress, r, 31);
g = (int) Mth.lerp(progress, g, 12);
b = (int) Mth.lerp(progress, b, 76);
// Transition between water color and witch water color (200B41)
r = (int) Mth.lerp(progress, r, 32);
g = (int) Mth.lerp(progress, g, 11);
b = (int) Mth.lerp(progress, b, 65);
}
RenderUtil.renderFlatFluidSprite(buffers, stack, level, pos, y, 2.0f, light, r, g, b, fluid);

View File

@ -18,6 +18,7 @@
package thedarkcolour.exdeorum.compat;
@SuppressWarnings("SpellCheckingInspection")
public class ModIds {
public static final String MINECRAFT = "minecraft";
public static final String THE_ONE_PROBE = "theoneprobe";
@ -41,4 +42,5 @@ public class ModIds {
public static final String PAMS_HARVESTCRAFT_CROPS = "pamhc2crops";
public static final String NUCLEARCRAFT_NEOTERIC = "nuclearcraft";
public static final String JEI = "jei";
public static final String INVENTORY_SORTER = "inventorysorter";
}

View File

@ -57,6 +57,7 @@ import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.fml.loading.FMLEnvironment;
import thedarkcolour.exdeorum.ExDeorum;
import thedarkcolour.exdeorum.blockentity.LavaCrucibleBlockEntity;
import thedarkcolour.exdeorum.blockentity.helper.ItemHelper;
import thedarkcolour.exdeorum.client.CompostColors;
import thedarkcolour.exdeorum.compat.ModIds;
import thedarkcolour.exdeorum.compat.top.ExDeorumTopCompat;
@ -230,6 +231,10 @@ public final class EventHandler {
if (ModList.get().isLoaded(ModIds.THE_ONE_PROBE)) {
InterModComms.sendTo(ModIds.THE_ONE_PROBE, "getTheOneProbe", ExDeorumTopCompat::new);
}
// todo instead of doing this, figure out the real reason sorting voids items
if (ModList.get().isLoaded(ModIds.INVENTORY_SORTER)) {
InterModComms.sendTo(ModIds.INVENTORY_SORTER, "slotblacklist", ItemHelper.Slot.class::getName);
}
}
private static void addReloadListeners(AddReloadListenerEvent event) {

View File

@ -32,4 +32,14 @@ public class MeshItem extends Item {
public boolean canApplyAtEnchantingTable(ItemStack stack, Enchantment enchantment) {
return enchantment == Enchantments.BLOCK_EFFICIENCY || enchantment == Enchantments.BLOCK_FORTUNE;
}
@Override
public boolean isEnchantable(ItemStack pStack) {
return true;
}
@Override
public int getEnchantmentValue() {
return 10;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 B

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB