Jump to content




Swarm Miner - Quarry Up Where You Want. Version 2.0

turtle wireless

215 replies to this topic

#21 HeffeD

  • Members
  • 61 posts

Posted 20 October 2013 - 04:10 PM

There is apparently an issue with enderchests. The odd thing is that this doesn't happen with every turtle. I will set up a quarry and specify that I want to use enderchests. I place the loot chest in slot 1, and the fuel chest in slot two as specified. Then the turtle will start going through a loop of placing the loot chest above it, then breaking it and replacing it. I'm assuming it's trying to get fuel from the loot chest, but I have no idea why... If I place a fuel chest above it, it just breaks it and starts going through the placing and breaking the loot chest loop. Clearing out the Swarminer files from the turtles folder doesn't have any effect on this behavior.

I've run disk/startup update, so I should be using the latest version.

#22 Wojbie

  • Members
  • 631 posts
  • LocationKinda lost

Posted 20 October 2013 - 04:25 PM

Face-palm. I placed a dot in wrong place there - gimme a sec to fix it and it should work.


EDIT: Fixed!!

run
disk/startup update
and try again

#23 Expenox

  • Members
  • 137 posts
  • LocationIn the depths of my computer.

Posted 20 October 2013 - 04:57 PM

Wow, really nice considering i'm more of a turtle person. xP

#24 Wojbie

  • Members
  • 631 posts
  • LocationKinda lost

Posted 20 October 2013 - 05:31 PM

If you are turtle person than i have anecdote for you - i tested older version of this program using 80 turtle and area to mine was 600x600

Few chunk-loaders ,fuel-generator and week later - I got message from my friend asking me why there is a big hole in his servers map :D
He didn't notice it until someone stumbled onto it and reported it :P All that ore safely in my base.

#25 Expenox

  • Members
  • 137 posts
  • LocationIn the depths of my computer.

Posted 20 October 2013 - 07:12 PM

Lol, I want to do that!

#26 HeffeD

  • Members
  • 61 posts

Posted 21 October 2013 - 12:17 PM

View Postwojbie, on 20 October 2013 - 04:25 PM, said:

Face-palm. I placed a dot in wrong place there - gimme a sec to fix it and it should work.


EDIT: Fixed!!

run
disk/startup update
and try again

That seems to have fixed it! Thanks for the quick fix. :D

I think there are still some pathfinding issues because the turtles have a tendency to get stuck. Sometimes they will just go up and down, or back and forth a single block until they run out of fuel. (This was without enderchests, they may not run out of fuel with enderchests) Or, I will find them just sitting there not doing anything. (Yes, I'm aware of the compression function, but they aren't doing this)

In the case of the ones that run out of fuel, terminating the script and manually refueling, then restarting the turtle gets them moving again. In the case of the turtles that apparently just stopped for no reason, restarting will fix it and they'll continue on.

I have also seen some that report that they are out of fuel, and when I go check on them, their inventory is empty. So I can only assume they've just dropped off all of the items they've mined and somehow got lost on their way back, (probably doing the bouncing back and forth thing I mentioned) or is there some instance where they will drop all of their inventory?

The scanner is very nice for keeping tabs on what the various turtles are doing, and makes it pretty easy to go find them if they're stuck. :)

And they apparently get stuck on storage minecarts? If the minecart is below them, they will suck all of the items out of the chest, which is nice, but then they will just sit there tapping the cart forever. I'm assuming that this is because they attack the cart instead of mine it? And if the cart is in front of them, they won't suck the items out, they just sit and tap it.

I haven't actually seen them stuck on a minecart in the wild, but I've placed a few minecarts in their path to see what they do when they find one, and they behave as I've stated.

There are still some issues, but this is is a pretty neat script! B)

Something that would make it even nicer is if it had a block compare function so it doesn't need to mine absolutely everything, which tends to get you a lot of blocks that you don't want/need. Yes, I know that you can have the turtles drop the cobble, but in the interests of lag, dropping a bunch of entities on the ground isn't as prefereable as just not mining the the things you don't want to start with.

This script I think operates very efficiently.
http://www.computerc...tle-ore-quarry/

It will still mine three layers at a time, but it only mines the middle layer completely because that is the layer that it travels in. For the layers above and below the turtle, it compares your "noise" blocks, so it only actually mines the valuable things, leaving the unwanted stone and dirt behind. So for example, you give it a stone block and a dirt block, and it will mine everything that isn't these blocks. It also starts at the bottom of the world, and works up, so you mine the most valuable ores first. :ph34r:

Please note that I'm not trying to tell you that you should make your script more like somebody else's. I'm just pointing out some functionality that could be useful.

#27 Wojbie

  • Members
  • 631 posts
  • LocationKinda lost

Posted 21 October 2013 - 01:44 PM

View PostHeffeD, on 21 October 2013 - 12:17 PM, said:

That seems to have fixed it! Thanks for the quick fix. :D

I think there are still some pathfinding issues because the turtles have a tendency to get stuck. Sometimes they will just go up and down, or back and forth a single block until they run out of fuel. (This was without enderchests, they may not run out of fuel with enderchests) Or, I will find them just sitting there not doing anything. (Yes, I'm aware of the compression function, but they aren't doing this)


Pathfinding is a bit random based and i am firm belier that turtle should not touch a block outside of quarry - Still having trouble getting exact situations this happens but i think that by now i already fixed most of them. Turtles stuck doing nothing could be waiting in queue for unloading station - they stop about 15 blocks from it and wait until its empty. Other than that i didn't have that problems thanks for report i will look into it.

View PostHeffeD, on 21 October 2013 - 12:17 PM, said:

I have also seen some that report that they are out of fuel, and when I go check on them, their inventory is empty. So I can only assume they've just dropped off all of the items they've mined and somehow got lost on their way back, (probably doing the bouncing back and forth thing I mentioned) or is there some instance where they will drop all of their inventory?


They should never drop inventory unless 1) in the enderchests or 2) are 100% sure that they are in maintence point and drop there. So most likly chances are they got lost back - manual refueling point works best at default settings - using other point there are chance that turtle will get lost sometimes.

View PostHeffeD, on 21 October 2013 - 12:17 PM, said:

The scanner is very nice for keeping tabs on what the various turtles are doing, and makes it pretty easy to go find them if they're stuck. :)


Happy you like it :D

View PostHeffeD, on 21 October 2013 - 12:17 PM, said:

And they apparently get stuck on storage minecarts? If the minecart is below them, they will suck all of the items out of the chest, which is nice, but then they will just sit there tapping the cart forever. I'm assuming that this is because they attack the cart instead of mine it? And if the cart is in front of them, they won't suck the items out, they just sit and tap it.

I haven't actually seen them stuck on a minecart in the wild, but I've placed a few minecarts in their path to see what they do when they find one, and they behave as I've stated.


Minecarts are kinda tricky with detection and emptying - depending of small changes of position you could be able to suck content or not ect,
Otherwise they get detected by mob removal system and dealt with by attacking..repeatedly.. That they don't break is kinda dependand on server lag.
I am working on that but well there is no 100% sure way that works

View PostHeffeD, on 21 October 2013 - 12:17 PM, said:

There are still some issues, but this is is a pretty neat script! B)


Again Happy you like it :D

View PostHeffeD, on 21 October 2013 - 12:17 PM, said:

Something that would make it even nicer is if it had a block compare function so it doesn't need to mine absolutely everything, which tends to get you a lot of blocks that you don't want/need. Yes, I know that you can have the turtles drop the cobble, but in the interests of lag, dropping a bunch of entities on the ground isn't as prefereable as just not mining the the things you don't want to start with.

This script I think operates very efficiently.
http://www.computerc...tle-ore-quarry/

It will still mine three layers at a time, but it only mines the middle layer completely because that is the layer that it travels in. For the layers above and below the turtle, it compares your "noise" blocks, so it only actually mines the valuable things, leaving the unwanted stone and dirt behind. So for example, you give it a stone block and a dirt block, and it will mine everything that isn't these blocks. It also starts at the bottom of the world, and works up, so you mine the most valuable ores first. :ph34r:

Please note that I'm not trying to tell you that you should make your script more like somebody else's. I'm just pointing out some functionality that could be useful.

While i agree that this functionality is usefully i Want to point out one problem i have with that - if you use program that leaves stone it to mine large area it leaves a lot of 1x1x2 1x1x3 shafts that work as monster-spawn points. I seen that end up badly. also a lot of spider spawn plates on those middle levels. Also i like making big holes. - I tend to pump them full of lava from neather and make a base inside.

As for dropping cobble turtles attempt to drop full stacks of cobble at the time and they disappear after 5 min so there is not much buildup of entities. From large scale test i run on this code there where no issues from those ( and i tested a 102 turtles quarry :P - Scanner Still perfectly detected all of them. )

Never saw point of starting from a bottom. Real quarry should start from top - no-one sane is mining from earth core after all are they?
Point of quarry is to get 100% of stuff in area - you will get that stuff anyways.

#28 lewanator1

  • Members
  • 34 posts

Posted 21 October 2013 - 01:52 PM

Made a Video :)


#29 Wojbie

  • Members
  • 631 posts
  • LocationKinda lost

Posted 21 October 2013 - 01:55 PM

Thats Awesome - Tx a lot Lewanator1
I am sure people will love IT!

#30 HeffeD

  • Members
  • 61 posts

Posted 21 October 2013 - 02:58 PM

View Postwojbie, on 21 October 2013 - 01:44 PM, said:

Pathfinding is a bit random based and i am firm belier that turtle should not touch a block outside of quarry - Still having trouble getting exact situations this happens but i think that by now i already fixed most of them. Turtles stuck doing nothing could be waiting in queue for unloading station - they stop about 15 blocks from it and wait until its empty. Other than that i didn't have that problems thanks for report i will look into it.

I agree that it shouldn't go outside the quarry.

The turtles stuck doing nothing were not waiting to unload. They weren't doing anything that I would consider normal behavior based on watching the way the script functions over time, they had just stopped what they were doing. Just sitting in their sector, often with a block above and below them. Just taking a break, or something. ;) They weren't full, weren't out of fuel, they just stopped mining for no apparent reason.

I just ran a test using the enderchest fix using a bit of a cramped setup to see if there were any turtles getting stuck. I mined a single chunk broken down into 4x4 sectors repeated 4 times, (so a 16x16 quarry) and used 5 turtles to ensure they had to move around each other quite a bit. It worked flawlessly. So I do suspect that in a largish quarry, (My initial test quarry was 64x64) enderchest is the best option to ensure the turtles don't get lost going to or from the dropoff/refueling point.

I still have no idea what makes them simply stop moving though. I'll need to do some more large quarries and see what they do.

View Postwojbie, on 21 October 2013 - 01:44 PM, said:

They should never drop inventory unless 1) in the enderchests or 2) are 100% sure that they are in maintence point and drop there. So most likly chances are they got lost back - manual refueling point works best at default settings - using other point there are chance that turtle will get lost sometimes.

Yes, they were using the default manual drop point. (The quarry starting point)

View Postwojbie, on 21 October 2013 - 01:44 PM, said:

Minecarts are kinda tricky with detection and emptying - depending of small changes of position you could be able to suck content or not ect,
Otherwise they get detected by mob removal system and dealt with by attacking..repeatedly.. That they don't break is kinda dependand on server lag.
I am working on that but well there is no 100% sure way that works

No server lag, as I'm not playing on a server. (Just the internal server in single player) I guess the turtles may break the cart eventually. I've only sat and watched for a minute and assumed the cart would never break... :unsure:

View Postwojbie, on 21 October 2013 - 01:44 PM, said:

While i agree that this functionality is usefully i Want to point out one problem i have with that - if you use program that leaves stone it to mine large area it leaves a lot of 1x1x2 1x1x3 shafts that work as monster-spawn points. I seen that end up badly. also a lot of spider spawn plates on those middle levels. Also i like making big holes. - I tend to pump them full of lava from neather and make a base inside.

I never go into my quarried areas unless I need to rescue a lost turtle, so it doesn't bother me if mobs spawn there. And even though I only quarry quite a long distance from my base, I'm not a fan of the big holes.

View Postwojbie, on 21 October 2013 - 01:44 PM, said:

As for dropping cobble turtles attempt to drop full stacks of cobble at the time and they disappear after 5 min so there is not much buildup of entities. From large scale test i run on this code there where no issues from those ( and i tested a 102 turtles quarry :P - Scanner Still perfectly detected all of them. )

I haven't tried the drop cobble option, I was just going by what I witnessed in one of my quarries with a full turtle moving from the bottom of the quarry to a new sector. (I've seen this happen twice) The turtle mines a shaft up the edge of its new sector, spitting each piece of cobble out individually. (Leaving potentially 60+ entities on the ground from a single turtle) So in this instance, it may behave differently than the standard cobble drop routine?

View Postwojbie, on 21 October 2013 - 01:44 PM, said:

Never saw point of starting from a bottom. Real quarry should start from top - no-one sane is mining from earth core after all are they?
Point of quarry is to get 100% of stuff in area - you will get that stuff anyways.

Hehe... Real quarries aren't mined using little robots. :lol: The point of starting from the bottom is that you get the most valuable ores first. ;)

As I said, I'm not trying to get you to make your script be more like somebody else's. If it functions the way you want it to, that's fine. :) I was merely pointing out some alternate functionality that you may not have thought of.

Thanks for sharing this script! B)

#31 Wojbie

  • Members
  • 631 posts
  • LocationKinda lost

Posted 21 October 2013 - 03:24 PM

View PostHeffeD, on 21 October 2013 - 02:58 PM, said:

No server lag, as I'm not playing on a server. (Just the internal server in single player) I guess the turtles may break the cart eventually. I've only sat and watched for a minute and assumed the cart would never break... :unsure:

Did some ninja update (no version change) that should fix or ad-least make mine-cart breaking more reliable - as side effect there is 2 times more probable to die if you stand in front of angry turtle. Good thing you don't go into quarry area.

View PostHeffeD, on 21 October 2013 - 02:58 PM, said:

I haven't tried the drop cobble option, I was just going by what I witnessed in one of my quarries with a full turtle moving from the bottom of the quarry to a new sector. (I've seen this happen twice) The turtle mines a shaft up the edge of its new sector, spitting each piece of cobble out individually. (Leaving potentially 60+ entities on the ground from a single turtle) So in this instance, it may behave differently than the standard cobble drop routine?

Ah that bug - its 1 in a 100 situation when turtle fills up his 16th slot while reseting to next sector - so they drop cause there is no space in turtle.
That would happen even if there was no cobble drop on. Don't worry minecraft code will compress them in one stack on bottom of the shaft - thats why there is no case for this situation. Also i did some ninja change in movement code yesterday i think so this way of getting up will happen less often.


Side Note - Turtle waiting in Queue will now inform of it on screen

#32 GeneralHARM

  • New Members
  • 2 posts

Posted 21 October 2013 - 06:12 PM

Love the program thank you,
i had it setup and working nicely last night, but i wanted to change the grid and reset it, go i went out and gathered up all of my miners, now i have setup and deployed a single miner to the grid that i want, but when i try to add a new miner to the swarm i get
Love the program getting a weird error

Running parallel:22: Swarminer:858: index expected, got nil

just tried to deploy another, it mined 9 blocks then returned

miningparallel :22: swarminer:130: attempt to compare nil with number

#33 HeffeD

  • Members
  • 61 posts

Posted 21 October 2013 - 06:18 PM

Looks like your ninja fix worked on the minecarts. The turtles can break them now, and your vaccuum routine works well. B)

On my current quarry, (48x48) using the enderchests I'm not having any turtles get lost and run out of fuel, but I have had two of them just stop working for no reason. Plenty of room in inventory, plenty of fuel. One had mined the block in front of it, but didn't move forward to the empty space before stopping, the other had just reached the edge of its sector and had turned, but it hadn't mined the block in front of it.

If you want to add a some sort of verbose mode to help troubleshoot which function is locking them up, I could give you more solid data on what's happening.

I also saw a very odd bit of pathfinding. A turtle had just started mining a sector at the surface, and another had just come up from bedrock and was traveling to its new sector. The turtle on the surface stopped to run the compression routine, and the other turtle ran into it. The original turtle placed an enderchest and dumped its inventory, then continued mining. Oddly, the second turtle turned exactly where it had and was following it a block behind.

I thought that as soon as the first turtle reached the edge of the sector and turned, the second turtle would continue on to its new sector. However, it made the same turn that the first turtle did, and continued following it! I watched them until it reached the other end of the sector and turned, with the second turtle again following. :unsure:

I ran over to the scanner to see if it listed two turtles mining the same sector. I didn't see any duplicates, so I decided to go over and get both of the turtle ID's, so I could see which sector the the scanner thought the turtles were mining. But when I got back over to the turtles, the second turtle was no longer following the other turtle and had started mining its own sector. But it had very definitely seen the turtle follow the other for three rows in a sector. :huh:

I had seen a turtle following another one previously, but it was on my initial testing quarry where I was intentionally trying to confuse the system by purposefully breaking and re-placing turtles, and even doing some config shuffling and giving two turtles the same ID. (In case you're interested, the scanner display will switch back and forth when each turtle with the same ID communcicates, but other than that, it routed them to separate sectors throughout the quarry! :o Nice!) So I thought it was probably due to me deliberately trying to confuse it, so I just broke the second turtle. This time however, it was a standard, start the quarry and let it run. So I have no idea why it did that, or how it managed to correct itself, but I figured you'd probably want to know any odd things that happen while running your scripts.

#34 Wojbie

  • Members
  • 631 posts
  • LocationKinda lost

Posted 22 October 2013 - 03:42 AM

View PostGeneralHARM, on 21 October 2013 - 06:12 PM, said:

Love the program thank you,
i had it setup and working nicely last night, but i wanted to change the grid and reset it, go i went out and gathered up all of my miners, now i have setup and deployed a single miner to the grid that i want, but when i try to add a new miner to the swarm i get
Love the program getting a weird error

Running parallel:22: Swarminer:858: index expected, got nil

just tried to deploy another, it mined 9 blocks then returned

miningparallel :22: swarminer:130: attempt to compare nil with number

Did a Ninja Fix on that one. Weird bug - can you provide me with contents of current.log files from both of those turtles? That would help me making it less likely to happen - sadly it never seems to happen to me. After that update program and that should not happen again.

View PostHeffeD, on 21 October 2013 - 06:18 PM, said:

On my current quarry, (48x48) using the enderchests I'm not having any turtles get lost and run out of fuel, but I have had two of them just stop working for no reason. Plenty of room in inventory, plenty of fuel. One had mined the block in front of it, but didn't move forward to the empty space before stopping, the other had just reached the edge of its sector and had turned, but it hadn't mined the block in front of it.

I am using internal debug code and I am as lost as you - according to code they are doing something - but i have no idea what, or why. Still a good pause/unpause seems to fix that/reset also works/unloading and reloading chunk - so they are able to recover from this adleast.

View PostHeffeD, on 21 October 2013 - 06:18 PM, said:

I also saw a very odd bit of pathfinding. A turtle had just started mining a sector at the surface, and another had just come up from bedrock and was traveling to its new sector. The turtle on the surface stopped to run the compression routine, and the other turtle ran into it. The original turtle placed an enderchest and dumped its inventory, then continued mining. Oddly, the second turtle turned exactly where it had and was following it a block behind.

I thought that as soon as the first turtle reached the edge of the sector and turned, the second turtle would continue on to its new sector. However, it made the same turn that the first turtle did, and continued following it! I watched them until it reached the other end of the sector and turned, with the second turtle again following. :unsure:

I ran over to the scanner to see if it listed two turtles mining the same sector. I didn't see any duplicates, so I decided to go over and get both of the turtle ID's, so I could see which sector the the scanner thought the turtles were mining. But when I got back over to the turtles, the second turtle was no longer following the other turtle and had started mining its own sector. But it had very definitely seen the turtle follow the other for three rows in a sector. :huh:

I had seen a turtle following another one previously, but it was on my initial testing quarry where I was intentionally trying to confuse the system by purposefully breaking and re-placing turtles, and even doing some config shuffling and giving two turtles the same ID. (In case you're interested, the scanner display will switch back and forth when each turtle with the same ID communcicates, but other than that, it routed them to separate sectors throughout the quarry! :o Nice!) So I thought it was probably due to me deliberately trying to confuse it, so I just broke the second turtle. This time however, it was a standard, start the quarry and let it run. So I have no idea why it did that, or how it managed to correct itself, but I figured you'd probably want to know any odd things that happen while running your scripts.

Ahahaha you are seeing anti-sector-collision code in action - when somehow 2 turtles decide to mine same sector they enter into a "competition" mode - first one to next layer wins and gets to keep sector while 2nd one has to find new one for himself. It happens from time to time and looks weird when happening :lol: Weirdest code i done in loooong time.

#35 sirrasmusdk

  • New Members
  • 1 posts

Posted 22 October 2013 - 05:46 AM

Okay my computer keeps saying,

Finding Position...
Could not determine
no gps online
enter scanner data

i enter and it goes to this screen:Posted Image



I really want this to work and im litterally losing my mind currently :/

Edited by sirrasmusdk, 22 October 2013 - 06:31 AM.


#36 lewanator1

  • Members
  • 34 posts

Posted 22 October 2013 - 09:02 AM

View Postsirrasmusdk, on 22 October 2013 - 05:46 AM, said:

Okay my computer keeps saying,

Finding Position...
Could not determine
no gps online
enter scanner data

i enter and it goes to this screen:Posted Image



I really want this to work and im litterally losing my mind currently :/

Have you set up a gps tower?

#37 Wojbie

  • Members
  • 631 posts
  • LocationKinda lost

Posted 22 October 2013 - 09:08 AM

ok fast 2 points

1) Computer Needs Wireless modem - without modem it don't work
2) You should have gps system or about 4-5 scanners in area to have gps signal

Other than that Scanner from screen-shot looks 100% Correct - its waiting for any turtle to get programmed - then it will show what turtle is doing

So in other words - Image in 100% correct but messages before inform me that you ether don't have a wireless modem or a gps system.


On Side Note:

UPDATE!!! v1.3.2

Tracked down path-finding issue and solved it - turtles should now path-find correctly instead of "going up and down" issue.

run
disk/startup update
To download latest version.

#38 HeffeD

  • Members
  • 61 posts

Posted 22 October 2013 - 11:30 AM

View Postwojbie, on 22 October 2013 - 03:42 AM, said:

I am using internal debug code and I am as lost as you - according to code they are doing something - but i have no idea what, or why. Still a good pause/unpause seems to fix that/reset also works/unloading and reloading chunk - so they are able to recover from this adleast.

Ah, Ok, so you've seen this happen now for yourself. I thought maybe it was only happening to me for some reason. I'll have to try pause/unpause. I never tried that because I assumed that the turtles were locked up because they weren't doing anything that I could see. So I've always just restarted them. But yes, they've always recovered flawlessly on a restart!

If pause/unpause works, I guess you could add a temporary quick and dirty workaround until you figure out what's happening. You could have the scanner pause and unpause the turtles every 5 minutes or so. That wouldn't slow things down very much, and would hopefully free up any turtles that have stopped working.

View Postwojbie, on 22 October 2013 - 03:42 AM, said:

Ahahaha you are seeing anti-sector-collision code in action - when somehow 2 turtles decide to mine same sector they enter into a "competition" mode - first one to next layer wins and gets to keep sector while 2nd one has to find new one for himself. It happens from time to time and looks weird when happening :lol: Weirdest code i done in loooong time.

Oh good, it's intentional! :lol: Like I said, I couldn't figure out why that had happened, and how it could have fixed itself after it started happening. So it may be weird code, but it does what it's supposed to do. B)

#39 Wojbie

  • Members
  • 631 posts
  • LocationKinda lost

Posted 22 October 2013 - 11:51 AM

View PostHeffeD, on 22 October 2013 - 11:30 AM, said:

If pause/unpause works, I guess you could add a temporary quick and dirty workaround until you figure out what's happening. You could have the scanner pause and unpause the turtles every 5 minutes or so. That wouldn't slow things down very much, and would hopefully free up any turtles that have stopped working.

Can't do that sorry :) System is supposed to be 100% Server-less - making scanner issue pause and unpause codes automatically is a server/is a nope that however I can add inside timer inside each turtle causing fast pause/unpause. Now Right now however - still trying to find cause of that.

View PostHeffeD, on 22 October 2013 - 11:30 AM, said:

Oh good, it's intentional! :lol: Like I said, I couldn't figure out why that had happened, and how it could have fixed itself after it started happening. So it may be weird code, but it does what it's supposed to do. B)

Hehe - This is a visual side effect of code that i had no idea would happen when i coded it - I was as confused as you when it happened - 10 minutes of manually running code on paper before i figured it out. Still its funny so it stayed in there. Wish code was as simple to run on paper as it was then....

#40 Zudo

  • Members
  • 800 posts
  • LocationUK

Posted 22 October 2013 - 12:37 PM

Awesome. I can't believe I am the first 200+ poster on this thread :)





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users