zhuowei / MCPELauncher

Source code for BlockLauncher, a launcher that patches Minecraft for Android
Apache License 2.0
677 stars 189 forks source link

Tracking issue for wishlist methods #54

Open zhuowei opened 10 years ago

zhuowei commented 10 years ago

Here's a list of methods people wished to see. I'll be removing/adding to this list. Not everything on here is going to be added. From Reddit:

Some quick would-be-useful ideas:

    more level options via script (see bottom).
    a compiled script system in addition to interpreted scripts
    a built in random seed gen to make up for JavaScript's lack thereof
    spawning of particles via script.

possible functions for Levels:

    Level.create(Name,Seed,Mode,Directory)
    Level.getName()
    Level.getSeed() //isn't this one already existant?
    Level.getMode()
    Level.getDir()
    Level.setMode()
    Mcpe.loadLevel(Name,Dir)
    Mcpe.closeLevel()
    Mcpe.delLevel(Name,Dir)
    Level.setSpawn(x,y,z)
    Level.setTime(time)
    Level.addTime(time)

From the thread:

ModPE.setWeaponItem(image, image,damage,durability,Id)
ModPE.setArmorItem(image,image,durability,protection,id)
ModPE.setBowItem(image,image,durability,damage,I'd)
ModPE.setBlockItem(image,image,blockitplaces,id) This is kinda like how the door works. Its an item but when placed it spawns a door.

From Twitter: https://t.co/zGanY4ok4c

MCMrARM commented 10 years ago

Level.getName() <- exist, it is called Level.getWorldName -Level.getSeed() Level.getMode() <- exist, it is called Level.getGameMode Level.getDir() <- exist, it is called Level.getWorldDir Level.setMode() <- exist, it is called Level.setGameMode Mcpe.loadLevel(Name,Dir) <- exist, it is called ModPE.selectLevel Mcpe.closeLevel() <- exist, it is called ModPE.leaveGame -Mcpe.delLevel(Name,Dir) <- doesn't exist, but I wouldn't call adding it a good idea Level.setSpawn(x,y,z) <- exist, it is exactly here Level.setTime(time) <- exist Level.addTime(time) <- exist

zhuowei commented 10 years ago

@MCMrARM I went through the list of methods afterwards also, and concluded that half existed and half didn't exist.

zhuowei commented 10 years ago

setFlyMode, setUnderwaterMode - suggested by @woghl98

MCMrARM commented 10 years ago

Block.setWalkableThought - it's possible that I'll add it.

zhuowei commented 10 years ago

More:

Add these ModPE Functions:
[code]minecartMessage(par1string); [/code]
Pushes a client message but in minecart entry format. Tell me if you don't understand.

Enhancements to ModPE.setItem()?
[code]
Item.defineItem(); //Same params as ModPE.setItem();  < This would replace
Item.defineFoodItem(); //Same params as ModPE.setFoodItem(); < This would replace
Item.setPower(par1int); //Increases the damage a entity takes when hit by it. par1int uses half hearts.
Item.setSpeedIncrease(par1int,par2int); //Sets break speed increase on a item. par1int is id of material parent and par2int is how many seconds faster.
Item.setStackableLimit(par1int,par2double); //Sets how much is limit in stack. par1int is item id and par2double is number of limit.
Item.setDurability(par1int,par2double); //Sets durability. par1int is item id and par2double is amount of dura.
[/code]
This would really enhance custom items, so please add them![/quote]
zhuowei commented 10 years ago

From Reddit:

better modelling for blocks/entities, and maybe an easier way to apply a custom ai.

I would like to add a custom render type API (remember the female model mod I ported? That was a proof of concept for the render type API) Re. AI: this will be complicated, but I might expose the entity targeting so you can, for example, provoke neutral mobs from a script.

Add.Mob or something like that

Elaborate?

python scripting support

I can try to get Jython going - someone will have to define the API though.

None that I can think of.

OK...

timeGet (gets real time and allows an update)

Level.getTime(), Level.setTime()

Clearer blockSet function so we can make crazy complicated blocks (lol)

Set shape doesn't suck, you know.

LAN SUPPORT!!! Adding Dimensions

Don't know how to do that :(

Custom Entity Models

See above.

Easier Block Modelling

Seriously, how hard is it to model a block?

setToolItem(); Umm...I am not sure.

I'll think about it

New custom entities, Entity.addEntity(model, x, y, z, texture); Entity.setModel(entity); Entity.setMobApi(attacks Hostil Mobs, attacks You, attacks passive mobs); //add true or false setTool(int unusedId, int itemPngY, int itemPngX, String newName, int maxDamage, [blockIDs])

See above.

addItemChest(int itemID, int damage, int count, int x, int y, int z)

There are already chest access methods.

AddButton(int x, int y, int width, int height, string text)

Sure, will do that.

OnTapDown(int x, int y, int width, int heigth){ } OnTapUp OnTapHold

This will probably break on phones with different resolution.

GAMESTER90 commented 10 years ago

Entity.isRiding(Ent); Checks if the entity argument is riding another mob if so return the mobs ent else returns false.

GAMESTER90 commented 10 years ago

Block.setTexture(X, Y, Z, string1, string2, string3, string4, string5, string6);

Sets the texture of that specific block unless it isnt square for example running water/lava, staircases etc...

GAMESTER90 commented 10 years ago

Instead of ChatColor. Change it to color. Since colors arent exclusive to clientmessages anymore... (entity.setNameTag)

GAMESTER90 commented 10 years ago

Function onHoldHook (type, info){}

When the player taps and holds on anything, type returns if the player tapped on entity (1) block (2) or air (3) info returns an array of the tapped things info...

byteandahalf commented 10 years ago

minecartMessage() has been added as ModPE.showTipMessage()

byteandahalf commented 10 years ago

Add these ModPE Functions: [code]minecartMessage(par1string); [/code] Pushes a client message but in minecart entry format. Tell me if you don't understand.

Enhancements to ModPE.setItem()? [code] Item.defineItem(); //Same params as ModPE.setItem(); < This would replace Item.defineFoodItem(); //Same params as ModPE.setFoodItem(); < This would replace Item.setPower(par1int); //Increases the damage a entity takes when hit by it. par1int uses half hearts. Item.setSpeedIncrease(par1int,par2int); //Sets break speed increase on a item. par1int is id of material parent and par2int is how many seconds faster. Item.setStackableLimit(par1int,par2double); //Sets how much is limit in stack. par1int is item id and par2double is number of limit. Item.setDurability(par1int,par2double); //Sets durability. par1int is item id and par2double is amount of dura. [/code] This would really enhance custom items, so please add them![/quote]


I'll work on the Item API to add these.

byteandahalf commented 10 years ago

@zhuowei What does setUnderwaterMode() do?

KenMizz commented 7 years ago

whats now?