Jump to content

Recommended Posts

Posted (edited)

Hello, I want to create a block like the target block in Minecraft 1.15 (and also 1.7.10. I want the mod for both versions to be available for, but it is okay if I only get an answer that helps me with the 1.15 version even if it would be much better if someone could help me to get a working 1.7.10 version of the mod). I am a beginner in Forge Modding, so I am struggling a lot with it.

The block should detect arrows that hit him and then tell me where they hit him, so I can calculate a number that should present by a redstone signal how close the block to the center is.

But my problem is that I do not know how the block can tell me where the arrow is.

 

I tried to copy some code of the target of the OpenBlocks Mod, but they have created classes like TileEntityTarget, that extends SyncedTileEntity that extends OpenTileEntity that extends TileEntity so I ended up with trying to edit the code and failing a lot...

Here is my code:

 

@Override
    public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {

        if (!world.isRemote && entity != null && entity instanceof EntityArrow) {
            if (lastEntityHit != entity.getEntityId()) {
                lastEntityHit = entity.getEntityId();
                return;
            }
            lastEntityHit = entity.getEntityId();
            onTargetHit(world, x, y, z, Vec3.createVectorHelper(entity.posX, entity.posY, entity.posZ));
        }
    }
    
    public void onTargetHit(World world, int x, int y, int z, Vec3 entityPosition) {

        if (world.isRemote) return;

        final TileEntity target = getTileEntity(world, x, y, z, TileEntity.class);
        if (target == null) return;

        Vec3 bullseye = Vec3.createVectorHelper(x, y, z);

        double distance = entityPosition.distanceTo(bullseye);

        BlockTargetBlock.setStrength(15 - Math.min(15, Math.max(0, (int)(distance * 32))));

    }
    
    @Override
    public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int m) {
        final TileEntity tile = getTileEntity(world, x, y, z, TileEntity.class);
        return tile != null? BlockTargetBlock.getStrength() : 0;
    }

    @Override
    public int isProvidingStrongPower(IBlockAccess world, int x, int y, int z, int m) {
        return isProvidingWeakPower(world, x, y, z, m);
    }

    @Override
    public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) {
        setBlockBoundsBasedOnState(world, x, y, z);
        return super.getSelectedBoundingBoxFromPool(world, x, y, z);
    }

    @Override
    public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
        setBlockBoundsBasedOnState(world, x, y, z);
        return super.getCollisionBoundingBoxFromPool(world, x, y, z);
    }
    
    private TileEntity getTileEntity(IBlockAccess world, int x, int y, int z, Class<TileEntity> class1) {
        return (worldObj != null && worldObj.blockExists(x, y, z))? worldObj.getTileEntity(x, y, z) : null;
    }
    
    public static void setStrength(int strength) {
        BlockTargetBlock.strength = strength;
        tickCounter = 10;
        worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, null);
    }
    
    public static int getStrength() {
        return strength;
    }

 

I would be glad if someone could help me out. They don't have to give me the code, it would be enough if I could get a tip or a link to an article or video or something like this that could explain me how I can do it or at least give me also useful tips.

 

Greetings,

Xydru

Edited by Xydru
Posted
  On 7/29/2020 at 1:20 PM, diesieben07 said:

That is 1.7.10 code.

1.7.10 is not supported on this forum.

 

If you are actually using 1.15.2, post your actual code.

Expand  

Can you please help me? There are no other forums like this that deal with Minecraft Forge Modding. If I do not get help here, I do not get help anywhere.

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Cracked Launchers are not supported
    • Hi, I have a problem in minecraft java (only in forge 1.20.1), When I start the game after a moment the game crashed with code 1 this only in forge 1.20.1 , I tried to reinstall java, Upgrade java to 17, update the drivers to the latest version, downgrade the drivers to the pervious version, deleting .minecraft and reinstall it , but none of these ways working.   here is the log:   [Launcher] Launching Minecraft... I'm hiding! mods after C:\Users\Windows\AppData\Roaming\.minecraft\mods\tl_skin_cape_forge_1.20_1.20.1-1.32.jar [InnerMinecraftServersImpl]  search changers of the servers read servers from servers.dat [] [InnerMinecraftServersImpl]  prepare inner servers save servers to servers.dat [Launcher] Game skin type: TLAUNCHER [Launcher] Starting Minecraft Forge 1.20.1... [Launcher] Launching in: C:\Users\Windows\AppData\Roaming\.minecraft Starting garbage collector: 96 / 227 MB Garbage collector completed: 60 / 214 MB [Launcher] Processing post-launch actions. Assist launch: true =============================================================================================== [05:29:03] [main/INFO]: ModLauncher running: args [--username, *********, --version, Forge 1.20.1, --gameDir, C:\Users\Windows\AppData\Roaming\.minecraft, --assetsDir, C:\Users\Windows\AppData\Roaming\.minecraft\assets, --assetIndex, 5, --uuid, *************************************, --accessToken, вќ„вќ„вќ„вќ„вќ„вќ„вќ„вќ„, --clientId, null, --xuid, null, --userType, mojang, --versionType, modified, --width, 925, --height, 530, --launchTarget, forgeclient, --fml.forgeVersion, 47.3.22, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412] [05:29:04] [main/INFO]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.12 by Oracle Corporation; OS Windows 10 arch amd64 version 10.0 [05:29:15] [main/INFO]: Loading ImmediateWindowProvider fmlearlywindow [05:29:24] [main/INFO]: Trying GL version 4.6 [05:29:60] [main/INFO]: Requested GL version 4.6 got version 4.6 [05:29:67] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/C:/Users/Windows/AppData/Roaming/.minecraft/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%23100!/ Service=ModLauncher Env=CLIENT FATAL ERROR in native method: Thread[pool-2-thread-1,5,main]: No context is current or a function that is not available in the current context was called. The JVM will abort execution.     at org.lwjgl.opengl.GL11C.nglGetString(org.lwjgl.opengl@3.3.1+7/Native Method)     at org.lwjgl.opengl.GL11C.glGetString(org.lwjgl.opengl@3.3.1+7/GL11C.java:978)     at net.minecraftforge.fml.earlydisplay.DisplayWindow.initRender(fmlearlydisplay@1.20.1-47.3.22/DisplayWindow.java:209)     at net.minecraftforge.fml.earlydisplay.DisplayWindow.lambda$start$5(fmlearlydisplay@1.20.1-47.3.22/DisplayWindow.java:292)     at net.minecraftforge.fml.earlydisplay.DisplayWindow$$Lambda$437/0x000001fab120a618.run(fmlearlydisplay@1.20.1-47.3.22/Unknown Source)     at java.util.concurrent.Executors$RunnableAdapter.call(java.base@17.0.12/Executors.java:539)     at java.util.concurrent.FutureTask.run(java.base@17.0.12/FutureTask.java:264)     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(java.base@17.0.12/ScheduledThreadPoolExecutor.java:304)     at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.12/ThreadPoolExecutor.java:1136)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.12/ThreadPoolExecutor.java:635)     at java.lang.Thread.run(java.base@17.0.12/Thread.java:842) Here I am! [VersionManager] Refreshing versions locally... [VersionManager] Versions has been refreshed (6 ms) [Launcher] Launcher exited. [Launcher] Minecraft closed with exit code: 1 flush now [Launcher] [Crash] Signature "Bad video drivers" matches! [Crash] Signature "Bad video drivers" matches! [Launcher] [Crash] Crash has been recognized! [Crash] Crash has been recognized! flush now
    • https://mclo.gs/9Byd16j Hi, I've had my BetterMC world for a couple days now (1.19.2 vers & Fabric loader) but recently whenever I try to open the profile the minecraft launcher crashes and provides this error code. I've checked both this forum and google and haven't found any similar problems or solution to my problem. I'm not the best at reading crash logs but I gathered that there's an issue with fabric possibly, so I re-downloaded the same one on the modpack, then the latest version for 1.19.2 fabric and the issue still occurred. What can I do now?
    • it works now but idk why lmao. i removed terrablender and it didnt work. i then left it for a couple of days and, when i came back, updated the mods that needed updating because "what's the worst that could happen". i then tried launching it and now it works. i genuenly have no clue what i did to make it work, othen than updating the mods. so, thanks for your help
  • Topics

×
×
  • Create New...

Important Information

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