MightyPirates / OpenComputers

Home of the OpenComputers mod for Minecraft.
https://oc.cil.li
Other
1.59k stars 432 forks source link

Robots Detect Entity and refuse move #2688

Closed Trickster29 closed 5 years ago

Trickster29 commented 6 years ago

i tried running robot.forward. but in some cases they don't want to move at all.

my mod pack also has computercraft. and the turtles pass through the thing opencomputers claims is an obstacle

if you run robot.forward() it will fail for no reason

2017-12-19_03 55 42 2017-12-19_03 56 08

after server restart. they are once again able to move through the object.. i assume it happens over time.

also one of my other robots. leaves phantom blocks from OpenComputers after moving alot.

(I was gonna originally post the modpack and the world file but i wanted to make sure i didn't waste your time and made sure it reproduced after restart, and unfortunately it doesn't)

Maybe you can double check there movement code and at the very least. make the phantom blocks expire?

(i assume the block is used for animation??? im not sure i dont mod. i just make modpacks. its jsut a invisible Opencomputers robot block. that only the mod WAILA sees. and i cannot walk through)

payonel commented 6 years ago

This world has a dedicated server? How long does it take, or how often, does this happen? Are there ever more than 1 phantom block? If you move more than a block away from the phantom block, does it remain?

I'd love to investigate this further, though this definitely isn't my area of expertise. If you don't mind any visitors, let me know if I can join your world and test the repro. You can private message me in irc https://webchat.esper.net/?channels=oc and send me a priv message: /msg payonel ...

Trickster29 commented 6 years ago

sure ill give you a heads up when i find the robots being unable to move. or see a phantom block. ill send you the installer for the modpack when that happens if you wish. its fairly ram heavy. so i hope you have a good amount.

it happens fairly often tbh.

yes there are many phantom blocks. unbreakable in creative and survival.....i can only remove them with WorldEdit

Yes its dedicated

yes it remains till manually removed with worldedit

Edit:

i know a spot that has the issue very often. and probably has the issue right now as we speak. but i need to know whats a good time for you

It cant be right now though because i have to go to sleep for some college thing in the morning lol

if you would perfer to not install the modpack via normal means. i could send you the Mods and config folder for you to install on your own forge enabled client

Ristellise commented 6 years ago

If you have railcraft installed, it does add an invisible block that can cause issues.

find this: residual.heat in railcraft blocks config to turn them off.

payonel commented 6 years ago

@Joshwoo70 i dont know railcraft much, but, can I create these? can I force them to exist in places for testing?

Ristellise commented 6 years ago

uhh unfortunately no. but you can increase the chances---

Scratch the idea. I realised it is 1.12.2 annd railcraft isnt updated to 1.12.2

xarses commented 6 years ago

They show up randomly some time, iirc they can be found via opis in loaded chunks or via mcedit

FeepingCreature commented 5 years ago

I just ran into the same issue on Direwolf20 2.3.0.

payonel commented 5 years ago

@FeepingCreature discussed this with us in our irc, and was very helpful. Thank you I will try some new tests tonight to see if I can find a repro.

FeepingCreature commented 5 years ago

It seems to happen reproducibly on this server (play.direwolf.ca) by placing an IC2 chunk loader in the mining world (while you're the only person in it?), standing in the way of the robot, and disconnecting.

payonel commented 5 years ago

sigh

I cannot reproduce this. I did a lot of variations of this work. Also I have confirmed that the robot's own movement cannot cause this. Only a living entity, or a minecart, can block the robot in this manner Some ghosted, half broken, player entity must be causing this, some how.

I was testing on client <-> server I tested with and without ic2 chunk loading, powered and unpowered, free and costly I tested logging in and out, same and different users, leaving a player in the way, and not I confirmed the robot continued to operate correctly in all cases, the movement continued properly, never failing, never getting confused

I will add a debug card method to get meta data about entities at positions, which will help us debug this issue if it rears its ugly head again

FeepingCreature commented 5 years ago

Thanks for trying.

payonel commented 5 years ago

Ok, i've written the scan method, and I'm now pushing this new debug card method into our dev builds I've documented how it works on our ocdoc (official documentation), and provided code you can use if this happens again

https://ocdoc.cil.li/component:debug#componentdebug

payonel commented 5 years ago

this is a copy+paste of what I wrote in the ocdoc page for scanContentsAt -- this debug card method will work just like the robot move check code

local debug = require("component").debug
local serialize = require("serialization").serialize
local x, y, z = debug.getX, debug.getY, debug.getZ
local offset_x = -1
local offset_z = 0
local blocking, label, content = debug.scanContentsAt(x() - .5 + offset_x, y() - .5, z() - .5 + offset_z)
print(blocking, label, serialize(content))
payonel commented 5 years ago

no repro