Jump to content

load resources dynamicly


btripoloni

Recommended Posts

Why hack around forge? Forge does not depend on mods being written in Java. All it needs is a class file with an @Mod annotation. You might need to write that in java to then delegate to ruby, but other than that you should not have to do anything fancy at all.

 

I think that Forge is a good idea to make this, will help me to make the development easy.

Link to comment
Share on other sites

I don't think you understood what I meant.

 

You is right, i don't understand you :)

 

the base mod loads the ruby mods in a path(".minecraft/ruby_core")

 

what i need is a way to load resources in this path like ".minecraft/ruby_core/myMod/assets/textures/myBlock.png"

 

this is the problem i don't know how to do this.

Link to comment
Share on other sites

Hold on, let me get this straight. You are making a Java mod for Minecraft to load Ruby mods for Minecraft? Why?

 

Hahah, let me explain, i am using Jruby to run Ruby code into java, i created a class called BaseMod, this class is a Mod and load the Ruby and i can use all Api in Ruby.

 

Example:

 

require 'java'

 

import 'net.minecraft.block.Block'

import 'net.minecraft.block.material.Material'

 

class RubyBlock < Block

  def intialize(material)

    super(material)

  end

end

 

All code created in ruby is loaded after BaseMod is initiated, and they will be in a separated folder called "ruby_core" the code runs perfectly but i need a way to load the resources with the ruby Code.

 

No... don't make it so complicated. Your "ruby mod" should be a normal mod. Stored in a jar file. According to wikipedia JRuby can translate ruby to class files. FML loads class files, therefor it will be able to load your ruby mods just like normal. Without any additional wrappers.

 

Yes jruby compile ruby to class files, but i can do this in real time using a ruby or java code:

 

Example:

user_name = java.lang.System.getProperty("user.name")

mods_path = File.join('C:', 'Users', user_name, 'AppData', 'Roaming', '.minecraft', 'ruby_mods', '*.rb')

Dir[mods_path].each do |file|

    puts "[Ruby_core][Load]: #{file}"

    load file

end

 

and this scripts can use the API normally

 

Exists others projects that do this:

https://github.com/enebo/Purugin

http://dev.bukkit.org/bukkit-plugins/rubybukkit/

 

They was made to work with Bukkit, my mod is made to work with Forge.

 

But you are not wrong maybe a good solution is create a Lib or an Api or something that is encapsulated in a Jar like Ruboto.

Link to comment
Share on other sites

Again... why.

I don't understand why you can't leave the loading to FML.

 

the idea is the others users can write codes in ruby and paste in the ruby_core folders and the code was loaded dynamically example:

 

class MyMod < Mod

modid = 'myMod' #modid and version was a idea to i want to implement in the future, ignore this.

version = '0.1'

def init

my_block()

end

 

def my_block

myblock = QuickBlock.new(Material.wood) #QuickBlock is a class to help me to create blocks.

myblock.setCreativeTab(CreativeTabs.tabRedstone)

GameRegistry.registerBlock(myblock, "myBlock")

end

end

MyMod.new()

 

and the loader run this code in the ruby_core folder and add a new block, simple and easy  ;)

Link to comment
Share on other sites

As I said before: Compile the JRuby mod normally, just like any other application. That will output .class files just like java code.

Then make FML load that. Just like a java mod.

 

how i make to this mod help others users the idea of the mod is make the minecraft mod development easy and fun(this is the purpose of ruby too), what they can do to use this mod?

Link to comment
Share on other sites

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



×
×
  • Create New...

Important Information

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