Jump to content

Recommended Posts

Posted

The exact classes I used there still work for me...

 

(Note this is all from the project I use to test stuff (mostly for this site), so it isn't organized at all)

 

 

Tick Handler

 

import java.util.EnumSet;

import mods.gaspoweredstick.code.item.ItemModArmor;
import net.minecraft.entity.player.EntityPlayer;
import cpw.mods.fml.common.ITickHandler;
import cpw.mods.fml.common.TickType;

public class PlayerTickHandler implements ITickHandler
{

@Override
public void tickStart(EnumSet<TickType> type, Object... tickData)
{
	playerTick((EntityPlayer)tickData[0]);
}

@Override
public void tickEnd(EnumSet<TickType> type, Object... tickData)
{

}

@Override
public EnumSet<TickType> ticks()
{
	return EnumSet.of(TickType.PLAYER);
}

@Override
public String getLabel()
{
	return "My_Tick_Handler";
}

private void playerTick(EntityPlayer player)
{

	if (player.inventory.armorInventory[3] != null)
	{
		if (player.inventory.armorInventory[3].getItem() instanceof ItemModArmor)
		{

			player.capabilities.allowFlying = true;

		} 
	}
	else if (!player.capabilities.isCreativeMode)
	{
		player.capabilities.allowFlying = false;
	}
}

}

 

Armor class

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumArmorMaterial;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.common.EnumHelper;

public class ItemModArmor extends ItemArmor
{
public static final EnumArmorMaterial ModArmor = EnumHelper
		.addArmorMaterial("ModArmor", 9001, new int[]{1,2,3,4}, 42);


public ItemModArmor(int par1, EnumArmorMaterial par2EnumArmorMaterial, int par3, int par4)
{
	super(par1, par2EnumArmorMaterial, par3, par4);
}
}

 

Common Proxy

import mods.gaspoweredstick.code.handlers.PlayerTickHandler;
import cpw.mods.fml.common.registry.TickRegistry;
import cpw.mods.fml.relauncher.Side;

public class CommonProxy
{
public void registerHandlers()
{
	TickRegistry.registerTickHandler(new PlayerTickHandler(), Side.SERVER);
}
}

 

Client Proxy

import cpw.mods.fml.common.registry.TickRegistry;
import cpw.mods.fml.relauncher.Side;
import mods.gaspoweredstick.code.common.CommonProxy;
import mods.gaspoweredstick.code.handlers.PlayerTickHandler;

public class ClientProxy extends CommonProxy
{
@Override
public void registerHandlers()
{
	TickRegistry.registerTickHandler(new PlayerTickHandler(), Side.SERVER);
	TickRegistry.registerTickHandler(new PlayerTickHandler(), Side.CLIENT);
}

}

 

Main File

import mods.gaspoweredstick.code.block.TestBlock;
import mods.gaspoweredstick.code.item.ItemModArmor;
import mods.gaspoweredstick.code.item.Stick;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.Configuration;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.Mod.PostInit;
import cpw.mods.fml.common.Mod.PreInit;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;


@Mod(modid="GasPoweredStick", name="Gas Powered Stick", version = "1.0a")
@NetworkMod(serverSideRequired=false, clientSideRequired=true)
public class GasPoweredStick
{
@Instance("GasPoweredStick")
public static GasPoweredStick instance;

@SidedProxy(clientSide="mods.gaspoweredstick.code.client.ClientProxy", serverSide="mods.gaspoweredstick.code.common.CommonProxy")
public static CommonProxy proxy;

@PreInit
public static void preInit(FMLPreInitializationEvent evt)
{
	Config.doConfig(new Configuration(evt.getSuggestedConfigurationFile()));
}

public static Item stick,
					gasStick,
					modHat;

public static Block testBlock;

@Init
public static void init(FMLInitializationEvent evt)
{
	stick = new Stick(Config.Stick_ID, Stick.STICK)
	.setUnlocalizedName("GasStick1");

	gasStick = new Stick(Config.GPStick_ID, Stick.STICK2)
	.setUnlocalizedName("GasStick2");

	modHat = new ItemModArmor(9001, ItemModArmor.ModArmor, 0, 0)
	.setCreativeTab(CreativeTabs.tabCombat).setUnlocalizedName("modHat");

	testBlock = new TestBlock(800, Material.cloth).setCreativeTab(CreativeTabs.tabMisc).setUnlocalizedName("testBlock");

	LanguageRegistry.addName(stick, "Stick!");
	LanguageRegistry.addName(gasStick, "Ghast Powered Stick!");
	LanguageRegistry.addName(modHat, "Mod Hat");

	LanguageRegistry.addName(testBlock, "Test Block");

	GameRegistry.registerBlock(testBlock, "testBlock");

	GameRegistry.addRecipe(new ItemStack(stick), "  X", " X ", "X  ", 'X', Item.stick);

	GameRegistry.addRecipe(new ItemStack(gasStick), "YYX", "YXY", "XYY", 'X', stick, 'Y', Item.ghastTear);

	proxy.registerHandlers();
}

@PostInit
public static void postInit(FMLPostInitializationEvent evt)
{

}
}

 

 

Posted

Ask the Gravitysuit maker how he solved the problem.

Maybe he has a way. And if you want a realistic Flying (like with a jetpack)

than you could look into the IC2 Sources they have it.

 

The bad thing is google which comes at 1.4 (maybe bevor) so you only can get the 1.2 source^^ better than nothing^^"

Posted

I fixed it... The first time when i had it based off of Yagoki's classes I didn't realize the armor was based off of one class when we have individual classes for them... Thanks for you help!!1 :)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hello, I have this same problem. Did you manage to find a solution? Any help would be appreciated. Thanks.
    • log: https://mclo.gs/QJg3wYX as stated in the title, my game freezes upon loading into the server after i used a far-away waystone in it. The modpack i'm using is better minecraft V18. Issue only comes up in this specific server, singleplayer and other servers are A-okay. i've already experimented with removing possible culprits like modernfix and various others to no effect. i've also attempted a full reinstall of the modpack profile. Issue occurs shortly after the 'cancel' button dissapears on the 'loading world' section of the loading screen.   thanks in advance.
    • You would have better results asking a more specific question. What have you done? What exactly do you need help with? Please also read the FAQ regarding posting logs.
    • Hi, this is my second post with the same content as no one answered this and it's been a long time since I made the last post, I want to make a client-only mod, everything is ok, but when I use shaders, none of the textures rendered in RenderLevelStageEvent nor the crow entity model are rendered, I want them to be visible, because it's a horror themed mod I've already tried it with different shaders, but it didn't work with any of them and I really want to add support for shaders Here is how i render the crow model in the CrowEntityRenderer<CrowEntity>, by the time i use this method, i know is not the right method but i don't think this is the cause of the problem, the renderType i'm using is entityCutout @Override public void render(CrowEntity p_entity, float entityYaw, float partialTick, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight) { super.render(p_entity, entityYaw, partialTick, poseStack, bufferSource, packedLight); ClientEventHandler.getClient().crow.renderToBuffer(poseStack, bufferSource.getBuffer(ClientEventHandler.getClient().crow .renderType(TEXTURE)), packedLight, OverlayTexture.NO_OVERLAY, Utils.rgb(255, 255, 255)); } Here renderLevelStage @Override public void renderWorld(RenderLevelStageEvent e) { horrorEvents.draw(e); } Here is how i render every event public void draw(RenderLevelStageEvent e) { for (HorrorEvent event : currentHorrorEvents) { event.tick(e.getPartialTick()); event.draw(e); } } Here is how i render the crow model on the event @Override public void draw(RenderLevelStageEvent e) { if(e.getStage() == RenderLevelStageEvent.Stage.AFTER_ENTITIES) { float arcProgress = getArcProgress(0.25f); int alpha = (int) Mth.lerp(arcProgress, 0, 255); int packedLight = LevelRenderer.getLightColor(Minecraft.getInstance().level, blockPos); VertexConsumer builder = ClientEventHandler.bufferSource.getBuffer(crow); Crow<CreepyBirdHorrorEvent> model = ClientEventHandler .getClient().crow; model.setupAnim(this); RenderHelper.renderModelInWorld(model, position, offset, e.getCamera(), e.getPoseStack(), builder, packedLight, OverlayTexture.NO_OVERLAY, alpha); builder = ClientEventHandler.bufferSource.getBuffer(eyes); RenderHelper.renderModelInWorld(model, position, offset, e.getCamera(), e.getPoseStack(), builder, 15728880, OverlayTexture.NO_OVERLAY, alpha); } } How i render the model public static void renderModelInWorld(Model model, Vector3f pos, Vector3f offset, Camera camera, PoseStack matrix, VertexConsumer builder, int light, int overlay, int alpha) { matrix.pushPose(); Vec3 cameraPos = camera.getPosition(); double finalX = pos.x - cameraPos.x + offset.x; double finalY = pos.y - cameraPos.y + offset.y; double finalZ = pos.z - cameraPos.z + offset.z; matrix.pushPose(); matrix.translate(finalX, finalY, finalZ); matrix.mulPose(Axis.XP.rotationDegrees(180f)); model.renderToBuffer(matrix, builder, light, overlay, Utils .rgba(255, 255, 255, alpha)); matrix.popPose(); matrix.popPose(); } Thanks in advance
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.