Skip to content

Commit

Permalink
add convince method for TameableEntity setTamed
Browse files Browse the repository at this point in the history
  • Loading branch information
pisaiah committed May 3, 2024
1 parent a793e42 commit 00a9db2
Show file tree
Hide file tree
Showing 10 changed files with 123 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package me.isaiah.common.cmixin;

public interface IMixinTameableEntity {

/**
* convince method for TameableEntity#setTamed
* second argument only used for 1.20.5+
*/
public void IC$set_tamed(boolean tamed, boolean update_attributes);

}
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ public class MixinList {
" LeavesBlock",
" Cat",
" ItemStack",
" TameableEntity",
"MCVER=1.18,1.19,1.20",
" World_18"
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,9 @@ public interface IEntity extends ICommandSource {

void teleport(double x, double y, double z, float yaw, float pitch);

/**
* @see IMixinTameableEntity#set_tamed
*/
void set_tamed(boolean tame, boolean updateAttrib);

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.UUID;

import me.isaiah.common.cmixin.IMixinEntity;
import me.isaiah.common.cmixin.IMixinTameableEntity;
import me.isaiah.common.entity.EntityType;
import me.isaiah.common.entity.IEntity;
import me.isaiah.common.entity.IRemoveReason;
Expand Down Expand Up @@ -74,5 +75,14 @@ public void teleport(double x, double y, double z, float yaw, float pitch) {
getMC().setBodyYaw(yaw);
// TODO 1.17 getMC().pitch = pitch;
}

@Override
public void set_tamed(boolean tame, boolean updateAttrib) {
if (mc instanceof IMixinTameableEntity) {
((IMixinTameableEntity)mc).IC$set_tamed(tame, updateAttrib);
} else {
// Not TameableEntity
}
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package me.isaiah.common.mixin.R1_18;

import org.spongepowered.asm.mixin.Mixin;

import me.isaiah.common.cmixin.IMixinTameableEntity;
import net.minecraft.entity.passive.TameableEntity;

@Mixin(TameableEntity.class)
public class MixinTameableEntity implements IMixinTameableEntity {

@Override
public void IC$set_tamed(boolean tamed, boolean update_attributes) {
((TameableEntity)(Object)this).setTamed(tamed);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package me.isaiah.common.mixin.R1_19;

import org.spongepowered.asm.mixin.Mixin;

import me.isaiah.common.cmixin.IMixinTameableEntity;
import net.minecraft.entity.passive.TameableEntity;

@Mixin(TameableEntity.class)
public class MixinTameableEntity implements IMixinTameableEntity {

@Override
public void IC$set_tamed(boolean tamed, boolean update_attributes) {
((TameableEntity)(Object)this).setTamed(tamed);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package me.isaiah.common.mixin.R1_19;

import org.spongepowered.asm.mixin.Mixin;

import me.isaiah.common.cmixin.IMixinTameableEntity;
import net.minecraft.entity.passive.TameableEntity;

@Mixin(TameableEntity.class)
public class MixinTameableEntity implements IMixinTameableEntity {

@Override
public void IC$set_tamed(boolean tamed, boolean update_attributes) {
((TameableEntity)(Object)this).setTamed(tamed);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package me.isaiah.common.mixin.R1_20;

import org.spongepowered.asm.mixin.Mixin;

import me.isaiah.common.cmixin.IMixinTameableEntity;
import net.minecraft.entity.passive.TameableEntity;

@Mixin(TameableEntity.class)
public class MixinTameableEntity implements IMixinTameableEntity {

@Override
public void IC$set_tamed(boolean tamed, boolean update_attributes) {
((TameableEntity)(Object)this).setTamed(tamed);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package me.isaiah.common.mixin.R1_20;

import org.spongepowered.asm.mixin.Mixin;

import me.isaiah.common.cmixin.IMixinTameableEntity;
import net.minecraft.entity.passive.TameableEntity;

@Mixin(TameableEntity.class)
public class MixinTameableEntity implements IMixinTameableEntity {

@Override
public void IC$set_tamed(boolean tamed, boolean update_attributes) {
((TameableEntity)(Object)this).setTamed(tamed);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package me.isaiah.common.mixin.R1_20;

import org.spongepowered.asm.mixin.Mixin;

import me.isaiah.common.cmixin.IMixinTameableEntity;
import net.minecraft.entity.passive.TameableEntity;

@Mixin(TameableEntity.class)
public class MixinTameableEntity implements IMixinTameableEntity {

@Override
public void IC$set_tamed(boolean tamed, boolean update_attributes) {
((TameableEntity)(Object)this).setTamed(tamed, update_attributes);
}

}

0 comments on commit 00a9db2

Please sign in to comment.