Skip to content

Commit

Permalink
WAXING OVERDOSE
Browse files Browse the repository at this point in the history
I made it unwax now yeah
  • Loading branch information
Siuolplex committed Nov 26, 2023
1 parent a02162d commit b65edf9
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,21 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableSet;
import net.minecraft.advancements.Criterion;
import net.minecraft.advancements.critereon.BlockPredicate;
import net.minecraft.advancements.critereon.ItemPredicate;
import net.minecraft.advancements.critereon.ItemUsedOnLocationTrigger;
import net.minecraft.advancements.critereon.LocationPredicate;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.ItemTags;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.block.Block;
import org.violetmoon.zeta.advancement.AdvancementModifier;
import org.violetmoon.zeta.api.IMutableAdvancement;
import org.violetmoon.zeta.module.ZetaModule;

import java.util.Set;

public class WaxModifier extends AdvancementModifier {
public class WaxModifier extends AdvancementModifier {

private static final ResourceLocation TARGET_ON = new ResourceLocation("husbandry/wax_on");
private static final ResourceLocation TARGET_OFF = new ResourceLocation("husbandry/wax_off");
Expand All @@ -34,28 +39,31 @@ public WaxModifier(ZetaModule module, Set<Block> unwaxed, Set<Block> waxed) {
public Set<ResourceLocation> getTargets() {
return ImmutableSet.of(TARGET_ON, TARGET_OFF);
}

//
@Override
public boolean apply(ResourceLocation res, IMutableAdvancement adv) {
String title = res.getPath().replaceAll(".+/", "");
Criterion criterion = adv.getCriterion(title);
if(criterion != null && criterion.getTrigger() instanceof ItemUsedOnLocationTrigger.TriggerInstance iib) {
//fixme Broken - Needs Rewrite - IThundxr
// Set<Block> blockSet = iib.location;
// if(blockSet != null) {
// Set<Block> ourSet = res.equals(TARGET_ON) ? unwaxed : waxed;
//
// if (!addToBlockSet(blockSet, ourSet)) {
// blockSet = new HashSet<>(blockSet);
// iib.location.block.blocks = blockSet;
// addToBlockSet(blockSet, ourSet);
// }
// }
// Yes I know its wordy, yes I know this is stupid. Please forgive me I couldnt make it better.
iib.location.compositePredicates = (res.equals(TARGET_ON)) ? iib.location.compositePredicates
.or(ItemUsedOnLocationTrigger.TriggerInstance.itemUsedOnBlock(
LocationPredicate.Builder.location().setBlock(
BlockPredicate.Builder.block().of(unwaxed).build()),
ItemPredicate.Builder.item().of(Items.HONEYCOMB))
.location.compositePredicates
) : iib.location.compositePredicates
.or(ItemUsedOnLocationTrigger.TriggerInstance.itemUsedOnBlock(
LocationPredicate.Builder.location().setBlock(
BlockPredicate.Builder.block().of(waxed).build()),
ItemPredicate.Builder.item().of(ItemTags.AXES))
.location.compositePredicates);
}

return true;
}


//todo: Im thinking this goes byebye, but we should see if it is somehow still needed.
private static boolean addToBlockSet(Set<Block> blockSet, Set<Block> ourSet) {
try {
blockSet.addAll(ourSet);
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/org/violetmoon/zetaimplforge/ForgeZeta.java
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,7 @@ public void start() {
MinecraftForge.EVENT_BUS.addListener(this::block);
MinecraftForge.EVENT_BUS.addListener(this::blockBreak);
MinecraftForge.EVENT_BUS.addListener(this::blockEntityPlace);
MinecraftForge.EVENT_BUS.addListener(this::blockToolModification);
MinecraftForge.EVENT_BUS.addListener(this::animalTame);
MinecraftForge.EVENT_BUS.addListener(this::bonemeal);
MinecraftForge.EVENT_BUS.addListener(this::entityTeleport);
Expand Down Expand Up @@ -457,6 +458,10 @@ public void blockEntityPlace(BlockEvent.EntityPlaceEvent e) {
playBus.fire(new ForgeZBlock.EntityPlace(e), ZBlock.EntityPlace.class);
}

public void blockToolModification(BlockEvent.BlockToolModificationEvent e) {
playBus.fire(new ForgeZBlock.BlockToolModification(e), ZBlock.BlockToolModification.class);
}

public void animalTame(AnimalTameEvent e) {
playBus.fire(new ForgeZAnimalTame(e), ZAnimalTame.class);
}
Expand Down

0 comments on commit b65edf9

Please sign in to comment.