borisblizzard / arcreator Goto Github PK
View Code? Open in Web Editor NEWAdvanced RPG Creator is an engine and an editor that allows you to create old-school 2D RPG video games.
Advanced RPG Creator is an engine and an editor that allows you to create old-school 2D RPG video games.
str.format is a very verbose and powerful way to invoke the string format operator %
most of its current uses are unnecessary and hard to read these should be searched out and their necessity evaluated. they should be removed and replaces with the % operator is they can
A Project importer than can load and reformat RPG Maker XP project should be provided with ARC.
Currently there is a ruby implemented one but it has to be compiled and distributed separately. Using the Ruby Marshal reading ability provided by #38 we should be able to create an imported that works directly in Welder
should make use of File Handlers form #32
Access to RTP files
ARC should allow for the creation of Project Importers. special Project handlers that can reformats the data form a project to one ARC can work with
the current action framework has only one stack for actions to be done and undone from.
This could be problematic as it doesn't make since to press undo twice and have one mapping action undone and one databases action undone.
as such I'm think that a system for an arbitrary number of stacks should be included.
that way each database panel and every open map can have it's own stack?
thoughts?
Bush depth
Check if render targets are set to Linear when rendering text
Switch to libpng to ensure textures are always loaded as 24 bit or 32 bit internally
The panel dispatcher uses class properties of the panel to be dispatched like _arc_panel_info_string
and _arc_panel_info_data
to determine how the resulting panel should be displayed in the AUI interface, where it should be initially positioned etc.
these properties should be refactored into a single dict property. this will make them easier to manage (and it will look better)
This is a bug that has plagued the editor form the beginning, at one point I thought I had solved it but turns out the answer was no, so I tried to force the presence of a shadow panel that didn't work, so i tried to create the start panel and keep it there permanently but that still didn't work. I mak have to dig into wx.lib.agu.aui's code and see what i can do
Call the Clear method for the cache when an open project event is raised
Add blend_type and opacity for Viewport
Might or might not be done
Problem with D3DX9 device reset after CTRL+ALT+Delete
Implement SHA-1 in C++
Implement fullscreen switch in APRIL
The current project system uses a Project object and some save and open functions. this should be refactored to Use Project and File handlers
A Project Handler will manages a layout and format of a Project and employs File handlers to load Project files and add their data to the project
A File Handler when given a File path will load and save data to that file. intended to work by using a serializer format like ARC Data.
there is currently no support of command line arguments.
it doesn't need to be anything too complex I'm pretty sure just taking the first argument as a path and attempting to open it as a project should work.
Frankly, we all know Global Object are a bad Idea, but until I have Pyitect it simply wasn't practical to share data across plugins with out a global object.
Now that it's far more practical to have a Singleton as a plugin component and store that simi global data inside I think It would make more sense to move the Panel manager out of the Globa lobject manager and into a singalton
The ActionManager can not safely remove actions from the stack and keep track of the current action pointer
During the large refactoring for python 3 and pyitect acess to the mapeditor was broken
Hi there,
I was browsing Google Code for dead projects that might need archiving on GitHub (I'm running @LibreGameArchive) when I found arcreator. It doesn't seem dead at all, but it would be nice if you could mention the move to GitHub on the Google Code main page, so that it's clear to anyone landing on this page.
I only noticed that you had a GitHub repo after I had cloned the whole SVN repo and seen the "ARC HAS MOVED.txt" file :)
Finish implementation of XAL
As the old file has been found and the old issues recognized and overcome in the creation of the ARC Data format it is now possible to re implement Marshal loading without having to write it form scratch
https://gist.github.com/Ryex/1a4758ccaa01af496557
This will help the creation of a RMXP importer built into the editor
Personally I find it quite useful to make use of the issues section here on github.
I very much like to get everyone using it if at all possible. thoughts?
Add in config to keep game running in inactive window
I had a shower thought as to how to greatly simplify the management of the Event Editor.
Everything would just be so much simpler if I had a central map/structure of the event commands and their params for reference, at which point I could employ some meta programming and implement the formater, processor, properties panel etc. all in one class a piece instead of a new class for every single command.
The map should probably be made with YAML. the goal here is to map each command to a map of it's positional params and their types
for example in YAML command 132 "Change Battle BGM" would look like so in yaml
xxx: # where xxx in the command number
name: # name of the command
x: # where x is a peram index
cond:
name:
type:
- switch_id
- variable_id
- item_id
- weapon_id
- armor_id
- ect.
- int
- float
- num # (int or float)
- str
- num_str # (entered as text but will atempt to parse a num, if faisl defaults to string)
- color
- tone
- image
- bgs
- me
- se
# and more if appropriate
map: # a mapping of stored values to display values
# if of appropriate type clamps the value inclusively, if either top or bottom is null unclamps on that end
# default is no clamping
limit: [top, bottom]
display: # usd to help the editor for gui purposes
- box
- dropdown
- spinner
- radio
- check
# the default is box which is a basic editable entry box
# some types inply a display, dropdown for example is implied by all *_id types, spinner by a clamped int or num
# used to help interperate values
# oper_logic for example would hint the editor to conver things like == and >= to `equal too` and `greater than or equal to`
# timer would tell the editor to use a pair of spinners for minutes and seconds but store as the total seconds
hint:
text: #a displayed label for the value
cond: # condition all other properties at teh same level are processed first
# can have any of the folowing sets
#--------------
if:
#------
param:
value:
# OR
paramL:
paramR:
#------
oper: # set to a string operator of the form == <= >= != < >
# Optional
# and has presadence over or, the full and branch will be processed apending conditions before the or branch
and:
# all possible values of if except then
or:
# all possible values of if except then including more and / or's
then: # all the properties of branch must past
x: # sets the properties of param index x
elseifx: # elseifx are processed in order from elseif1 untill a consecutive elseifx can not be found
# all possible values of if
else: # fall through, then is implied
x: #set properties of param index x
#---------------
switch: # property keys are values param can take
param:
y: # y is replaced with arbatrary or number or string that param can take
cond:
x: # sets the properties of param index x
else:
x: # set x if none of the switch cases are true
#---------------
This task will require actually opening a copy of rpgmaker xp and running some inspection on what different Event commands commands look like. I think the formater.py file list every command but there may be some that are unknown. if you need help figuring out what the event commands look like I'm sure we can come up with a script to drop into XP and (so long as you have an event on the map with every event command used in it) dump a representation out to a file.
This task will also require you to read the xp event interpreter script to decipher the meaning of each positional param. Just remember that there are some commands that are completely ignored by the interpreter as they are place holders
There are cases where the properties of a param change based on what came before it in which case the values should be under keys with conditional statements, the exact syntax of this should be a topic of discussion in this thread.
an example of this case is command 111 the Conditional Branch
param[0] is the command mode and bases on it's value subsequent params may refer to switches, variables, self switches etc. and some params might not even exist
in the case where a param is an int but maps to different operations or modes there should be a "map" key that maps the modes. for example if the param refers to what math operator to use the map should have a map key like so
xxx:
x:
type: int
name: operator
map: { 0: '==', 1: '>=', 2: '<=', 3: '>', 4: '<', 5: '!='}
If there are any question or you would like to help out in making this map, please post below. [b]You don't have to contribute all of the map to be helpful![/b], even if you only contribute one command, or even one param for a command it's helpful
Current Progress:
Icons are blitted with 25% alpha only.
Title is self discriptive
Use an ImageSource for loading a Bitmap instead of a texture and then rendering on the original texture
While this has been fixed in many place there are still some places that need to be fixed
the implementation of the Database panels leftover from F0's efforts made use of g global variables to make project data and configuration available to the class, initialising them in the init method of the class
this is bad practice and counter productive to the modular design of the system.
these usages should be replaced with a proper access of the Project object stored in Kernel.GlobalObjects for each use of project data and
Kernel.Config for configuration
Python provides the convenient gettext function that can be mapped to _() and wxFormBuilder has the ability to generate with all strings wrapped in _().
Preparing for internationalization is a simple as wrapping al remaining relevant strings in the source code with _() importing gettext in those modules and mapping it to _
after that we can later use a tool like poEdit to extract all _() strings and create a pot file, translators can then create translations for us.
Capitals are not supposed to be used for module named according to pep8, the reason? cross platform support. this bit me in the ass last week..
Currently project files look like this in INI format
Default Project.arcproj:
[Project]
Title=Default Project
[Files]
list=Actors|Classes|Skills|Items|Weapons|Armors|Enemies|Troops|States|Animations|Tilesets|CommonEvents|System|MapInfos
in order for internal consistency and the ability to add new features to the files easier the format should be changed to JSON.
{
"Project": {
"Title": "Default Project"
},
"Files": {
"list": ["Actors", "Classes", "Skills", "Items", "Weapons", "Armors", "Enemies", "Troops", "States", "Animations", "Tilesets", "CommonEvents", "System", "MapInfos"]
}
}
this effort shold coencide with the efforts in issue #32 to rework the project system to FileHandelers
Add FLAC support
Add script files as internally embedded resources
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.