Skip to content

Commit 8577ed6

Browse files
committed
Version 1.1.1
Reach trait now affects attack range... that was more difficult than it should be Fixed 'empty' melting recipes for Valkyrie Armour
1 parent 5baa9d4 commit 8577ed6

File tree

7 files changed

+132
-19
lines changed

7 files changed

+132
-19
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ apply plugin: 'net.minecraftforge.gradle.forge'
1111
//Only edit below this line, the above code adds and enables the necessary things for Forge to be setup.
1212

1313

14-
version = "1.1.0"
14+
version = "1.1.1"
1515
group = "shnupbups.tinkersaether" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
1616
archivesBaseName = "tinkersaether"
1717

src/main/java/shnupbups/tinkersaether/TinkersAether.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,19 @@
1010
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
1111
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
1212
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
13+
import net.minecraftforge.fml.common.network.NetworkRegistry;
14+
import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper;
1315
import net.minecraftforge.fml.common.registry.EntityEntry;
1416
import net.minecraftforge.fml.common.registry.EntityRegistry;
17+
import net.minecraftforge.fml.relauncher.Side;
1518
import org.apache.logging.log4j.LogManager;
1619
import org.apache.logging.log4j.Logger;
1720
import shnupbups.tinkersaether.config.TAConfig;
1821
import shnupbups.tinkersaether.entities.EntityDart;
1922
import shnupbups.tinkersaether.misc.MiscUtils;
2023
import shnupbups.tinkersaether.modules.ModuleBase;
24+
import shnupbups.tinkersaether.network.HandlerExtendedAttack;
25+
import shnupbups.tinkersaether.network.MessageExtendedAttack;
2126
import shnupbups.tinkersaether.proxy.CommonProxy;
2227
import slimeknights.tconstruct.library.materials.BowMaterialStats;
2328
import slimeknights.tconstruct.tools.TinkerMaterials;
@@ -26,14 +31,16 @@
2631
public class TinkersAether {
2732
public static final String modid = "tinkersaether";
2833
public static final String name = "MoreTiC";
29-
public static final String version = "1.1.0";
34+
public static final String version = "1.1.1";
3035

3136
@Mod.Instance(modid)
3237
public static TinkersAether instance;
3338

3439
@SidedProxy(serverSide = "shnupbups.tinkersaether.proxy.CommonProxy", clientSide = "shnupbups.tinkersaether.proxy.ClientProxy")
3540
public static CommonProxy proxy;
3641

42+
public static SimpleNetworkWrapper network = NetworkRegistry.INSTANCE.newSimpleChannel(modid+"network");
43+
3744
public static final Logger logger = LogManager.getLogger(modid);
3845

3946
public static BowMaterialStats plzNo = new BowMaterialStats(0.2f, 0.4f, -1f);
@@ -45,16 +52,19 @@ public TinkersAether() {
4552

4653
@Mod.EventHandler
4754
public void preInit(FMLPreInitializationEvent event) {
48-
ModuleBase.aether.preInit();
55+
ModuleBase.base.preInit();
4956
}
5057

5158
@Mod.EventHandler
5259
public void init(FMLInitializationEvent event) {
60+
int packet = 0;
61+
network.registerMessage(HandlerExtendedAttack.class,MessageExtendedAttack.class, packet++, Side.SERVER);
62+
5363
if(TAConfig.darts) {
5464
proxy.initToolGuis();
5565
}
5666

57-
ModuleBase.aether.init();
67+
ModuleBase.base.init();
5868

5969
if(TAConfig.skyroot) {
6070
MiscUtils.displace(TinkerMaterials.wood.getIdentifier()); // Skyroot needs priority
@@ -63,7 +73,7 @@ public void init(FMLInitializationEvent event) {
6373

6474
@Mod.EventHandler
6575
public void postInit(FMLPostInitializationEvent event) {
66-
76+
ModuleBase.base.postInit();
6777
}
6878

6979
@SubscribeEvent

src/main/java/shnupbups/tinkersaether/modules/ModuleBase.java

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package shnupbups.tinkersaether.modules;
22

3-
import com.legacy.aether.items.ItemsAether;
43
import net.minecraft.block.Block;
54
import net.minecraft.item.Item;
65
import net.minecraft.item.ItemBlock;
@@ -31,7 +30,7 @@
3130

3231
@Mod.EventBusSubscriber(modid = TinkersAether.modid)
3332
public class ModuleBase {
34-
public static ModuleBase aether = new ModuleBase();
33+
public static ModuleBase base = new ModuleBase();
3534

3635
public ModuleBase() {
3736
MinecraftForge.EVENT_BUS.register(this);
@@ -178,21 +177,15 @@ public void init() {
178177

179178
TinkersAether.logger.info("Base Module - OreDict Registered");
180179

180+
TinkersAether.logger.info("Base Module - End Init");
181+
}
182+
183+
public void postInit() {
181184
if(TAConfig.gravitite) {
182185
TinkerRegistry.registerMelting("blockEnchantedGravitite", gravitite.getFluid(), Material.VALUE_Ingot);
183186
TinkerRegistry.registerBasinCasting(new CastingRecipe(MiscUtils.stackFromOreDict("blockEnchantedGravitite"), gravitite.getFluid(), Material.VALUE_Ingot, 180));
187+
TinkersAether.logger.info("Base Module - Gravitite Stuffs Registered");
184188
}
185-
186-
if(TAConfig.valkyrie) {
187-
TinkerRegistry.registerMelting(ItemsAether.valkyrie_boots, valkyrie.getFluid(), Material.VALUE_Ingot*4);
188-
TinkerRegistry.registerMelting(ItemsAether.valkyrie_chestplate, valkyrie.getFluid(), Material.VALUE_Ingot*8);
189-
TinkerRegistry.registerMelting(ItemsAether.valkyrie_helmet, valkyrie.getFluid(), Material.VALUE_Ingot*5);
190-
TinkerRegistry.registerMelting(ItemsAether.valkyrie_leggings, valkyrie.getFluid(), Material.VALUE_Ingot*7);
191-
}
192-
193-
TinkersAether.logger.info("Base Module - Gravitite Stuffs Registered");
194-
195-
TinkersAether.logger.info("Base Module - End Init");
196189
}
197190

198191
@SubscribeEvent
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package shnupbups.tinkersaether.network;
2+
3+
import net.minecraft.entity.Entity;
4+
import net.minecraft.entity.player.EntityPlayerMP;
5+
import net.minecraft.item.ItemStack;
6+
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
7+
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
8+
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
9+
import shnupbups.tinkersaether.traits.Reach;
10+
import slimeknights.tconstruct.library.tools.TinkerToolCore;
11+
import slimeknights.tconstruct.library.utils.ToolHelper;
12+
13+
public class HandlerExtendedAttack implements IMessageHandler<MessageExtendedAttack,IMessage> {
14+
@Override
15+
public IMessage onMessage(MessageExtendedAttack message, MessageContext ctx) {
16+
EntityPlayerMP player = ctx.getServerHandler().player;
17+
player.getServer().addScheduledTask( new Runnable() {
18+
@Override
19+
public void run() {
20+
Entity entity = player.getEntityWorld().getEntityByID(message.getEntityId());
21+
ItemStack stack = player.getHeldItemMainhand();
22+
if(stack.isEmpty() || !(stack.getItem() instanceof TinkerToolCore)) {
23+
return;
24+
}
25+
if(ToolHelper.getTraits(stack).contains(Reach.reach)) {
26+
player.attackTargetEntityWithCurrentItem(entity);
27+
}
28+
}
29+
});
30+
return null;
31+
}
32+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package shnupbups.tinkersaether.network;
2+
3+
import io.netty.buffer.ByteBuf;
4+
import net.minecraftforge.fml.common.network.ByteBufUtils;
5+
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
6+
7+
public class MessageExtendedAttack implements IMessage {
8+
9+
private int entity;
10+
11+
public MessageExtendedAttack() {
12+
13+
}
14+
15+
public MessageExtendedAttack(int entity) {
16+
this.entity=entity;
17+
}
18+
19+
@Override
20+
public void fromBytes(ByteBuf buf) {
21+
entity = ByteBufUtils.readVarInt(buf, 4);
22+
}
23+
24+
@Override
25+
public void toBytes(ByteBuf buf) {
26+
ByteBufUtils.writeVarInt(buf, entity, 4);
27+
}
28+
29+
public int getEntityId() {
30+
return entity;
31+
}
32+
}

src/main/java/shnupbups/tinkersaether/traits/Reach.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
11
package shnupbups.tinkersaether.traits;
22

3+
import net.minecraft.entity.Entity;
34
import net.minecraft.entity.ai.attributes.AttributeModifier;
45
import net.minecraft.entity.player.EntityPlayer;
56
import net.minecraft.item.ItemStack;
7+
import net.minecraft.util.math.AxisAlignedBB;
8+
import net.minecraft.util.math.Vec3d;
69
import net.minecraftforge.common.MinecraftForge;
710
import net.minecraftforge.event.entity.living.LivingEvent;
11+
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
812
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
13+
import shnupbups.tinkersaether.TinkersAether;
14+
import shnupbups.tinkersaether.network.MessageExtendedAttack;
915
import slimeknights.tconstruct.library.traits.AbstractTrait;
1016

17+
import java.util.List;
1118
import java.util.UUID;
1219

1320
public class Reach extends AbstractTrait {
@@ -32,4 +39,43 @@ public void onPlayerUpdate(LivingEvent.LivingUpdateEvent event) {
3239
}
3340
}
3441
}
42+
43+
@SubscribeEvent
44+
public void onMouseClick(PlayerInteractEvent.LeftClickEmpty event) {
45+
EntityPlayer player = event.getEntityPlayer();
46+
ItemStack stack = player.getHeldItemMainhand();
47+
if(isToolWithTrait(stack)) {
48+
Vec3d playerVision = player.getLookVec();
49+
AxisAlignedBB reachDistance = player.getEntityBoundingBox().grow(10.0D);
50+
List<Entity> locatedEntities = player.world.getEntitiesWithinAABB(Entity.class, reachDistance);
51+
Entity found = null;
52+
double foundLen = 0.0D;
53+
for (Object o : locatedEntities) {
54+
if (o == player) {
55+
continue;
56+
}
57+
Entity ent = (Entity) o;
58+
if (!ent.canBeCollidedWith()) {
59+
continue;
60+
}
61+
Vec3d vec = new Vec3d(ent.posX - player.posX, ent.getEntityBoundingBox().minY + ent.height / 2f - player.posY - player.getEyeHeight(), ent.posZ - player.posZ);
62+
double len = vec.lengthVector();
63+
if (len > 10.0F) {
64+
continue;
65+
}
66+
vec = vec.normalize();
67+
double dot = playerVision.dotProduct(vec);
68+
if (dot < 1.0 - 0.125 / len || !player.canEntityBeSeen(ent)) {
69+
continue;
70+
}
71+
if (foundLen == 0.0 || len < foundLen) {
72+
found = ent;
73+
foundLen = len;
74+
}
75+
}
76+
if (found != null && player.getRidingEntity() != found) {
77+
TinkersAether.network.sendToServer(new MessageExtendedAttack(found.getEntityId()));
78+
}
79+
}
80+
}
3581
}

src/main/resources/mcmod.info

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"modid": "tinkersaether",
44
"name": "Tinker's Aether",
55
"description": "Adds Aether materials and stuff to Tinker's Construct.",
6-
"version": "1.1.0",
6+
"version": "1.1.1",
77
"mcversion": "${mcversion}",
88
"url": "",
99
"updateUrl": "",

0 commit comments

Comments
 (0)