use of jack.rm.data.romset.MyGameSetFeatures in project rom-manager by Jakz.
the class InfoPanel method buildPopupMenu.
public void buildPopupMenu() {
customPopup.removeAll();
JMenu embedded = new JMenu("Embedded");
customPopup.add(embedded);
JMenu custom = new JMenu("Custom");
customPopup.add(custom);
Attribute[] cattributes = new Attribute[] { GameAttribute.GENRE, GameAttribute.TAG, GameAttribute.EXPORT_TITLE };
MyGameSetFeatures helper = set.helper();
Settings settings = helper.settings();
List<Attribute> enabledAttribs = settings.getRomAttributes();
Stream<Attribute> eattributes = Arrays.stream(set.getSupportedAttributes());
Runnable menuItemPostAction = () -> {
buildMainLayout();
buildFields();
pFields.revalidate();
updateFields(game);
buildPopupMenu();
};
for (Attribute cattrib : cattributes) {
JMenuItem item = null;
if (enabledAttribs.contains(cattrib)) {
item = new JMenuItem("Remove \'" + cattrib.getCaption() + "\'");
item.addActionListener(e -> {
settings.getRomAttributes().remove(cattrib);
set.stream().forEach(r -> r.clearCustomAttribute(cattrib));
menuItemPostAction.run();
});
} else {
item = new JMenuItem("Add \'" + cattrib.getCaption() + "\'");
item.addActionListener(e -> {
settings.getRomAttributes().add(cattrib);
menuItemPostAction.run();
});
}
custom.add(item);
}
eattributes.forEach(eattrib -> {
JMenuItem item = null;
if (enabledAttribs.contains(eattrib)) {
item = new JMenuItem("Hide \'" + eattrib.getCaption() + "\'");
item.addActionListener(e -> {
settings.getRomAttributes().remove(eattrib);
menuItemPostAction.run();
});
} else {
item = new JMenuItem("Show \'" + eattrib.getCaption() + "\'");
item.addActionListener(e -> {
List<Attribute> newAttributes = Arrays.stream(set.getSupportedAttributes()).filter(ee -> enabledAttribs.contains(ee) || ee == eattrib).collect(Collectors.toList());
enabledAttribs.stream().filter(ee -> !Arrays.asList(set.getSupportedAttributes()).contains(ee)).forEach(newAttributes::add);
enabledAttribs.clear();
enabledAttribs.addAll(newAttributes);
menuItemPostAction.run();
});
}
embedded.add(item);
});
}
use of jack.rm.data.romset.MyGameSetFeatures in project rom-manager by Jakz.
the class Organizer method cleanup.
public void cleanup() {
MyGameSetFeatures helper = set.helper();
Settings settings = helper.settings();
Set<CleanupPlugin> plugins = settings.plugins.getEnabledPlugins(PluginRealType.ROMSET_CLEANUP);
plugins.stream().forEach(p -> p.execute(set));
}
use of jack.rm.data.romset.MyGameSetFeatures in project rom-manager by Jakz.
the class OfflineListProviderPlugin method buildRomSets.
@Override
public GameSet[] buildRomSets(List<DatParserPlugin> datParsers) {
DatParserPlugin parser = this.findDatParser(datParsers, "offline-list");
List<GameSet> sets = new ArrayList<>();
try {
{
Map<String, Object> args = new HashMap<>();
args.put("save-parser", new GBASaveParserOL());
DataSupplier datParser = parser.buildDatLoader("offline-list", args);
DatFormat format = datParser.getFormat();
sets.add(new GameSet(Platforms.GBA, KnownProviders.OFFLINE_LIST.derive("", "", "Replouf66", new Provider.Source("http://offlinelistgba.free.fr/tool/ReleaseList/gba_OL_0.7.1.zip")), datParser, format, GBA_ATTRIBUTES, new AssetManager(GBA_ASSETS, new URL("http://offlinelistgba.free.fr/imgs/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
}
{
Map<String, Object> args = new HashMap<>();
args.put("save-parser", new GBASaveParserAS());
DataSupplier datParser = parser.buildDatLoader("offline-list", args);
DatFormat format = datParser.getFormat();
sets.add(new GameSet(Platforms.GBA, KnownProviders.ADVAN_SCENE.derive("pure", "", "AdvanScene", new Provider.Source("http://www.advanscene.com/offline/datas/ADVANsCEne_GBA.zip")), datParser, format, GBA_ATTRIBUTES, new AssetManager(GBA_ASSETS, new URL("http://www.advanscene.com/offline/imgs/ADVANsCEne_GBA/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
}
{
Map<String, Object> args = new HashMap<>();
args.put("save-parser", (SaveParser) (s -> GameSave.NULL));
DataSupplier datParser = parser.buildDatLoader("offline-list", args);
DatFormat format = datParser.getFormat();
final Asset[] PSP_ASSETS = { new Asset.Image(Paths.get("title"), new Dimension(208, 181 * 2)), new Asset.Image(Paths.get("gameplay"), new Dimension(320 * 2, 181 * 2)) };
final Attribute[] attributes = { GameAttribute.TITLE, GameAttribute.NUMBER, GameAttribute.SIZE, GameAttribute.PUBLISHER, GameAttribute.LOCATION, GameAttribute.LANGUAGE, GameAttribute.GROUP, GameAttribute.COMMENT };
sets.add(new GameSet(Platforms.PSP, KnownProviders.ADVAN_SCENE.derive("", "", "AdvanScene", new Provider.Source("http://www.advanscene.com/offline/datas/ADVANsCEne_PSP.zip")), datParser, format, attributes, new AssetManager(PSP_ASSETS, new URL("http://www.advanscene.com/offline/imgs/ADVANsCEne_PSP/")), s -> new MyGameSetFeatures(s)));
}
{
Map<String, Object> args = new HashMap<>();
args.put("save-parser", new NDSSaveParser());
DataSupplier datParser = parser.buildDatLoader("offline-list", args);
DatFormat format = datParser.getFormat();
sets.add(new GameSet(Platforms.NDS, KnownProviders.ADVAN_SCENE.derive("collection", "", "AdvanScene", new Provider.Source("http://www.advanscene.com/offline/datas/ADVANsCEne_NDS.zip")), datParser, format, GBA_ATTRIBUTES, new AssetManager(NDS_ASSETS, new URL("http://www.advanscene.com/offline/imgs/ADVANsCEne_NDS/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
}
/* Nintendo 3DS */
{
final Asset[] _3DS_ASSETS = { new Asset.Image(Paths.get("title"), new Dimension(268, 480)), new Asset.Image(Paths.get("gameplay"), new Dimension(400, 480)) };
final Attribute[] _3DS_ATTRIBUTES = { GameAttribute.TITLE, GameAttribute.NUMBER, GameAttribute.SIZE, GameAttribute.PUBLISHER, GameAttribute.GROUP, GameAttribute.SAVE_TYPE, GameAttribute.LOCATION, GameAttribute.LANGUAGE, GameAttribute.COMMENT };
Map<String, Object> args = new HashMap<>();
args.put("save-parser", (SaveParser) s -> null);
DataSupplier datParser = parser.buildDatLoader("offline-list", args);
DatFormat format = datParser.getFormat();
sets.add(new GameSet(Platforms._3DS, KnownProviders.ADVAN_SCENE.derive("", "", "AdvanScene", new Provider.Source("http://www.advanscene.com/offline/datas/ADVANsCEne_3DS.zip")), datParser, format, _3DS_ATTRIBUTES, new AssetManager(_3DS_ASSETS, new URL("http://www.advanscene.com/offline/imgs/ADVANsCEne_3DS/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
}
{
Map<String, Object> args = new HashMap<>();
args.put("save-parser", (SaveParser) (r -> null));
DataSupplier datParser = parser.buildDatLoader("offline-list", args);
DatFormat format = datParser.getFormat();
sets.add(new GameSet(Platforms.GBC, KnownProviders.NO_INTRO.derive("", "", "Replouf66", new Provider.Source("http://nointro.free.fr/datas/Official%20No-Intro%20Nintendo%20Gameboy%20Color.zip")), datParser, format, GB_ATTRIBUTES, new AssetManager(GB_ASSETS, new URL("http://nointro.free.fr/imgs/Official%20No-Intro%20Nintendo%20Gameboy%20Color/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
}
{
Map<String, Object> args = new HashMap<>();
args.put("save-parser", (SaveParser) (r -> null));
DataSupplier datParser = parser.buildDatLoader("offline-list", args);
DatFormat format = datParser.getFormat();
sets.add(new GameSet(Platforms.GB, KnownProviders.NO_INTRO.derive("", "", "MadBob", new Provider.Source("http://nointro.free.fr/datas/Official%20No-Intro%20Nintendo%20Gameboy.zip")), datParser, format, GB_ATTRIBUTES, new AssetManager(GB_ASSETS, new URL("http://nointro.free.fr/imgs/Official%20No-Intro%20Nintendo%20Gameboy/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
}
{
Map<String, Object> args = new HashMap<>();
args.put("save-parser", (SaveParser) (r -> null));
DataSupplier datParser = parser.buildDatLoader("offline-list", args);
DatFormat format = datParser.getFormat();
sets.add(new GameSet(Platforms.NES, KnownProviders.NO_INTRO.derive("", "", "Zepman", new Provider.Source("http://nointro.free.fr/datas/Official%20No-Intro%20Nintendo%20NES%20-%20Famicom.zip")), datParser, format, NES_ATTRIBUTES, new AssetManager(GB_ASSETS, new URL("http://nointro.free.fr/imgs/Official%20No-Intro%20Nintendo%20NES%20-%20Famicom/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
sets.add(new GameSet(Platforms.NES, KnownProviders.OFFLINE_LIST.derive("", "", "Zepman", new Provider.Source("http://nesofflinelist.free.fr/dat/nes_OL.zip")), datParser, format, NES_ATTRIBUTES, new AssetManager(NES_ASSETS, new URL("http://nesofflinelist.free.fr/imgs/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
}
{
Map<String, Object> args = new HashMap<>();
args.put("save-parser", (SaveParser) (r -> null));
DataSupplier datParser = parser.buildDatLoader("offline-list", args);
DatFormat format = datParser.getFormat();
sets.add(new GameSet(Platforms.LYNX, KnownProviders.NO_INTRO.derive("", "", "Atari Lynx", new Provider.Source("http://nointro.free.fr/datas/Official%20No-Intro%20Atari%20Lynx.zip")), datParser, format, NES_ATTRIBUTES, new AssetManager(LYNX_ASSETS, new URL("http://nointro.free.fr/imgs/Official%20No-Intro%20Atari%20Lynx/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
}
return sets.toArray(new GameSet[sets.size()]);
} catch (MalformedURLException e) {
e.printStackTrace();
}
return null;
}
use of jack.rm.data.romset.MyGameSetFeatures in project rom-manager by Jakz.
the class DeleteEmptyFoldersPlugin method execute.
@Override
public void execute(GameSet set) {
Queue<File> files = new LinkedList<File>();
MyGameSetFeatures helper = set.helper();
files.add(helper.settings().romsPath.toFile());
int counter = 0;
while (!files.isEmpty()) {
File f = files.poll();
File[] l = f.listFiles();
for (File ff : l) {
if (ff.isDirectory()) {
if (ff.listFiles().length == 0) {
ff.delete();
++counter;
} else
files.add(ff);
}
}
}
message("Deleted " + counter + " empty folders");
}
use of jack.rm.data.romset.MyGameSetFeatures in project rom-manager by Jakz.
the class ClrMamePlugin method buildRomSets.
@Override
public GameSet[] buildRomSets(List<DatParserPlugin> datParsers) {
DatParserPlugin datParser = this.findDatParser(datParsers, "clr-mame-pro-nointro");
List<GameSet> sets = new ArrayList<>();
{
DataSupplier parser = datParser.buildDatLoader("clr-mame-pro-nointro");
DatFormat format = parser.getFormat();
sets.add(new GameSet(Platforms.GG, KnownProviders.NO_INTRO.derive("", "", "", null), parser, format, GG_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
}
{
DataSupplier parser = datParser.buildDatLoader("clr-mame-pro-nointro");
DatFormat format = parser.getFormat();
sets.add(new GameSet(Platforms.LYNX, KnownProviders.NO_INTRO.derive("", "", "", null), parser, format, GG_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
}
{
DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
DatFormat format = parser.getFormat();
sets.add(new GameSet(Platforms.MD, KnownProviders.NO_INTRO.derive("", "", "", null), parser, format, GG_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
}
{
DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
// TODO: this should be added only if XMDB is not present
parser = parser.apply(new NormalizedTitleCloneSetCreator());
DatFormat format = parser.getFormat();
sets.add(new GameSet(Platforms.NDS, KnownProviders.NO_INTRO.derive("", "", "", null), parser, format, GG_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
}
{
DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
DatFormat format = parser.getFormat();
sets.add(new GameSet(Platforms.PSP, KnownProviders.NO_INTRO.derive("", "", "", null), parser, format, GG_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s)));
}
{
DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
DatFormat format = parser.getFormat();
sets.add(new GameSet(Platforms.PSP, KnownProviders.NO_INTRO.derive("With Clones", "with-clones", "", null), parser, format, GG_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s)));
}
{
DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
DatFormat format = parser.getFormat();
sets.add(new GameSet(Platforms.N64, KnownProviders.NO_INTRO.derive("", "", "", null), parser, format, GG_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s)));
}
{
DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
DatFormat format = parser.getFormat();
sets.add(new GameSet(Platforms._3DS, KnownProviders.NO_INTRO.derive("", "", "", null), parser, format, GG_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s)));
}
{
DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
parser = parser.apply(new RedumpAggregatorByDisks());
parser = parser.apply(new NormalizedTitleCloneSetCreator());
DatFormat format = parser.getFormat();
final Attribute[] PC_ATTRIBUTES = { GameAttribute.TITLE, GameAttribute.SIZE, GameAttribute.LOCATION, GameAttribute.LANGUAGE, GameAttribute.VERSION, GameAttribute.VERSION_NUMBER };
sets.add(new GameSet(Platforms.IBM_PC, KnownProviders.REDUMP.derive("", "", "", new Provider.Source("http://redump.org/datfile/pc/")), parser, format, PC_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s)));
}
{
DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
parser = parser.apply(new RedumpAggregatorByDisks());
parser = parser.apply(new NormalizedTitleCloneSetCreator());
DatFormat format = parser.getFormat();
final Attribute[] PC_ATTRIBUTES = { GameAttribute.TITLE, GameAttribute.SIZE, GameAttribute.LOCATION, GameAttribute.LANGUAGE, GameAttribute.VERSION, GameAttribute.VERSION_NUMBER };
sets.add(new GameSet(Platforms.PS2, KnownProviders.REDUMP.derive("", "", "", null), parser, format, PC_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s)));
sets.add(new GameSet(Platforms.GC, KnownProviders.REDUMP.derive("", "", "", new Provider.Source("http://redump.org/datfile/gc/")), parser, format, PC_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s)));
}
{
DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
parser = parser.apply(new GoodOldDaysFixer());
parser = parser.apply(new GoodOldDaysFixer.CloneCreator());
DatFormat format = parser.getFormat();
final Attribute[] PC_ATTRIBUTES = { GameAttribute.TITLE, GameAttribute.SIZE, GameAttribute.LOCATION, GameAttribute.LANGUAGE, GameAttribute.RELEASE_DATE, GameAttribute.DESCRIPTION, GameAttribute.COMMENT };
sets.add(new GameSet(Platforms.IBM_PC, KnownProviders.GOOD_OLD_DAYS, parser, format, PC_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s, GameID.Generator.BY_RELEASE_NUMBER, Feature.FINITE_SIZE_SET)));
}
return sets.toArray(new GameSet[sets.size()]);
}
Aggregations