Initial version of mod detail pages

This commit is contained in:
Andrew Miner
2015-01-29 10:04:11 -08:00
parent 71b25a8a16
commit 332f64abea
22 changed files with 392 additions and 111 deletions
+3 -1
View File
@@ -57,10 +57,12 @@ $color-background: #AAC9FF;
$color-background-panel: #FFFFFF; $color-background-panel: #FFFFFF;
$color-background-toolbar: rgba(255, 255, 255, 0.75); $color-background-toolbar: rgba(255, 255, 255, 0.75);
$color-content: rgba(230, 230, 230, 0.90); $color-content: rgba(230, 230, 230, 0.90);
$color-error-new: #CD0000;
$color-error: #F3C2C2; $color-error: #F3C2C2;
$color-error-new: #CD0000;
$color-footer: #3D1D09; $color-footer: #3D1D09;
$color-footer-text: #FFFFFF; $color-footer-text: #FFFFFF;
$color-link: #0000FF;
$color-text: #000000;
// Z-Index Layers ////////////////////////////////////////////////////////////////////////////////// // Z-Index Layers //////////////////////////////////////////////////////////////////////////////////
+2
View File
@@ -9,8 +9,10 @@ All rights reserved.
@import 'crafting_table'; @import 'crafting_table';
@import 'feedback'; @import 'feedback';
@import 'inventory'; @import 'inventory';
@import 'item';
@import 'item_page'; @import 'item_page';
@import 'mod'; @import 'mod';
@import 'mod_pack'; @import 'mod_pack';
@import 'mod_page';
@import 'recipe'; @import 'recipe';
@import 'stack'; @import 'stack';
+46
View File
@@ -0,0 +1,46 @@
/*
Crafting Guide - item.scss
Copyright (c) 2015 by Redwood Labs
All rights reserved.
*/
.view__item {
a {
text-decoration: none;
width: 100%;
&:hover {
.itemName {
color: $color-link;
text-decoration: underline;
}
table {
background: $color-gray-faint;
}
}
}
table {
width: 100%;
}
td.itemName {
color: $color-text;
font-family: $font-family-normal;
font-size: $font-size-normal;
font-weight: bold;
padding-left: 1em;
text-align: left;
vertical-align: middle;
}
td.itemIcon {
width: 3.6em;
img {
height: 3.6em; width: 3.6em;
}
}
}
+1 -1
View File
@@ -25,7 +25,7 @@ All rights reserved.
p { p {
font-family: $font-family-normal; font-family: $font-family-normal;
font-size: $font-size-normal; font-size: $font-size-normal;
// text-decoration: underline; text-decoration: underline;
} }
} }
+93
View File
@@ -0,0 +1,93 @@
/*
Crafting Guide - mod_page.scss
Copyright (c) 2014 by Redwood Labs
All rights reserved.
*/
.view__mod_page {
& > div {
vertical-align: top;
display: inline-block;
}
.sidebar {
position: relative; width: 18.75%;
padding: 1em;
.titleImage {
position: relative; height: 16em; width: 16em;
margin-bottom: 2em;
img {
position: relative; width: 100%;
}
}
.version {
position: relative; width: 80%;
margin: 0 10%;
margin-bottom: 1em;
}
.homePage {
position: relative; width: 80%;
margin: 0 10%;
p {
font-family: $font-family-normal;
font-size: $font-size-normal;
text-align: center;
}
}
}
.mainBody {
position: relative; width: 81.25%;
padding: 1em;
padding-top: 2em;
.name {
font-family: $font-family-header;
font-size: $font-size-x-large;
margin: 0;
}
.byline {
margin: 0.25em 0 2em 0;
p {
font-family: $font-family-normal;
font-size: $font-size-small;
font-style: italic;
}
}
.description {
margin-bottom: 4em;
p {
font-family: $font-family-normal;
font-size: $font-size-large;
}
}
.section {
h2 {
font-family: $font-family-header;
font-size: $font-size-large;
}
.panel {
background: white;
padding: 1em;
& > div {
position: relative; width: 33%;
display: inline-block;
padding: 0.5em;
}
}
}
}
}
+1 -1
View File
@@ -3,6 +3,6 @@ schema: 1
name: Applied Energistics 2 name: Applied Energistics 2
author: AlgorithmX2 author: AlgorithmX2
description: A technical mod which adds an advanced, computer-based storage system description: A technical mod which adds an advanced, computer-based storage system
url: http://www.mod-buildcraft.com homePageUrl: http://www.mod-buildcraft.com
version: rv1-stable-1 version: rv1-stable-1
Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

+1 -1
View File
@@ -3,6 +3,6 @@ schema: 1
name: Buildcraft name: Buildcraft
author: SpaceToad author: SpaceToad
description: A technical mod which adds power generation, mining, and building systems description: A technical mod which adds power generation, mining, and building systems
url: http://www.mod-buildcraft.com homePageUrl: http://www.mod-buildcraft.com
version: 6.2.6 version: 6.2.6
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

+1 -1
View File
@@ -3,7 +3,7 @@ schema: 1
name: Industrial Craft 2 name: Industrial Craft 2
author: Alblaka author: Alblaka
description: A technical mod adding multi-tiered power systems, mining and ore processing, and powered armor description: A technical mod adding multi-tiered power systems, mining and ore processing, and powered armor
url: http://wiki.industrial-craft.net/ homePageUrl: http://wiki.industrial-craft.net/
version: experimental-2.2.663 version: experimental-2.2.663
version: classic-1.7.10-6 version: classic-1.7.10-6
+1 -1
View File
@@ -3,6 +3,6 @@ schema: 1
name: Minecraft name: Minecraft
author: Mojang author: Mojang
description: The basic game by itself description: The basic game by itself
url: http://www.minecraft.net homePageUrl: http://www.minecraft.net
version: 1.7.10 version: 1.7.10
+1 -1
View File
@@ -3,6 +3,6 @@ schema: 1
name: Thermal Expansion name: Thermal Expansion
author: Team CoFH author: Team CoFH
description: A technical mod which adds ore processing, item transportion, fluid handling, and many new ores. description: A technical mod which adds ore processing, item transportion, fluid handling, and many new ores.
url: http://teamcofh.com/thermal-expansion/ homePageUrl: http://teamcofh.com/thermal-expansion/
version: 4.0.0B8-23 version: 4.0.0B8-23
+35 -43
View File
@@ -514,10 +514,10 @@
<key>Text</key> <key>Text</key>
<string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160 <string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red0\green0\blue255;} {\colortbl;\red255\green255\blue255;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
\f0\b\fs36 \cf2 Quarry}</string> \f0\b\fs36 \cf0 Quarry}</string>
<key>VerticalPad</key> <key>VerticalPad</key>
<integer>0</integer> <integer>0</integer>
</dict> </dict>
@@ -950,7 +950,7 @@ by SpaceToad}</string>
<integer>0</integer> <integer>0</integer>
<key>Text</key> <key>Text</key>
<string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160 <string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 PressStart2P-Regular;} \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;} {\colortbl;\red255\green255\blue255;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
@@ -1082,15 +1082,14 @@ by SpaceToad}</string>
dWx0cmljZXMgcG9zdWVyZSBjdWJpbGlhIEN1cmFlOyBW dWx0cmljZXMgcG9zdWVyZSBjdWJpbGlhIEN1cmFlOyBW
ZXN0aWJ1bHVtIGVmZmljaXR1ciB1bHRyaWNlcyBjb21t ZXN0aWJ1bHVtIGVmZmljaXR1ciB1bHRyaWNlcyBjb21t
b2RvhoQCaUkBgaYBkoSEhAxOU0RpY3Rpb25hcnkAlIQB b2RvhoQCaUkBgaYBkoSEhAxOU0RpY3Rpb25hcnkAlIQB
aQWShJaWBk5TRm9udIaShISEBk5TRm9udB6UmRyEBVsy aQSShJaWEE5TUGFyYWdyYXBoU3R5bGWGkoSEhBBOU1Bh
OGNdBgAAABQAAAD//kgAZQBsAHYAZQB0AGkAYwBhAIQB
Zg6EAWMAnQGdAJ0AhpKElpYGTlNLZXJuhpKEhIQITlNO
dW1iZXIAhIQHTlNWYWx1ZQCUhAEqhIQBZKEAhpKElpYH
TlNDb2xvcoaShISEB05TQ29sb3IAlJ0ChARmZmZmAAAA
AYaShJaWEE5TUGFyYWdyYXBoU3R5bGWGkoSEhBBOU1Bh
cmFncmFwaFN0eWxlAJSEBENDQFMAAISEhAdOU0FycmF5 cmFncmFwaFN0eWxlAJSEBENDQFMAAISEhAdOU0FycmF5
AJSZAIaBIAqEBFszZl0OJIPNzEw9hpKElpYNTlNTdHJv AJSZAIaBIAqEBFszZl0OJIPNzEw9hpKElpYHTlNDb2xv
a2VDb2xvcoaShKOdA4QCZmYAAYaGhg== coaShISEB05TQ29sb3IAlIQBYwKEBGZmZmYAAAABhpKE
lpYGTlNGb250hpKEhIQGTlNGb250HpSZHIQFWzI4Y10G
AAAAFAAAAP/+SABlAGwAdgBlAHQAaQBjAGEAhAFmDp8A
nwGfAJ8AhpKElpYGTlNLZXJuhpKEhIQITlNOdW1iZXIA
hIQHTlNWYWx1ZQCUhAEqhIQBZKcAhoaG
</data> </data>
<key>Text</key> <key>Text</key>
<string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160 <string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160
@@ -1192,7 +1191,7 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ac efficitur tort
<integer>0</integer> <integer>0</integer>
<key>Text</key> <key>Text</key>
<string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160 <string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 PressStart2P-Regular;} \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;} {\colortbl;\red255\green255\blue255;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
@@ -1215,7 +1214,7 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ac efficitur tort
<key>ManualSizeImage</key> <key>ManualSizeImage</key>
<string>YES</string> <string>YES</string>
<key>Offset</key> <key>Offset</key>
<string>{0.01932367192046051, -0}</string> <string>{0.019323671920460469, -0}</string>
<key>Shape</key> <key>Shape</key>
<string>Rectangle</string> <string>Rectangle</string>
<key>Style</key> <key>Style</key>
@@ -1230,7 +1229,7 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ac efficitur tort
<key>ImageSizing</key> <key>ImageSizing</key>
<integer>0</integer> <integer>0</integer>
<key>Offset</key> <key>Offset</key>
<string>{0.01932367192046051, -0}</string> <string>{0.019323671920460469, -0}</string>
</dict> </dict>
<key>shadow</key> <key>shadow</key>
<dict> <dict>
@@ -1634,16 +1633,15 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ac efficitur tort
BAtzdHJlYW10eXBlZIHoA4QBQISEhBJOU0F0dHJpYnV0 BAtzdHJlYW10eXBlZIHoA4QBQISEhBJOU0F0dHJpYnV0
ZWRTdHJpbmcAhIQITlNPYmplY3QAhZKEhIQITlNTdHJp ZWRTdHJpbmcAhIQITlNPYmplY3QAhZKEhIQITlNTdHJp
bmcBlIQBKwxieSBTcGFjZVRvYWSGhAJpSQEMkoSEhAxO bmcBlIQBKwxieSBTcGFjZVRvYWSGhAJpSQEMkoSEhAxO
U0RpY3Rpb25hcnkAlIQBaQWShJaWBk5TS2VyboaShISE U0RpY3Rpb25hcnkAlIQBaQSShJaWEE5TUGFyYWdyYXBo
CE5TTnVtYmVyAISEB05TVmFsdWUAlIQBKoSEAWSdAIaS U3R5bGWGkoSEhBBOU1BhcmFncmFwaFN0eWxlAJSEBEND
hJaWBk5TRm9udIaShISEBk5TRm9udB6UmSyEBVs0NGNd QFMAAISEhAdOU0FycmF5AJSZAIaBIAqEBFszZl0OJIPN
BgAAACQAAAD//kgAZQBsAHYAZQB0AGkAYwBhAC0ATwBi zEw9hpKElpYHTlNDb2xvcoaShISEB05TQ29sb3IAlIQB
AGwAaQBxAHUAZQCEAWYMhAFjAKEBoQChAIaShJaWDU5T YwKEBGZmZmYAAAABhpKElpYGTlNGb250hpKEhIQGTlNG
U3Ryb2tlQ29sb3KGkoSEhAdOU0NvbG9yAJShA4QCZmYA b250HpSZLIQFWzQ0Y10GAAAAJAAAAP/+SABlAGwAdgBl
AYaShJaWEE5TUGFyYWdyYXBoU3R5bGWGkoSEhBBOU1Bh AHQAaQBjAGEALQBPAGIAbABpAHEAdQBlAIQBZgyfAJ8B
cmFncmFwaFN0eWxlAJSEBENDQFMAAISEhAdOU0FycmF5 nwCfAIaShJaWBk5TS2VyboaShISECE5TTnVtYmVyAISE
AJSZAIaBIAqEBFszZl0OJIPNzEw9hpKElpYHTlNDb2xv B05TVmFsdWUAlIQBKoSEAWSnAIaGhg==
coaShKOhAoQEZmZmZgAAAAGGhoY=
</data> </data>
<key>Text</key> <key>Text</key>
<string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160 <string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160
@@ -2024,7 +2022,7 @@ BuildCraft 6.1 Preview: More Robots!}</string>
<integer>0</integer> <integer>0</integer>
<key>Text</key> <key>Text</key>
<string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160 <string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 PressStart2P-Regular;} \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;} {\colortbl;\red255\green255\blue255;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
@@ -2156,17 +2154,15 @@ BuildCraft 6.1 Preview: More Robots!}</string>
dWx0cmljZXMgcG9zdWVyZSBjdWJpbGlhIEN1cmFlOyBW dWx0cmljZXMgcG9zdWVyZSBjdWJpbGlhIEN1cmFlOyBW
ZXN0aWJ1bHVtIGVmZmljaXR1ciB1bHRyaWNlcyBjb21t ZXN0aWJ1bHVtIGVmZmljaXR1ciB1bHRyaWNlcyBjb21t
b2RvhoQCaUkBgaYBkoSEhAxOU0RpY3Rpb25hcnkAlIQB b2RvhoQCaUkBgaYBkoSEhAxOU0RpY3Rpb25hcnkAlIQB
aQaShJaWBk5TS2VyboaShISECE5TTnVtYmVyAISEB05T aQWShJaWBk5TRm9udIaShISEBk5TRm9udB6UmRyEBVsy
VmFsdWUAlIQBKoSEAWSdAIaShJaWDU5TU3Ryb2tlQ29s OGNdBgAAABQAAAD//kgAZQBsAHYAZQB0AGkAYwBhAIQB
b3KGkoSEhAdOU0NvbG9yAJSEAWMChARmZmZmAAAAAYaS Zg6EAWMAnQGdAJ0AhpKElpYGTlNLZXJuhpKEhIQITlNO
hJaWBk5TRm9udIaShISEBk5TRm9udB6UmRyEBVsyOGNd dW1iZXIAhIQHTlNWYWx1ZQCUhAEqhIQBZKEAhpKElpYH
BgAAABQAAAD//kgAZQBsAHYAZQB0AGkAYwBhAIQBZg6f TlNDb2xvcoaShISEB05TQ29sb3IAlJ0ChARmZmZmAAAA
AJ8BnwCfAIaShJaWB05TQ29sb3KGkp+ShJaWEE5TUGFy AYaShJaWEE5TUGFyYWdyYXBoU3R5bGWGkoSEhBBOU1Bh
YWdyYXBoU3R5bGWGkoSEhBdOU011dGFibGVQYXJhZ3Jh cmFncmFwaFN0eWxlAJSEBENDQFMAAISEhAdOU0FycmF5
cGhTdHlsZQCEhBBOU1BhcmFncmFwaFN0eWxlAJSEBEND
QFMAAISEhA5OU011dGFibGVBcnJheQCEhAdOU0FycmF5
AJSZAIaBIAqEBFszZl0OJIPNzEw9hpKElpYNTlNTdHJv AJSZAIaBIAqEBFszZl0OJIPNzEw9hpKElpYNTlNTdHJv
a2VXaWR0aIaShJucnZ0AhoaG a2VDb2xvcoaShKOdA4QCZmYAAYaGhg==
</data> </data>
<key>Text</key> <key>Text</key>
<string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160 <string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160
@@ -2176,7 +2172,7 @@ BuildCraft 6.1 Preview: More Robots!}</string>
\pard\pardeftab720\sl280 \pard\pardeftab720\sl280
\f0\fs28 \cf2 \expnd0\expndtw0\kerning0 \f0\fs28 \cf2 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ac efficitur tortor. Nulla eget molestie metus. Cras vulputate felis ut lectus iaculis, nec iaculis dui auctor. Sed nisl nisl, feugiat mollis elit vel, gravida euismod est. Vivamus porttitor tempus euismod. Proin at condimentum nibh. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vestibulum efficitur ultrices commodo}</string> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ac efficitur tortor. Nulla eget molestie metus. Cras vulputate felis ut lectus iaculis, nec iaculis dui auctor. Sed nisl nisl, feugiat mollis elit vel, gravida euismod est. Vivamus porttitor tempus euismod. Proin at condimentum nibh. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vestibulum efficitur ultrices commodo}</string>
<key>VerticalPad</key> <key>VerticalPad</key>
<integer>0</integer> <integer>0</integer>
</dict> </dict>
@@ -2263,7 +2259,7 @@ BuildCraft 6.1 Preview: More Robots!}</string>
<integer>0</integer> <integer>0</integer>
<key>Text</key> <key>Text</key>
<string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160 <string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 PressStart2P-Regular;} \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;} {\colortbl;\red255\green255\blue255;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
@@ -2478,7 +2474,7 @@ BuildCraft 6.1 Preview: More Robots!}</string>
<integer>10</integer> <integer>10</integer>
<key>Text</key> <key>Text</key>
<string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160 <string>{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160
\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 PressStart2P-Regular;} \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;} {\colortbl;\red255\green255\blue255;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
@@ -2811,7 +2807,7 @@ BuildCraft 6.1 Preview: More Robots!}</string>
<key>MasterSheets</key> <key>MasterSheets</key>
<array/> <array/>
<key>ModificationDate</key> <key>ModificationDate</key>
<string>2015-01-19 19:14:03 +0000</string> <string>2015-01-28 21:33:51 +0000</string>
<key>Modifier</key> <key>Modifier</key>
<string>Andrew Miner</string> <string>Andrew Miner</string>
<key>NotesVisible</key> <key>NotesVisible</key>
@@ -2891,8 +2887,6 @@ BuildCraft 6.1 Preview: More Robots!}</string>
<string>Canvas 1</string> <string>Canvas 1</string>
</dict> </dict>
</array> </array>
<key>Frame</key>
<string>{{558, -0}, {1998, 1417}}</string>
<key>ListView</key> <key>ListView</key>
<true/> <true/>
<key>OutlineWidth</key> <key>OutlineWidth</key>
@@ -2905,8 +2899,6 @@ BuildCraft 6.1 Preview: More Robots!}</string>
<true/> <true/>
<key>SidebarWidth</key> <key>SidebarWidth</key>
<integer>168</integer> <integer>168</integer>
<key>VisibleRegion</key>
<string>{{-320, 0}, {1801, 1275}}</string>
<key>Zoom</key> <key>Zoom</key>
<real>1</real> <real>1</real>
<key>ZoomValues</key> <key>ZoomValues</key>
+7 -6
View File
@@ -49,12 +49,13 @@ ModelState.loading = 'loading'
ModelState.loaded = 'loaded' ModelState.loaded = 'loaded'
ModelState.failed = 'failed' ModelState.failed = 'failed'
exports.Url = Url = {} exports.Url = Url = {}
Url.itemIcon = _.template "/data/<%= modSlug %>/<%= modVersion %>/images/<%= slug %>.png" Url.itemIcon = _.template "/data/<%= modSlug %>/<%= modVersion %>/images/<%= slug %>.png"
Url.item = _.template "/item/<%= slug %>" Url.item = _.template "/item/<%= slug %>"
Url.mod = _.template "/mod/<%= modSlug %>" Url.mod = _.template "/mod/<%= modSlug %>"
Url.modData = _.template "/data/<%= modSlug %>/mod.cg" Url.modData = _.template "/data/<%= modSlug %>/mod.cg"
Url.modVersion = _.template "/data/<%= modSlug %>/<%= modVersion %>/mod-version.cg" Url.modVersion = _.template "/data/<%= modSlug %>/<%= modVersion %>/mod-version.cg"
Url.modLogoImage = _.template "/data/<%= modSlug %>/logo.png"
exports.UrlParam = UrlParam = {} exports.UrlParam = UrlParam = {}
UrlParam.quantity = 'count' UrlParam.quantity = 'count'
@@ -0,0 +1,36 @@
###
Crafting Guide - item_controller.coffee
Copyright (c) 2015 by Redwood Labs
All rights reserved.
###
BaseController = require './base_controller'
{Url} = require '../constants'
########################################################################################################################
module.exports = class ItemController extends BaseController
constructor: (options={})->
if not options.model? then throw new Error 'options.model is required'
if not options.modPack? then throw new Error 'options.modPack is required'
options.templateName = 'item'
super options
@_modPack = options.modPack
# BaseController Overrides #####################################################################
onDidRender: ->
@$icon = @$('img')
@$name = @$('.itemName')
@$nameLink = @$('a')
super
refresh: ->
display = @_modPack.findItemDisplay @model.slug
@$icon.attr 'src', Url.itemIcon display
@$name.html display.itemName
@$nameLink.attr 'href', Url.item display
@@ -37,6 +37,7 @@ module.exports = class ModController extends BaseController
@$nameLink = @$('.name a') @$nameLink = @$('.name a')
@$nameText = @$('.name p') @$nameText = @$('.name p')
@$description = @$('.description p') @$description = @$('.description p')
super super
refresh: -> refresh: ->
@@ -59,7 +60,7 @@ module.exports = class ModController extends BaseController
option.attr 'selected', 'selected' option.attr 'selected', 'selected'
@$version.append option @$version.append option
# @$nameLink.attr 'href', Url.mod modSlug:@model.slug @$nameLink.attr 'href', Url.mod modSlug:@model.slug
@$nameText.html @model.name @$nameText.html @model.name
@$description.html @model.description @$description.html @model.description
@@ -5,10 +5,12 @@ Copyright (c) 2015 by Redwood Labs
All rights reserved. All rights reserved.
### ###
BaseController = require './base_controller' BaseController = require './base_controller'
{Duration} = require '../constants' {Duration} = require '../constants'
ModPack = require '../models/mod_pack' Mod = require '../models/mod'
RecipeController = require './recipe_controller' ModPack = require '../models/mod_pack'
ItemController = require './item_controller'
{Url} = require '../constants'
######################################################################################################################## ########################################################################################################################
@@ -20,52 +22,117 @@ module.exports = class ModPageController extends BaseController
options.templateName = 'mod_page' options.templateName = 'mod_page'
super options super options
@_modPack = options.modPack @_delayStep = options.delayStep
@_recipeControllers = [] @_effectiveModVersion = null
@_delayStep = options.delayStep @_itemControllers = []
@_modPack = options.modPack
Object.defineProperties this,
effectiveModVersion: {get:@_getEffectiveModVersion}
# Event Methods ################################################################################
onVersionChanged: ->
version = @$versionSelector.val()
logger.debug "new version: #{version}"
modVersion = @model.getModVersion version
logger.debug "new mod version: #{modVersion}"
@_effectiveModVersion = modVersion
if modVersion? then modVersion.fetch()
@refresh()
# BaseController Overrides ##################################################################### # BaseController Overrides #####################################################################
onDidRender: -> onDidRender: ->
@$title = @$('h1') @$name = @$('.name')
@$recipes = @$('.recipes') @$byline = @$('.byline p')
@$description = @$('.description p')
@$homePageLink = @$('.homePage')
@$items = @$('.items .panel')
@$titleImage = @$('.titleImage img')
@$versionSelector = @$('select.version')
@$wikiLink = @$('.wiki')
super super
refresh: -> refresh: ->
@$title.html if @model? then @model.name else '' @$name.html if @model? then @model.name else ''
@$byline.html if @model? then "by #{@model.author}" else ''
controllerIndex = 0 @$titleImage.attr 'src', (if @model? then Url.modLogoImage(modSlug:@model.slug) else '')
delay = 0 @$description.html if @model? then @model.description else ''
if @model?.activeModVersion?.isLoaded
@$recipes.show duration:Duration.fast
@model.eachItem (item)=>
recipe = item.getPrimaryRecipe()
return if not recipe
item.eachRecipe (recipe)=>
controller = @_recipeControllers[controllerIndex]
if not controller?
_.delay (=> @_createRecipeController recipe), delay
delay += @_delayStep
else
controller.model = recipe
controllerIndex += 1
else
@$recipes.hide duration:Duration.fast
while @_recipeControllers.length > controllerIndex
controller = @_recipeControllers.pop()
controller.$el.slideUp duration:Duration.fast, complete:-> @remove()
@_refreshHomePageLink()
@_refreshItems()
@_refreshVersions()
super super
# Backbone.View Methods ########################################################################
events:
'change select.version': 'onVersionChanged'
# Private Methods ############################################################################## # Private Methods ##############################################################################
_createRecipeController: (recipe)-> _createItemController: (item)->
controller = new RecipeController model:recipe, modPack:@_modPack controller = new ItemController model:item, modPack:@_modPack
controller.$el.hide() controller.$el.hide()
controller.render() controller.render()
@_recipeControllers.push controller @_itemControllers.push controller
@$recipes.append controller.$el @$items.append controller.$el
controller.$el.slideDown duration:Duration.fast controller.$el.slideDown duration:Duration.fast
_getEffectiveModVersion: ->
return @_effectiveModVersion if @_effectiveModVersion?
return null unless @model?
modVersion = @model.activeModVersion
modVersion ?= @model.getModVersion Mod.Version.Latest
return modVersion
_refreshHomePageLink: ->
if @model.homePageUrl?
@$homePageLink.fadeIn duration:Duration.fast
@$homePageLink.attr 'href', @model.homePageUrl
else
@$homePageLink.fadeOut duration:Duration.fast
_refreshItems: ->
controllerIndex = 0
delay = 0
effectiveModVersion = @effectiveModVersion
if effectiveModVersion?
@$items.show duration:Duration.fast
effectiveModVersion.eachItem (item)=>
controller = @_itemControllers[controllerIndex]
if not controller?
_.delay (=> @_createItemController item), delay
delay += @_delayStop
else
controller.model = item
controllerIndex += 1
else
@$items.hide duration:Duration.fast
while @_itemControllers.length > controllerIndex
controller = @_itemControllers.pop()
controller.$el.slideUp duration:Duration.fast, complete:-> @remove()
_refreshVersions: ->
@$versionSelector.empty()
return unless @model?
effectiveModVersion = @effectiveModVersion
versionCount = 0
@model.eachModVersion (modVersion)=>
option = $("<option value=\"#{modVersion.version}\">#{modVersion.version}</option>")
if modVersion is effectiveModVersion
option.attr 'selected', 'selected'
@$versionSelector.append option
versionCount++
if versionCount <= 1
@$versionSelector.attr 'disabled', 'disabled'
else
@$versionSelector.removeAttr 'disabled'
+21 -4
View File
@@ -19,7 +19,7 @@ module.exports = class Mod extends BaseModel
attributes.author ?= '' attributes.author ?= ''
attributes.description ?= '' attributes.description ?= ''
attributes.name ?= '' attributes.name ?= ''
attributes.primaryUrl ?= null attributes.homePageUrl ?= null
super attributes, options super attributes, options
@_activeModVersion = null @_activeModVersion = null
@@ -62,9 +62,18 @@ module.exports = class Mod extends BaseModel
return unless @_activeModVersion? return unless @_activeModVersion?
@_activeModVersion.eachName callback @_activeModVersion.eachName callback
findItem: (slug)-> findItem: (slug, options={})->
return unless @_activeModVersion? options.includeDisabled ?= false
@_activeModVersion.findItem slug
if not options.includeDisabled
return unless @_activeModVersion?
return @_activeModVersion.findItem slug
else
for modVersion in @_modVersions
item = modVersion.findItem slug
return item if item?
return null
findItemByName: (name)-> findItemByName: (name)->
return unless @_activeModVersion? return unless @_activeModVersion?
@@ -100,6 +109,14 @@ module.exports = class Mod extends BaseModel
for modVersion in @_modVersions for modVersion in @_modVersions
callback modVersion callback modVersion
getModVersion: (version)->
return null if version is Mod.Version.None
return @_modVersions[@_modVersions.length-1] if version is Mod.Version.Latest
for modVersion in @_modVersions
return modVersion if modVersion.version is version
return null
getActiveVersion: -> getActiveVersion: ->
return @_activeVersion return @_activeVersion
+6 -4
View File
@@ -22,10 +22,12 @@ module.exports = class ModPack extends BaseModel
# Public Methods ############################################################################### # Public Methods ###############################################################################
findItem: (slug)-> findItem: (slug, options={})->
options.includeDisabled ?= false
for mod in @_mods for mod in @_mods
continue unless mod.enabled continue unless mod.enabled or options.includeDisabled
item = mod.findItem slug item = mod.findItem slug, options
return item if item? return item if item?
return null return null
@@ -42,7 +44,7 @@ module.exports = class ModPack extends BaseModel
findItemDisplay: (slug)-> findItemDisplay: (slug)->
result = {} result = {}
item = @findItem slug item = @findItem slug, includeDisabled:true
if item? if item?
result.modSlug = item.modVersion.modSlug result.modSlug = item.modVersion.modSlug
result.modVersion = item.modVersion.version result.modVersion = item.modVersion.version
@@ -42,11 +42,11 @@ module.exports = class ModParserV2 extends CommandParserVersionBase
if name.length is 0 then throw new Error '"name" cannot be empty' if name.length is 0 then throw new Error '"name" cannot be empty'
@_rawData.name = name @_rawData.name = name
_command_url: (url='')-> _command_homePageUrl: (homePageUrl='')->
if @_rawData.url? then throw new Error 'duplicate declaration of "url"' if @_rawData.homePageUrl? then throw new Error 'duplicate declaration of "homePageUrl"'
if url.length is 0 then throw new Error 'url cannot be empty' if homePageUrl.length is 0 then throw new Error 'homePageUrl cannot be empty'
@_rawData.url = url @_rawData.homePageUrl = homePageUrl
_command_version: (version='')-> _command_version: (version='')->
if version.length is 0 then throw new Error 'version cannot be empty' if version.length is 0 then throw new Error 'version cannot be empty'
@@ -58,13 +58,13 @@ module.exports = class ModParserV2 extends CommandParserVersionBase
_buildMod: (rawData, model)-> _buildMod: (rawData, model)->
if not rawData.name? then throw new Error 'the "name" declaration is required' if not rawData.name? then throw new Error 'the "name" declaration is required'
if not rawData.url? then throw new Error 'the "url" declaration is required' if not rawData.homePageUrl? then throw new Error 'the "homePageUrl" declaration is required'
if not rawData.versions? then throw new Error 'at least one "version" declaration is required' if not rawData.versions? then throw new Error 'at least one "version" declaration is required'
model.author = rawData.author if rawData.author? model.author = rawData.author if rawData.author?
model.description = rawData.description if rawData.description? model.description = rawData.description if rawData.description?
model.name = rawData.name model.name = rawData.name
model.primaryUrl = rawData.url model.homePageUrl = rawData.homePageUrl
for version in rawData.versions for version in rawData.versions
model.addModVersion new ModVersion modSlug:model.slug, version:version model.addModVersion new ModVersion modSlug:model.slug, version:version
+13
View File
@@ -0,0 +1,13 @@
//-
//- Crafting Guide - item.jade
//-
//- Copyright (c) 2015 by Redwood Labs
//- All rights reserved.
//-
.view__item
a
table
tr
td.itemIcon: img
td.itemName(width="*")
+12 -3
View File
@@ -6,7 +6,16 @@
//- //-
.view__mod_page .view__mod_page
h1 .sidebar
.titleImage: img
select.version
a.homePage: p Offical Home Page
.recipes .mainBody
h2 Recipes h1.name
.byline: p
.description: p
.section.items
h2 Items
.panel